在去中心化重构之上落地 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>
74 lines
5.1 KiB
Markdown
74 lines
5.1 KiB
Markdown
# Baseline Comparison(基线对比)
|
||
|
||
> 状态:**规划中(方法已定义,基线运行器未落地)**。
|
||
>
|
||
> 依据:**Agent 蜂群指标量化与标准 v2.0 §9.1**。配套:[`emergence-evaluation.md`](./emergence-evaluation.md)、[`cost-normalized-gain.md`](./cost-normalized-gain.md)、[`swarm-benchmark-protocol.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`](./baseline-runners.md)。
|
||
|
||
## 6. 待对齐
|
||
|
||
- 四类基线的标准实现边界(尤其 Strong / Chain / Sub-Agent)。
|
||
- 统一任务集与场景数据集。
|
||
- 运行次数、方差/显著性门槛与公平性约束的强制方式。
|