Add the task-level A/B dual-run harness with demo.brief evidence (Q3 WP5) #102

Merged
weichen merged 1 commits from feature/q3-ab-harness into main 2026-10-08 03:49:31 +00:00
Owner

Why

Q3 WP5:任务级 direct vs squad(编译图) 双跑 harness(扩 eval/switch.go),同批任务记录差异(不要求字节级相同),为 runtime.entry 默认切换产出 DecideSwitch 证据。

What

  • eval/ab.go(纯机制,不依赖 runtime):ABTask/ABOutcome/RunFunc/ABTaskRecord/ABReport;RunAB 双跑整批(单侧失败不中断),逐任务差异注记(状态/要点覆盖/首字延迟差/摘要形态),要点打分(MissingThemes,完成+全覆盖=100),P50 首字延迟,汇总 EntryScore 交 DecideSwitch,渲染可入卡报告文本
  • eval/ab_test.go:机制面 5 测(差异记录与打分、同分达标、延迟门、RunFunc 容错、空批不达标)
  • internal/wfcompile/ab_demo_test.go:demo.brief 场景真实双跑——direct=脚本化单代理作答;squad=真实 RunCompiled 编译图(桩后端+桩验收流);两侧 100/100,摘要形态差异记录在案

切换裁决(证据入卡,不翻默认)

harness 报告:「切换条件已满足:squad 100 不低于 direct 100,额外首字延迟 0s。可以把 runtime.entry 的默认值改为 squad,并保留 direct 作为回退。合入前需要产品确认。」——按 DecideSwitch 报告语义与双钥匙原则,本 PR 不改 settings 默认(runtime.entry 保持 direct),证据随任务卡与 PR 记录,待产品确认后另行切换。

Evidence

  • eval 5 测 + wfcompile AB 集成测试 + backend 全套绿(SELF);PR HEAD CI 权威(GATE)

Refs

  • Q3 计划 WP5;Dev 卡 .task/feature-agent-stack-q3.md
## Why Q3 WP5:任务级 direct vs squad(编译图) 双跑 harness(扩 eval/switch.go),同批任务记录差异(不要求字节级相同),为 runtime.entry 默认切换产出 DecideSwitch 证据。 ## What - **eval/ab.go**(纯机制,不依赖 runtime):ABTask/ABOutcome/RunFunc/ABTaskRecord/ABReport;RunAB 双跑整批(单侧失败不中断),逐任务差异注记(状态/要点覆盖/首字延迟差/摘要形态),要点打分(MissingThemes,完成+全覆盖=100),P50 首字延迟,汇总 EntryScore 交 DecideSwitch,渲染可入卡报告文本 - **eval/ab_test.go**:机制面 5 测(差异记录与打分、同分达标、延迟门、RunFunc 容错、空批不达标) - **internal/wfcompile/ab_demo_test.go**:demo.brief 场景真实双跑——direct=脚本化单代理作答;squad=真实 RunCompiled 编译图(桩后端+桩验收流);两侧 100/100,摘要形态差异记录在案 ## 切换裁决(证据入卡,不翻默认) harness 报告:「切换条件已满足:squad 100 不低于 direct 100,额外首字延迟 0s。可以把 runtime.entry 的默认值改为 squad,并保留 direct 作为回退。**合入前需要产品确认**。」——按 DecideSwitch 报告语义与双钥匙原则,本 PR 不改 settings 默认(runtime.entry 保持 direct),证据随任务卡与 PR 记录,待产品确认后另行切换。 ## Evidence - eval 5 测 + wfcompile AB 集成测试 + backend 全套绿(SELF);PR HEAD CI 权威(GATE) ## Refs - Q3 计划 WP5;Dev 卡 .task/feature-agent-stack-q3.md
weichen added 1 commit 2026-10-08 03:46:55 +00:00
Why: Q3 WP5 requires a same-batch dual-run harness (direct vs squad
compiled graph) that records differences without demanding byte-identical
output, feeding DecideSwitch evidence for the runtime.entry default-switch
decision.

Evidence: eval/ab_test.go mechanics (theme-based scoring, status/theme/
latency diff notes, P50, DecideSwitch wiring, RunFunc error tolerance,
empty batch); wfcompile TestABDemoBriefDualRun runs the demo.brief scenario
on both entries (direct = scripted single-agent answer; squad = real
RunCompiled with stub backend and judge) and logs the report: both sides
100/100, summary-form difference recorded, decision '切换条件已满足…合入前
需要产品确认'. Full backend suite green (SELF); CI authoritative (GATE).

Impact: new eval/ab.go harness (pure mechanics, no runtime dependency);
no product default is flipped - runtime.entry stays direct until product
confirmation per the DecideSwitch report semantics (evidence recorded in
the task card and PR).

Refs: Q3 plan WP5 (2026-10-07-agent-stack-q2q3-plans.md); task card
.task/feature-agent-stack-q3.md
weichen merged commit 4791b2e760 into main 2026-10-08 03:49:31 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Backend#102