test: E2E eval — 真实 agent 效果评估 #34

Closed
opened 2026-06-04 04:16:12 +00:00 by xiaoju · 2 comments
Owner

Eval Framework — 真实 agent 效果评估

test 层保证逻辑不 break,eval 层保证 agent "能干活"。

设计

  • uwf-eval — 独立 CLI(考官),shell out 到 uwf(考生)
  • Task = npm package(tarball),包含 fixture + task.yaml + judge 脚本
  • Judge = Node 脚本,输入 (cwd, thread-id),输出 {score, data} JSON
  • 所有输出 OCAS 强类型(eval-run + 每个 judge 自己的 schema)
  • 内置 judge:frontmatter 合规、上游消费、幻觉检测、token 统计
  • 题库:shazhou/uwf-eval-tasks monorepo(proman 管理)

控制变量

每次 eval 可切换:workflow 定义 / uwf engine 版本 / model / agent adapter

评估维度

  • 过程:frontmatter 合规、上游信息消费、幻觉检测、token 消耗、轮次
  • 结果:cwd diff(代码变化)、测试通过、任务完成度

Sub-issues

Phase Issue Description
1a #69 eval package scaffold + CLI skeleton + OCAS schemas
1b #70 uwf-eval run — prepare, execute, collect
1c #71 builtin judges (frontmatter, upstream, hallucination, token-stats)
1d #72 uwf-eval report, diff, list commands
2 #73 uwf-eval-tasks monorepo + first task (fix-off-by-one)
dep #68 adapter $usage token reporting

实现计划

.hermes/plans/2026-06-04-eval-framework.md

Open Questions

  1. LLM-as-judge provider config — 复用 uwf config.yaml?还是 eval 自己配?
  2. Workflow 文件 — tarball 内自带?还是引用已注册 workflow name?支持两种?
  3. Judge 并行执行 — judges 互相独立,值得并行吗?
  4. LLM judge 一致性 — 多跑几次取均值?还是接受 variance?

— 小橘 🍊(NEKO Team)

## Eval Framework — 真实 agent 效果评估 test 层保证逻辑不 break,eval 层保证 agent "能干活"。 ## 设计 - `uwf-eval` — 独立 CLI(考官),shell out 到 uwf(考生) - Task = npm package(tarball),包含 fixture + task.yaml + judge 脚本 - Judge = Node 脚本,输入 (cwd, thread-id),输出 {score, data} JSON - 所有输出 OCAS 强类型(eval-run + 每个 judge 自己的 schema) - 内置 judge:frontmatter 合规、上游消费、幻觉检测、token 统计 - 题库:`shazhou/uwf-eval-tasks` monorepo(proman 管理) ## 控制变量 每次 eval 可切换:workflow 定义 / uwf engine 版本 / model / agent adapter ## 评估维度 - **过程**:frontmatter 合规、上游信息消费、幻觉检测、token 消耗、轮次 - **结果**:cwd diff(代码变化)、测试通过、任务完成度 ## Sub-issues | Phase | Issue | Description | |-------|-------|-------------| | 1a | #69 | eval package scaffold + CLI skeleton + OCAS schemas | | 1b | #70 | `uwf-eval run` — prepare, execute, collect | | 1c | #71 | builtin judges (frontmatter, upstream, hallucination, token-stats) | | 1d | #72 | `uwf-eval report`, `diff`, `list` commands | | 2 | #73 | uwf-eval-tasks monorepo + first task (fix-off-by-one) | | dep | #68 | adapter $usage token reporting | ## 实现计划 `.hermes/plans/2026-06-04-eval-framework.md` ## Open Questions 1. LLM-as-judge provider config — 复用 uwf config.yaml?还是 eval 自己配? 2. Workflow 文件 — tarball 内自带?还是引用已注册 workflow name?支持两种? 3. Judge 并行执行 — judges 互相独立,值得并行吗? 4. LLM judge 一致性 — 多跑几次取均值?还是接受 variance? — 小橘 🍊(NEKO Team)
Author
Owner

Open Questions — Resolved

  1. LLM-as-judge provider — 每个 judge 脚本自己定义(自带 LLM 调用逻辑和配置)
  2. Workflow 文件 — task package 内自带
  3. Judge 并行 — 可以支持,不强制
  4. LLM judge 多次取均值 — 可以支持,不强制

— 小橘 🍊(NEKO Team)

## Open Questions — Resolved 1. **LLM-as-judge provider** — 每个 judge 脚本自己定义(自带 LLM 调用逻辑和配置) 2. **Workflow 文件** — task package 内自带 3. **Judge 并行** — 可以支持,不强制 4. **LLM judge 多次取均值** — 可以支持,不强制 — 小橘 🍊(NEKO Team)
Author
Owner

Eval framework complete

  • @united-workforce/eval package: prepare → execute → collect pipeline
  • Built-in judges: frontmatter-compliance, token-stats, test-pass
  • CAS-stored eval-run results
  • Full pipeline validated with fix-add-bug task
  • Task monorepo: xiaoju/uwf-eval-tasks

— 小橘 🍊(NEKO Team)

Eval framework complete ✅ - `@united-workforce/eval` package: prepare → execute → collect pipeline - Built-in judges: frontmatter-compliance, token-stats, test-pass - CAS-stored eval-run results - Full pipeline validated with `fix-add-bug` task - Task monorepo: `xiaoju/uwf-eval-tasks` — 小橘 🍊(NEKO Team)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shazhou/united-workforce#34