KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

08. 怎样证明 Context 策略真的更好? — keel 龙骨

新策略把支付事故输入从 6120 tokens 压到 3810,节省了 38%。这只能证明字符串更短,不能证明 Agent 更好。如果摘要漏掉“订单仍然失败”,模型可能错误宣布服务恢复;如果保留了结论却丢掉 INC-42,回答看似正确却无法审计。

新策略把支付事故输入从 6120 tokens 压到 3810,节省了 38%。这只能证明字符串更短,不能证明 Agent 更好。如果摘要漏掉“订单仍然失败”,模型可能错误宣布服务恢复;如果保留了结论却丢掉 INC-42,回答看似正确却无法审计。

Context Engineering 的评估必须同时覆盖任务质量、信息保留、结构合法、成本时延和安全风险。单看压缩率会奖励最激进、最危险的策略。

1. 先建立可比较基线

至少比较四组:

组 策略 目的
A 能放下时的完整历史 质量上界与成本基线
B 只保留最近 N 条 最便宜的确定性基线
C 结构化摘要 + 最近消息 检查摘要是否值得额外调用
D 证据索引 + 按需回查 检查复杂检索是否改善可审计性

所有组使用同一模型版本、工具快照、最大调用次数、输出 schema 和评估集。否则“更好”可能只是使用了更多 token、更多重试或更新的数据。

2. 评估样本要记录哪些事实

支付事故样本可以写成:

{
  "case_id": "payment-timeout-01",
  "task": "判断服务是否恢复,并说明是否与 INC-42 有关",
  "must_keep": [
    "error_rate 已降至 0.1%",
    "订单仍然失败",
    "INC-42 只是历史相似事故,不是当前根因事实"
  ],
  "must_cite": ["monitor:10:20", "incident:INC-42"],
  "must_not_claim": ["服务已经恢复", "INC-42 已证明是根因"],
  "tool_invariants": ["call c1 has exactly one result"],
  "sensitive_markers": ["tenant-secret"]
}

must_keep 测信息保留,must_not_claim 测摘要是否把不确定性变成事实,must_cite 测证据回查,tool invariants 测协议合法,sensitive markers 测泄露。

3. 指标必须形成一组

任务质量

信息与证据

结构与恢复

资源成本

安全风险

4. 把 usage 估算纳入观测

UsageReconciler 接收发送前估算和供应商实际 usage:

report = UsageReconciler.reconcile(
    estimated_input=100,
    actual_input=120,
    output_tokens=20,
    window_limit=128,
)

此时 total_actual=140,within_window=False。即使请求被某个宽松服务端接受,应用仍应记录预算违约;否则 safety margin 永远不会得到校准。

运行:

python -m unittest courses.foundation.context-engineering.course.project.tests.test_usage -v

测试覆盖正常对账、实际超限和负数 usage 拒绝。生产指标要按模型版本、语言、工具数量和请求类型分组,不要用一个平均误差掩盖某类长 JSON 的系统性低估。

5. Lost in the Middle 要变成实验

不要只在文档里引用论文。构造三组相同长度的上下文,把关键事实分别放在开头、中间和末尾;比较:

  1. 全量原始历史;
  2. 把关键事实置前的 selector;
  3. 结构化摘要;
  4. 证据 ID + 工具回查。

记录模型能否找到事实、能否引用证据、延迟和 token。这样才知道你的模型和任务是否真的受到位置影响,以及新策略是否改善问题。

6. 可观测事件应该回答因果

一轮装配至少产生:

context.measured
context.selected
context.compaction_requested
context.compacted | context.compaction_failed
context.validated
provider.usage_reconciled
checkpoint.saved

事件共享 run_id、history version、policy version 和 counter version。context.selected 记录 dropped IDs 与原因;compaction_failed 记录降级路径;usage 事件记录估算误差。日志不必复制全部原文,来源 ID 和指标通常更安全、更便于聚合。

7. 摘要评估不能只用另一个模型打分

LLM judge 可以辅助判断语义完整性,但不能独自验证:

这些必须由确定性验证器、数据查询和测试完成。模型评审适合处理“解释是否清楚”“未决问题是否被保留”等语义维度,并需要抽样人工校准。

8. 决策门槛

一个策略进入生产前,应满足类似条件:

任务正确率不低于完整历史基线的可接受区间
关键事实召回 >= 目标
错误确定性陈述 <= 上限
工具 schema 失败 = 0
跨租户与敏感泄露 = 0
token/延迟收益覆盖摘要与检索新增成本
checkpoint 重放结果一致

具体阈值由业务风险决定。客服草稿和自动执行生产变更不能使用同一容忍度。

9. 本章验收

建立至少 10 条小型评估集,其中包含工具超时、新旧事实冲突、历史记忆相似但不等于当前事实、敏感字符串和中部关键信息。比较 full/trim/summary/evidence 四组,输出一份同时包含质量、token、延迟、结构错误和泄露的表。只报告“节省 38% token”不算完成。

下一章:完成一个有预算、可恢复的事故诊断 Agent

进入 keel 阅读