AO 多智能体质量评测:发现与结论(Phase 1)

June 5, 2026 · View on GitHub

eval/run-eval.tsnpm run eval)做的质量评测闭环结论存档。 目的:回答 ao 押注的核心假设是否成立——多角色 DAG 协作的产出,是否真比用户自己写一句 prompt 更好?

方法

  • 对比:同一输入,跑 ao 多智能体工作流的最终产出 vs 一次性 prompt 基线(模拟用户不用 ao 的写法)。
  • 盲评:judge 不知哪份来自 ao;对 (A=多智能体,B=基线) 和交换后的 (A=基线,B=多智能体) 各评一次取平均 → 抵消 LLM 评审最大的位置偏置。双向不一致 → 标"低可信"。
  • 生成/评审分离:生成用待测模型,评审固定用强模型(Claude)给可信判别。
  • 多次平均:每模板跑 N 次取平均,压住单次高方差。

结果

强模型生成(Claude 两侧),高可信子集

模板多智能体单次基线结论
story-creation9.08.0✅ 多智能体
tech-blog8.09.0❌ 基线
ai-opinion8.09.0❌ 基线
product-review7.58.5❌ 基线

多智能体 1 胜 3 负,≈ 打平偏负。且单次"高可信"仍跨次剧烈摆动(ai-opinion 四轮:5.5→9.0→9.0→8.0),证明 N=1 不够、需多次平均。

弱模型生成(ollama/llama3 两侧),3 次取平均

模板多智能体单次基线胜者稳定性(多胜/总)
story-creation5.06.3❌ 基线0/3
tech-blog3.04.5❌ 基线0/3
ai-opinion2.55.2❌ 基线0/3
product-review4.74.2✅ 多智能体2/3

多智能体 1 胜 3 负,且 3 个败局都是 0/3(三次跑里从没赢过)——稳定的规律,非噪音。

中档模型生成(DeepSeek,ao 的实际默认 provider),3 次取平均

模板多智能体单次基线胜者稳定性(多胜/总)
story-creation8.07.0✅ 多智能体2/3
tech-blog8.25.7✅ 多智能体3/3(高可信)
ai-opinion8.78.2✅ 多智能体2/3
product-review7.57.7❌ 基线1/3

多智能体 3 胜 1 负——与强、弱两端完全相反。tech-blog 3/3 高可信决定性胜出(8.2 vs 5.7:DeepSeek 单次写的博客有 bug/截断,多智能体流水线产出完整可发布)。

结论:关系是非单调的(Goldilocks)

把三档拼起来,规律很清楚——多智能体相对单次的增益,取决于生成模型的强弱,且不是越强越好或越弱越好

生成模型档位多智能体 vs 单次为什么
极弱(llama3 8B)❌ 决定性更差(1胜3负,败局 0/3)每步质量太低,交接链放大漂移/错误,不纠错
中档(DeepSeek,默认更好(3胜1负)模型够格执行每个专精步骤,但单次又没到顶 → 分工真能抬质量
(Claude)≈ 打平偏负(1胜3负)单次已接近上限,编排开销不划算

修正此前判断:本文件早期写"核心假设被证伪"是错的——那是只看了两端(llama3 太弱、Claude 太强),都不是 ao 的真实档位。补上中档(DeepSeek)后,核心假设在 ao 的实际默认 provider 上是成立的:多智能体确实赢。

机制:弱模型在交接处累积漂移(中英混杂、跑题、虚构 API、漏草稿),交接链是误差放大器;中档模型每步都能胜任专精子任务,分工带来真实的"先研究再写、先评审再定稿"的质量增益;强模型单次已够好,多一道工序边际收益趋零。

最重要的现实含义:ao 默认就用 DeepSeek,而 DeepSeek 正落在"分工有用"的甜区。所以**"便宜但不弱的模型 + 多智能体 = 更好产出"这个卖点,数据支持**——前提是默认 provider 不能掉到 llama3 那种极弱档(那会主动变差)。

过程中发现并修复的真问题(评测闭环的副产品)

  • 4 个模板引用已发布角色库不存在的角色(用户装完跑不通的 shipping bug)→ 依赖提到 ^1.1.0
  • 收口步骤产物污染(漏进复盘/反问/ao 命令)→ 加反污染约束;ai-opinion 5.5→9.0 翻盘。
  • 收口步骤产出过薄(只吐结论、丢上游内容)→ investment 改为整合完整报告。
  • harness 截断偏置(喂 judge 前截到 3500 字,砍掉长产出结尾、系统性惩罚长产出)→ 提到 20000。
  • judge JSON 解析失败整条丢失 → 重试一次。

战略含义

  1. "便宜但不弱的模型 + 多智能体 = 更好产出"这个卖点,数据支持——在默认的 DeepSeek 档位,多智能体 3 胜 1 负。可以放心讲"质量",但要讲清楚是在这一档
  2. 默认 provider 是生死线,且要卡在甜区:默认必须是 DeepSeek 这种"够格但没到顶"的档位。绝不能默认到 llama3 那种极弱档——那会让多智能体主动比单次更差,新用户第一次就被劝退。若用户自带强模型(Claude/GPT-4 级),诚实说法是"≈打平,价值在结构化复现而非质量提升"。
  3. 任务类型有差异:创作/观点/技术写作(story/ai-opinion/tech-blog)多智能体稳赢;偏"汇总评审"的 product-review 仍接近或略输——分工增益在"需要先研究/先评审再产出"的任务上最明显。
  4. 过程价值始终在:确定性 DAG、角色校验、可 resume 迭代、版本化可复现——这是质量增益之外的、不依赖模型档位的护城河。

边界与局限

  • 三档各 4 个模板、3 次平均——有清晰信号但非穷举;judge 用 Claude(强但仍有少量位置偏置,低可信项已标注,多次平均已部分压噪)。
  • 甜区的边界未精测:DeepSeek 赢、llama3 输,但中间还有大片模型(GPT-4o-mini、Qwen、更大的开源模型等)没测,"分工有用"的具体强弱区间仍是估计。
  • 基线 prompt 由"工作流目标+输入"机械合成,不是精调的人类 prompt——真实强 prompt 可能让基线更强。

复现

# 默认:ollama 生成 + claude-code 评审 + 1 次
npm run eval [workflows/x.yaml ...]

# 自定义
AO_GEN_PROVIDER=deepseek AO_GEN_MODEL=deepseek-chat \
AO_JUDGE_PROVIDER=claude-code \
AO_EVAL_RUNS=3 \
npm run eval workflows/story-creation.yaml ...