Files
Agentswarm/docs/benchmark/baseline-comparison.md
T
Songhaoz666andClaude Opus 4.8 baa67350e6 benchmark Group C:基线运行器 + 统一 BenchmarkRunRecord + 报告/回放(Closes #21)
在去中心化重构之上落地 benchmark 对比管线:5 个系统(single/strong/chain/sub_agent/swarm)
跑同一任务集、同一执行后端,产出统一 BenchmarkRunRecord → 评估器算 G_E/G_E,c → 报告 + 回放。

- benchmark/runners/:backend(Offline 确定性 / OpenAI 真实)+ base + 5 个 runner。各 runner
  用 held-out fixture 测试在 Group B 沙箱里评分得 TestPassRate(权威,非自评)。
- benchmark/tasksets/:统一任务集 + 加载器(coding-set-1,1 个 fixture)。
- benchmark/reports/、benchmark/replay/:G_E/G_E,c/coverage/confidence + 归档。
- benchmark/baselines/comparison.py:BenchmarkRunRecord 的 CodeReview/UserAcceptance 改为
  Optional(掩码归一,未采集即 None,规则 #9)。
- scripts/run-benchmark-suite.py harness + scripts/test-benchmark-runners.py。

与去中心化重构对齐:swarm runner 拓扑已**重指向去中心化流程**(种子→自选→自主分解→竞争→
同伴交叉评审→收敛,calls=6/review=1),非旧 Master「分解→派发→单评审」。仍用同一离线后端
建模以保证公平对比(驱动活体编排器会换后端→记录不可比;活体全流程由 test-workflow-e2e 验证)。

沙箱适配:runner 评分走 fail-closed 沙箱(#24),故 test + CI 步骤设 HEICODE_SANDBOX_ISOLATED=1
(仅 CI/隔离 Pod)。

影响范围:agent_swarm(benchmark 层 + 测试 + docs + CI)。不碰 orchestrator 编排逻辑、
不改 Manager↔Swarm 契约、不影响 Client/计费/密钥/审计/发布链路。

诚实边界:
- **离线后端只验证管线**:所有系统拿同一参考解 → quality 相同 → G_E=0、swarm_valid=False,
  刻意不显示蜂群优势(反造假)。真实 G_E>0 需 --backend openai + 足量冻结任务集 + 多次运行。
- 故 Closes #21(运行器 + 统一记录已落地并产出合规非 NaN 记录);Refs #20(仅 1/5 场景)、
  Refs #22(评估器/报告/回放已建,但 Quality 仅 TestPassRate,CodeReview/UserAcceptance 缺)、
  Refs #13(验收 EPIC,需真实 run 证明 Swarm>baselines,未满足)。

Closes #21
Refs #20
Refs #22
Refs #13

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 17:44:34 +08:00

5.1 KiB
Raw Blame History

Baseline Comparison(基线对比)

状态:规划中(方法已定义,基线运行器未落地)。

依据:Agent 蜂群指标量化与标准 v2.0 §9.1。配套:emergence-evaluation.md、cost-normalized-gain.md、swarm-benchmark-protocol.md。

1. 基线与实验组(标准 §9.1)

组 系统 说明 参考系数
Baseline A Single Agent 单 Agent 直接完成(最小基准) ×0.75
Baseline B Chain Agent 串行链式编排(无蜂群协作/评审) ×0.85
Baseline C Sub-Agent 主从结构委派(无对等协作/评审循环) ×0.90
Baseline D Strong Agent 高能力单体(更大模型/更长上下文) ×0.95
Experimental Swarm Agent(本仓) 分解→派发→协作→评审/重做→汇总 —

1.1 参考系数的含义(暂定值 · 待量化 · 暂不接入公式)

⚠️ 状态:暂定 / 仅元数据。×0.75/0.85/0.90/0.95 为人为设定的强度先验,标准未给计算方法;不参与任何公式(仅在 compare(...) 结果中作 base_coefficient 上报)。待后续实测量化(如 系数 = Q_baseline/Q_reference,按场景标定)后再决定是否接入。

参考系数(Single 0.75 < Chain 0.85 < Sub 0.90 < Strong 0.95)表示各基线的相对能力强度——把四类基线按「越接近满能力」排序:Single 最弱(约 0.75),Strong 最强(约 0.95)。其用意是:

  • 打败越强的基线越有价值。对 Strong(0.95)取得的质量增益,比对 Single(0.75)取得同样增益更能证明涌现——因为强基线的「上行空间」更小(headroom ≈ 1 − 系数)。
  • 因此它本质是一个难度 / 可信度因子:用于在跨基线汇总时给「战胜强基线」的增益更高权重,防止「我们赢了单 Agent」被当作强涌现证据。

可能的数学接入方式(标准 v2.x 未指定,待裁定):

  • 难度加权增益:weighted_G_E = (Q_swarm − Q_base) × 系数(战胜强基线权重更高);或
  • headroom 归一化:G_E_norm = (Q_swarm − Q_base) / (1 − 系数)(放大对强基线的增益);或
  • 期望基线缩放:Q_base_expected = 系数 × Q_reference。

当前实现:系数仅作为 compare(...) 结果里的 base_coefficient 元数据上报,不参与任何公式(G_E/G_E,c 用原始 Q_base)。代码常量见 benchmark/metrics.py:BASE_COEFFICIENTS。

2. 统一采集指标(标准 §10)

所有组在同一任务集上运行,统一采集:Completion、Quality、Cost、Time、Robustness。 由此得到每组 Q_*(质量,口径见 emergence-evaluation §3)与 C_*(成本,见 cost-normalized-gain §3)。

3. 对比方法

  1. 同一任务集 / 同一场景(Coding / Refactoring / Architecture / DevOps / Bug Fix)。
  2. 同等约束:相同模型网关、相同预算上限口径(避免实验组单独放宽)。
  3. 每组多次运行,报告均值与方差。
  4. 输出:
    • G_E = Q_swarm − Q_base(对 A/B/C/D 各算一次)。
    • G_E,c = (Q_swarm/C_swarm)/(Q_base/C_base)。
    • 成立判定:对全部 A/B/C/D 满足 G_E > 0 且 G_E,c > 1。

4. 公平性约束(防止虚高)

  • 实验组不得使用基线没有的额外资源/预算/工具(除「蜂群协作与评审」本身)。
  • 成本必须计入多 Agent + 评审重做的累计(天然反映在按 swarm_id 聚合的 usage,见 cost-normalized-gain §3)。
  • 报告需同时给出 G_E 与 G_E,c;只报 G_E 不足以验收。

5. 实现状态

组件 位置 状态
基线运行器 A–D + Swarm benchmark/runners/(single/strong/chain/sub_agent/swarm + base/backend) 🟡 已实现(管线);真实数值需模型 key
共享执行后端(公平网关) benchmark/runners/backend.py(Offline + OpenAI) 🟡 Offline 已实现(确定性、无偏);OpenAI 需 OPENAI_API_KEY
统一任务集 / 数据集 benchmark/tasksets/(coding-set-1) 🟡 1 个示例任务集;其余场景待建
指标采集(评分) held-out fixture + 沙箱(Group B)→ runner 🟡 TestPassRate 真实;CodeReview/UserAcceptance 掩码缺
对比 + 报告 + 回放 benchmark/reports/、benchmark/replay/、baselines/comparison.py ✅ 已实现
显著性(多 run 方差) — 🔴 未实现(confidence 现按 run 数标注)

⚠️ Offline 后端为管线验证:所有系统拿到同一参考解 → quality 相同 → G_E=0、swarm_valid=False, 刻意不显示蜂群优势(防造假)。真实 G_E>0 需 --backend openai + 足量冻结任务集 + 多次运行。 入口:scripts/run-benchmark-suite.py;说明见 baseline-runners.md。

6. 待对齐

  • 四类基线的标准实现边界(尤其 Strong / Chain / Sub-Agent)。
  • 统一任务集与场景数据集。
  • 运行次数、方差/显著性门槛与公平性约束的强制方式。