← [ BACK_TO_NOTES ]

No-Evidence No-Model Short-Circuit

当应用在模型调用前已经能确定当前没有任何可采纳业务证据时,直接确定性返回 insufficient/abstain,而不是把“没有证据”交给 LLM 再猜一次。

#concept #growing #ai #architecture #agent

[!info] related notes

No-Evidence No-Model Short-Circuit

一句话定义

No-Evidence No-Model Short-Circuit 是一个运行时原则:如果应用在调用模型之前已经能够确定“当前没有任何可采纳的业务证据”,就直接由确定性逻辑返回 insufficient / abstain,而不是调用 LLM 让它在空证据上生成结果。

admissible evidence catalog = ∅
→ model call unnecessary
→ deterministic insufficient result

为什么这是正确性问题,不只是省 Token

最直接的收益当然是:

requests = 0
tokens = 0
latency ↓
cost ↓

但更重要的是,它缩小了错误空间。

如果系统明明知道:

没有 posture evidence
没有 report evidence
没有 confirmed BodyState evidence

却仍把请求交给模型:

“请完成一次 Assessment”

模型会面对一个不合理任务:

必须产出东西
+
没有东西可以依据

如果 schema 还要求 completed => observations.length > 0,这种压力甚至会主动鼓励模型编造。

所以:

能在 deterministic shell 判定的“不知道”,不要再让 stochastic core 猜一次。

基本流程

Frozen Input
   ↓
Build Authoritative Evidence Catalog
   ↓
Catalog empty?
   ├─ yes → deterministic insufficient_information
   │         model_executed = false
   │         observations = []
   │         durable mutation = none
   │
   └─ no  → resolve configuration / call model
             → evidence contract
             → durable projection

关键点是 short-circuit 发生在:

model resolution / model invocation 之前

而不是模型已经调用后再把结果丢掉。

“没有证据”必须按 Admissible Evidence 判断

不能只检查原始输入是否为空。

例如 BodyState 里有一条记录:

review_state = unverified
excluded_from_reasoning = true

物理上数据存在,但它不能成为当前推理证据。

因此真正的判断是:

raw input exists
≠ usable evidence exists

应该先经过:

source collection
→ lifecycle/review filtering
→ admissibility
→ authoritative catalog

再判断 catalog 是否为空。

为什么 Profile 通常不能阻止 Short-Circuit

用户可能有:

birth_date
gender
account/profile metadata

这些信息可以是稳定身份上下文,但如果业务问题是:

“当前有哪些健康/体态 observation?”

Profile 的存在本身并不意味着有 health evidence。

否则系统会出现:

用户填写了生日
→ 系统认为“有资料”
→ 调模型生成健康观察

所以 evidence domain 必须和任务语义对应。

输出应该是什么

一个好的 no-evidence path 应显式表达:

status = insufficient_information
observations = []
evidence_coverage = insufficient
missing domains = ...

而不是伪造:

health_grade = D
score = 0
score = 50
“亚健康倾向”

“未知”不能通过一个看起来像健康判断的默认值来表达。

Provenance 也要如实表达“模型没有运行”

Short-circuit 后审计信息不能仍然写:

status = generated
model_executed = true

否则结果虽然正确,trace 却在说谎。

推荐明确记录:

execution_status = skipped_no_evidence
model_executed = false
usage.requests = 0
usage.tokens = 0
phase = deterministic_derivation

这对:

  • audit;
  • cost accounting;
  • replay;
  • regression export;
  • incident diagnosis

都很重要。

Short-Circuit 与 Abstain 的关系

它们相关但不完全相同。

No-Evidence Short-Circuit

在模型前就能确定:

没有可用证据

所以直接不调用模型。

Model/Policy Abstain

系统可能拥有部分 evidence,模型也运行了,但:

critical uncertainty remains
risk too high
policy forbids action

于是最终 abstain。

因此:

no-evidence short-circuit
⊂ deterministic degradation paths

不是所有 abstain 都意味着模型不该运行。

为什么这能改善测试稳定性

如果 Profile-only case 仍调用真实模型,测试只能断言:

希望模型别乱说

换成 short-circuit 后,可以精确断言:

model call count == 0
status == insufficient_information
observations == []
BodyState revision unchanged

这是一个真正的 hard behavioral contract。

BodySense Assessment 示例

新 Assessment 在构建 evidence catalog 后,如果六个 evidence domains 全部缺失:

posture          missing
exercise         missing
lifestyle        missing
anthropometry    missing
health_report    missing
injury_symptoms  missing

则直接得到:

coverage = insufficient
status = insufficient_information
model_executed = false

并且:

BodyState 不新增 observation
revision 不变化

这比“调用模型,然后希望它返回空 observations”更强。

推荐测试

A. profile only
→ 0 model calls
→ insufficient_information

B. only unverified evidence
→ filtered catalog empty
→ 0 model calls

C. one confirmed lifestyle fact
→ catalog non-empty
→ model path may execute

D. no-evidence path
→ persistence unchanged

E. provenance
→ explicitly model_executed=false

常见误区

  • 只要请求来了就应该调用模型:Agent runtime 可以先做 deterministic routing/gating。
  • Short-circuit 只是优化成本:它同时减少 hallucination surface。
  • 有任何 Profile 字段就算有 evidence:Evidence 必须与当前业务 claim 相关。
  • 模型运行了但最终没用结果也一样:不一样;已经增加成本、延迟和不必要的随机路径。
  • 结果正确就不需要记录 skipped provenance:审计必须区分 executed 与 derived-without-model。

最短记忆

系统已经确定“不知道”
→ 不要再问模型“你猜呢?”

把可确定的缺失状态留在 deterministic shell,是生产 Agent 控制随机性的一个重要方法。

创建于 2026/9/1 更新于 2026/9/1
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本