主题
附录 B · lab 课题 ↔ 手记命题 对照表
pixiu 的 lab 体系做了一件特别的事:用可证伪实验,逐个检验旧手记里的命题。本附录是对照表——左边是旧手记的命题,右边是 pixiu 的实证结果和对命题的修正。
| lab 课题 | 旧手记原命题 | pixiu 实证 | 对命题的修正 |
|---|---|---|---|
| R1 鲁棒性默认化 | 鲁棒性应该默认化(timeout/retry) | make_llm_client 工厂 + @provider_retry,清债 415→0 | R1-7:默认化有边界——装饰器难被 lint 强制,工厂可强制 |
| R2 熔断层级 | 连续失败要熔断 | CircuitOpenError(5次/60s/半开),根治 scheduler 空转一夜 | R2-1:熔断是跨层契约——下层熔断、上层优雅降级,缺一不可 |
| E1 EDD 闭环 | 先写 eval 再写功能(结构化例子) | signal eval 建框架,代码断言抓退化 | EDD 在叙事场景分维度适用:结构化直接,叙事需 E2/E3/E4 支撑 |
| E2 打分手段 | 三种手段(代码断言/裁判/人工)并列 | 决策表:结构化→断言、叙事→裁判、裁判可信度→人工 | 给了"指标→手段"判据(旧手记没给);裁判对轻微违规灵敏、打分有分寸 |
| E3 非确定性 | 跑多次看通过率(5次×80%),分层 | 裁判飘分布不均(极好 std0.31 / 极差 std0) | 分层不只按维度,按输入可判定性;旧手记承认没落地,pixiu 落地了 eval_llm_judge_statistical |
| E4 eval 卫生 | eval"队列污染",sleep 土办法 | grep 出 ~20 处模块级可变状态(4类"隐藏队列") | "队列"是一类(单例/缓存/字典/标志),sleep 治标,要 reset 状态/mock 隔离 |
| Q1 单人 CI | (旧手记未覆盖) | ruff 415→0、Actions 45s/83 passed | 单人 CI 也值——抓"配了不跑""静默失败"(Q1-1) |
| Q2 空壳识别 | (旧手记未覆盖) | 系统识别法核实调用链闭合 | "功能不是写了就算数",要逐个验证调用链 |
| C1 驾驭曲线 | 许愿→划边界→驾驭→元驾驭(回望式) | 全程"驾驭式",AI 执行比重递增 | 曲线可进行时观察(执行比重指标);演进渐进非跳跃 |
这张表说明了什么
这张表本身就是这本书方法论的精华。它说明三件事:
1. 经验之谈可以被检验。 旧手记里的每个"我觉得",都能变成一个可证伪的假设,用实验去证实、证伪、或修正。这不是写论文的矫情,是让"经验"变成"知识"的唯一途径。
2. 实证会修正命题。 注意右边那列——几乎每个课题都给了"修正版命题"。E3 发现飘的分布不均,修正了"分层按维度";E1 发现 EDD 分维度适用,修正了"EDD 统一可行";C1 发现演进是渐进的,修正了"阶段跳跃"。真实的项目会打脸纸上的理论,打脸之后修正出来的,才是更接近真相的命题。
3. 有些命题是全新的。 Q1(单人 CI)、Q2(空壳识别)在旧手记里根本没覆盖——是 pixiu 的实践自己长出来的新认知。这说明光"验证已有命题"不够,还要从实践里提炼新命题。
怎么读这张表
如果你读过旧手记,这张表告诉你"那些命题在一个真实项目里,哪些成立、哪些要修正、哪些有边界"。
如果你没读过,这张表本身就是一份"agent 工程命题清单 + 实证结果"——你可以直接拿去对照自己的项目检验。
附录 C 是一份把全书各章自检汇总的总清单,帮你把这些命题落实到自己的项目里。