AI Agent 工程师课程
程序员进阶版

附录 C · 贯穿式对照实验与实验方法全集

三组跨框架对照实验,以及能让实验结论站得住脚的统计方法

这份附录解决一个问题:你说框架 A 比框架 B 好,凭什么?

大多数技术选型文章给的是主观感受。这份附录教你把感受变成能经受质疑的数据。

三组贯穿式对照实验

第 1 组必做,第 2、3 组二选一,未选者以设计评估文档代替。第 4 组在完成 A10 之后做,它是唯一一组能检验抽象跨语言的实验。

第 1 组:同一个 Tool Calling Agent,四种实现

Native Harness、Pi Agent Core、LangChain Adapter、Mastra Agent 运行同一个 Tool Calling Agent。

依赖模块:A1、A4、程序员基础版第 4 周与第 7 周。

第 2 组:同一个审批流程,两种编排

LangGraph 与 Mastra Workflow 运行同一个商品上架加人工审批流程。

依赖模块:A3、程序员基础版第 7 周。

第 3 组:统一事件流与统一验收

Native、Pi、LangGraph、Mastra 输出统一事件流,并由同一 Dataset、Policy Engine、Trace Schema 与 Eval Gate 验收。

依赖模块:A5。

第 4 组:同一份 Agent Definition,跨进程跨语言执行

前三组的实现全是 TypeScript 同进程,共用同一个 Tool Runtime。这一组把同一份 AgentDefinition 交给 Agno(Python)执行,量的是语言和进程免费兜住了多少本该由抽象承担的工作。

依赖模块:A10、A7。

必须单独量化的四项,前三组的维度表在这里都要重测一遍,另外加:

维度怎么测为什么前三组测不出来
取消可靠性取消一百次,统计远端真正中断的比例同进程 AbortSignal 是百分之百的
事件丢失率对比 AgentOS 侧记录的事件数与你收到的事件数同进程直接构造对象,不会丢
策略覆盖率Policy Gate 实际拦住的工具调用 / 该拦的总数同进程共用 Tool Runtime,这个比例恒等于 1
数据退出成本exit drill 里数据迁移的实际耗时同进程 Adapter 不持有独立的 session 库

第三行是这一组的核心。 前三组无论怎么做,策略覆盖率都是 100%,因为工具执行本来就在你手里。这一组会给出一个小于 1 的数字,那个数字才是你抽象的真实边界。

顺带一组可选:三种编排范式

如果 A6 也做了,同一个多 Agent 场景可以再跑一遍显式状态图(LangGraph Subgraph)、代码编排(Mastra Workflow)、模型分派(Agno Team)的对照。重点量化模型分派的不稳定性:同一 Dataset 跑十次,统计分派路径的分布。这个数字对「要不要把编排交给模型」这个决策比任何主观评价都有用。

对照报告必须量化的维度

维度怎么测
实现复杂度代码行数、依赖数、新概念数量
类型安全有多少处需要 any 或类型断言
恢复语义服务重启后能否续跑,粒度多细
事件完整性对照统一 AgentEvent 缺哪些字段
延迟P50 / P95 端到端,以及首 Token
成本单次 Run 平均 Token 与金额
可观测性Trace 能还原到哪一层
退出成本删除该框架后的报错数与修复耗时;跨进程 Runtime 额外记数据迁移耗时

所有框架能力必须能通过 feature flag 关闭,以 Native Harness 作为消融基线。

实验方法全集

对应总课表第 19 周进阶档

程序员基础版第 6 周只做基本固定测试集回归,不含以下方法论。这一节是让你的数字站得住脚的关键,也是面试里被追问时不露怯的底气。

四层评测

  1. 确定性评测:JSON Schema、字段完整性、Tool 参数、权限、SQL 安全、引用格式
  2. 语义评测:Relevance、Completeness、Groundedness、Style、Compliance
  3. Agent 轨迹评测:Tool 选择、Tool 顺序、重复调用、步骤数、是否完成任务
  4. 业务评测:人工修改率、审批通过率、Listing 发布成功率、平均任务成本、平均完成时间

第 4 层最容易被跳过,也最能说服业务方。人工修改率这一个指标,比十个技术指标更能证明系统好不好用。

统计方法

  • 配对样本 + Bootstrap 置信区间,报告 effect size,不只报告平均分
  • 至少一次框架消融、一次 Tool / Memory 消融、一次 Prompt 扰动实验
  • LLM Judge 有校准集与一致性监控,注意 Multiple Comparison 风险
  • 所有对照使用同一输入、工具桩、随机种子策略与版本锁
  • Simulation、User Model 与 Environment Stub(模拟真实使用场景)
  • Evaluator Agreement、Bias 与 Drift 监控

为什么必须报置信区间

因为 Agent 评测的样本量通常很小(几十到几百条),而模型输出本身有随机性。平均分 82 对比 79,在 50 条样本上很可能是噪声。 报了置信区间之后,你会经常发现自己以为的提升并不显著,这个发现本身就避免了一次错误的技术决策。

配对样本的意思是同一批输入跑两个方案,而不是各跑各的。配对能消掉输入难度的差异,同样样本量下检验力高得多。

动手挑战

用统计方法推翻你自己的一个结论。

翻出你在程序员基础版或前面模块里得出的某个「A 比 B 好」的结论(比如加了 Reranker 效果更好、Mastra 比 Native 代码更少、Multi-Agent 成功率更高),然后:

  1. 补齐配对样本设计,重跑
  2. 算 Bootstrap 置信区间和 effect size
  3. 判断这个结论在统计上是否成立

大概率你会遇到至少一个「其实不显著」的结论。把它诚实地写进报告,并说明需要多大样本量才能检验出这个量级的差异。

这个练习的价值在于:面试官追问「这个提升是显著的吗」时,做过的人和没做过的人,反应完全不一样。

验收标准

  • 第 1 组实验完成,四种实现跑同一批用例并产出八个维度的数据
  • 第 2 或第 3 组择一完成,未选组提交设计评估文档
  • 所有框架能力可通过 feature flag 关闭,Native 为消融基线
  • 至少三次消融或扰动实验(框架、Tool / Memory、Prompt)
  • 关键结论附置信区间与 effect size,不只报平均分
  • LLM Judge 有校准集,一致性有监控数据

面试考点

这份附录对应面试里的数据严谨性考察,是很多技术很强的候选人反而会栽的地方。

  • 「这个优化带来多少提升?」:报数字的同时报样本量和置信区间。只报一个百分比的候选人,遇到懂统计的面试官会被追问到答不上来。
  • 「你怎么确定是这个改动带来的提升?」:答消融实验和配对样本。这题考的是因果推断意识,能答上来说明你不是碰运气调参。
  • 「LLM Judge 靠谱吗?」:答有校准集和一致性监控,同时承认它评不了自己也答不对的题。主动说局限比声称可靠更可信。
  • 「你有没有得出过和预期相反的结论?」:这题机会很大。讲你在动手挑战里推翻自己结论的经历,展示的是科学态度而不是技术能力,但恰恰是这个更稀缺。

复习与延伸

本仓库对应源码

  • packages/eval-kit/src/evaluate.ts:统一 EvalCase / EvalResult,四层评测都从这套契约出发
  • packages/contracts/src/eval.ts:评测契约定义
  • 五个 Adapter 包:对照实验的被测对象

相关页面

  • 附录 B 第 19 周条目:这份方法论的验收清单
  • A5:五 Runtime 环境是第 3 组实验的前提

On this page