首页 / 架构模式,附可运行代码

架构模式,附可运行代码

上手教程·By OpenJev 编辑部·更新于 2026-10-03·9 分钟

四个套路覆盖了大多数人用 Jev 做的事。统一的思想:把大判断拆成原子问题,组合逻辑留在你的代码里。每个模式下面给出形状、适用时机,主力模式还给了真代码。

1. 投机式扇出

把你可能需要的每个问题一次发出去——包括最后可能忽略的——让代码挑相关的。因为问题并行、几分钱,宁多勿少。13 合 1 的基准(比 13 次便宜 12.2 倍)就是"过度提问是特性而不是浪费"的经济学依据。

2. 置信门控路由 主力

把置信度当成第二决策轴。高 → 自动执行;中 → 请人确认;低 → 转人工。阈值按风险档设:只读操作 0.5 就能跑;涉及钱或不可逆的操作要 0.9+。一个对挪威法院信函的第三方测试发现:模型答错的题,正是它报告置信度最低的题——不确定性信号在干实事。

from typesafe import TypeSafeClient
import logging

client = TypeSafeClient()          # 读 TYPESAFE_API_KEY
log = logging.getLogger("jev.gate")

# 风险档 -> 自动执行的最低置信度
THRESHOLDS = {"readonly": 0.50, "write": 0.80, "money": 0.95}

def gate(action_risk: str):
    """返回 (decision, tier),decision ∈ {"auto","confirm","human"}"""
    a = client.system_one(
        state=STATE,
        questions={
            "safe": {"type": "noul",
                     "instructions": "Is this state safe to act on now?"},
            "intent": {"type": "choice",
                       "instructions": "Primary intent",
                       "criteria": {"refund": "Asks for money back",
                                    "status": "Asks for status",
                                    "other":  "Something else"}},
        },
    )
    p_yes  = a.answers["safe"]["noul"]
    p_top, top = max(a.answers["intent"]["probabilities"].items(), key=lambda kv: kv[1])
    conf   = a.answers["intent"]["confidence"]
    tier   = THRESHOLDS.get(action_risk, 0.80)

    # "不安全"判断永远优先,不论风险档
    if p_yes < 0.50:
        return "human", "unsafe"

    if conf >= tier:
        log.info("AUTO %s conf=%.2f", top, conf)
        return "auto", top
    if conf >= tier * 0.8:
        return "confirm", top
    log.warning("ESCALATE %s conf=%.2f", top, conf)
    return "human", top
为什么 0.8× 区间?它给你一个软性的"也许"带,而不是一堵硬悬崖。tier 要按动作单独调,不要全局一个值。并且把一切记日志——低置信度的升级请求就是你调阈值的免费评测集。

3. 复合打分

把一个复杂评级拆成多个 Score 问题(如 bug 严重度 × 客户情绪 × 可复现性),然后在代码里按权重合成。好处:调权重改源码里的数字就行,不用重新写 prompt,而且每个维度仍可解释。

4. 意图路由

先用 Choice 分类用户意图,再路由到确定性代码 / 专家 LLM / 人工。收益是:绝大多数简单请求根本不碰贵模型——Jev 是你 LLM 预算前面那道便宜的初筛。

四个模式的共同设计规则:Jev 只判断,不算数。问题里不要算术、数数、比日期——那些在代码里做,需要的话把结果作为新字段塞回 state。见 已知短板。