KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

11. 怎样证明多个 Agent 比一个更好? — keel 龙骨

最终报告看起来更专业,不代表协作有效。你需要能够回答:哪一个 Agent 产生了哪个工件、哪次委派增加了延迟、哪个失败导致了降级、最终质量相对单 Agent 是否真的提升。

最终报告看起来更专业,不代表协作有效。你需要能够回答:哪一个 Agent 产生了哪个工件、哪次委派增加了延迟、哪个失败导致了降级、最终质量相对单 Agent 是否真的提升。

用图而不是最后一条文本描述运行

一次 TeamRun 可以表示为有向因果图:

run.started
  -> task.created(task-metrics)
  -> task.assigned(metrics_agent)
  -> task.succeeded(artifact-metrics)
  -> task.created(task-deploy)
  -> task.failed(timeout)
  -> gather.degraded
  -> review.completed
  -> run.completed

每个事件至少需要:

事件记录已经发生的事实;TeamRun state 表示当前下一步。两者不能互相替代。

先定义指标,再看演示

质量

运行

安全

单 Agent 基线和消融

至少准备三种实现:

  1. single_agent:一个 Agent 读取允许的全部证据;
  2. multi_agent_full:指标、变更、reviewer 和 Coordinator;
  3. 消融版本:移除 reviewer、移除并行、移除某个 Worker。

在相同输入、相同模型和相同验收集上比较。否则“多 Agent 更好”可能只是数据、prompt 或模型版本变化造成的。

不要只用 LLM Judge

可以让模型辅助评价开放文本,但关键性质应尽量使用确定性评分:

对事实正确性、解释质量和有用性,再结合人工标注、规则和模型评审,并抽查模型评审的一致性。

用回放定位最早错误

若最终结论错误,沿图向前找:

最终报告错误
  -> reviewer 是否漏掉问题?
  -> gather 是否丢失 artifact?
  -> Worker 是否错误引用证据?
  -> Context Builder 是否注入了错误版本?
  -> Coordinator 是否分派了错误任务?

因此每个中间工件都要保留版本和来源。只记录 Agent 最终回答,无法区分协作错误与模型错误。

从进程内项目映射到生产运行时

学习项目使用内存 Registry、ThreadPoolExecutor 和本地 Ollama。生产系统通常需要:

API -> Run Store -> Queue -> Coordinator Worker
                         -> Agent Worker / remote service
                         -> Artifact Store / Event Store

跨进程后要补上:任务租约、幂等提交、消息重投、版本冲突、服务发现、身份传播、超时预算和脱敏日志。不要因为框架提供 kickoff() 就忽略这些运行时问题。

本章实验

用项目测试输出的事件建立一张运行表,记录:

版本 质量 延迟 模型调用 失败率 结论
单 Agent
多 Agent
无 Reviewer

先填测量值,再决定是否保留协作。不要先写结论。

检查理解

下一章把这些协议组合成一个完整但仍然可学习的事件响应协作组。

下一章:完成事件响应协作组

进入 keel 阅读