在去中心化重构之上落地 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>
5.1 KiB
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. 对比方法
- 同一任务集 / 同一场景(Coding / Refactoring / Architecture / DevOps / Bug Fix)。
- 同等约束:相同模型网关、相同预算上限口径(避免实验组单独放宽)。
- 每组多次运行,报告均值与方差。
- 输出:
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)。
- 统一任务集与场景数据集。
- 运行次数、方差/显著性门槛与公平性约束的强制方式。