Files
Agentswarm/docs/benchmark/baseline-record-schema.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

4.7 KiB
Raw Blame History

Baseline Run Record Schema(基线运行记录 · 共享契约)

状态:Schema + 评估器 + 记录生产(runner)均已落地;Quality 仅 TestPassRate 真实,CodeReview/UserAcceptance 仍缺;真实数值需模型 key。

依据:Agent 蜂群指标量化与标准 v2.0 §6, §9。实现:benchmark/baselines/comparison.py(BenchmarkRunRecord / compare / evaluate)+ benchmark/runners/(5 系统产出记录,见 baseline-runners.md)。配套:baseline-comparison.md、emergence-evaluation.md、cost-normalized-gain.md、IMPORTANT-metric-coverage-gaps.md。

更新:code_review_score/user_acceptance 现为 Optional(runner 仅采 TestPassRate 时传 None,quality() 掩码归一;None ≠ 0)。

1. 目的

蜂群验收的核心是 swarm vs baseline 对比(尤其 sub-agent,Baseline C ×0.90)。要算 G_E/G_E,c,swarm 与每个基线必须在同一任务集、同等约束下,产出同一份记录。本文定义这份共享记录 BenchmarkRunRecord:两侧程序各自产出,由本仓评估器统一比较。

2. 共享记录 BenchmarkRunRecord

字段 类型 含义
system str swarm / single / chain / sub / strong
scenario str coding / refactoring / architecture / devops / bugfix
task_set_id str 共享任务集 ID(同一 id 才可比)
n_agent int 该系统使用的 Agent 数
completed_tasks / total_tasks int 完成度(Completion)
test_pass_rate / code_review_score / user_acceptance float(0–100) 质量三输入(Quality)
budget_usd / actual_cost_usd float 计划/实测成本(Cost、CostEfficiency)
model_tokens int token 用量
target_time_s / actual_time_s float 计划/实测耗时(Time、Speed)
recovered_failures / total_failures int 恢复/总失败(Robustness)

JSON 示例:

{
  "system": "sub", "scenario": "coding", "task_set_id": "coding-set-1", "n_agent": 3,
  "completed_tasks": 9, "total_tasks": 10,
  "test_pass_rate": 70, "code_review_score": 60, "user_acceptance": 65,
  "budget_usd": 10, "actual_cost_usd": 6, "model_tokens": 42000,
  "target_time_s": 600, "actual_time_s": 720, "recovered_failures": 1, "total_failures": 2
}

3. 派生量(评估器,已实现)

  • Q = quality(rec) = 0.4·TestPass + 0.3·CodeReview + 0.3·UserAcceptance
  • CostEfficiency = 100·Budget/ActualCost
  • 统一采集 unified_metrics(rec):Completion / Quality / CostEfficiency / Speed / Robustness(v2.0 §9)
  • compare(swarm_rec, base_rec)(默认 symmetric_cost=True,Owner 修正 2026-06-09):
    • G_E = Q_swarm − Q_base
    • C_swarm = N_agent_swarm·(CostEfficiency_swarm/100 + 0.5);C_base = N_agent_base·(CostEfficiency_base/100 + 0.5)(对称)
    • G_E,c = (Q_swarm/C_swarm) − (Q_base/C_base)
    • 字面 v2.0(C_base=1.0)仅 symmetric_cost=False 保留参考;背景见 OWNER-NOTE-cost-normalized-gain.md。
  • evaluate(swarm_rec, [baselines]):对全部基线比较;swarm_valid 要求对每个基线 G_E>0 且 G_E,c>0。

4. 谁产出什么

字段族 swarm 侧现状 sub-agent 侧需产出
Completion (completed/total) ✅ 任务状态 ✅ 需提供
Cost (actual_cost_usd/model_tokens)、n_agent ✅ usage 已采集 ✅ 需提供
Time (actual_time_s) ✅ 时间戳 ✅ 需提供
Robustness (recovered/total_failures) 🟡 需计数 ✅ 需提供
Quality (test_pass_rate/code_review_score/user_acceptance) 🔴 未插桩 🔴 需插桩

关键阻塞:Quality 在 swarm 与 sub-agent 两侧都未插桩(无 CI/测试通过率、评审分、验收)。没有 Quality 就无 Q → 无 G_E。这是「记录已可比较、但记录尚不可生产」的根本原因。

5. 接入路径

  1. 双方各实现一个「跑统一任务集 → 产出 BenchmarkRunRecord」的 runner(sub-agent 侧在其程序内;swarm 侧可由 SwarmRunMetricsCollector 扩展 + Quality 插桩)。
  2. 统一任务集与 task_set_id、同等约束(同模型网关、同预算口径)。
  3. 把两侧记录交给 benchmark/baselines/evaluate(...) → 得 G_E/G_E,c 与 swarm_valid。

6. 待对齐

  • Quality 三输入的采集口径与 CI/评审/验收来源。
  • CostEfficiency 口径(S_cost vs E_cost)与基线参考系数(×0.75/0.85/0.90/0.95)在公式中的确切作用。
  • 统一任务集与数据集(各场景)。