Issue Draft: 接入 Harbor benchflow/skillsbench 作为 agent benchmark 范例
建议标题
feat(agent): integrate Harbor SkillsBench as the benchmark integration example
背景
agent 模块主链已经设计完成,后续需要一个“其他同学可以照着接”的 Harbor dataset 范例。
截至 2026-04-02,我建议优先选择 Harbor registry 上的 benchflow/skillsbench:
- Harbor 当前页面展示 87 个任务
- 任务名称覆盖代码调试、文档处理、数据比对、仓库分析等真实工作流
- 能比较自然地映射到 agent 模块的
installed_client + agent_runtime + agent_eval_kits 主链
注意:SkillsBench 官方站点文案仍写 84 个任务,因此本 issue 应以 Harbor registry 当前内容为准,不要求任务数和论文/官网完全一致。
为什么选 SkillsBench
从 Harbor registry 可见的任务名来看,这个数据集具备比较强的“典型性”:
react-performance-debugging
gh-repo-analytics
pptx-reference-formatting
pdf-excel-diff
从 SkillsBench 官方文档来看,它还包含一批需要外部 API 或较重资源的任务,例如:
gh-repo-analytics
scheduling-email-assistant
speaker-diarization-subtitles
trend-anomaly-causal-inference
video-tutorial-indexer
这意味着它能作为一个很好的接入样例,帮助我们把下面这些问题一次性走通:
- Harbor dataset 的 sample 标准化
- 多类型任务的 instruction / cwd / env 抽取
- secret / heavy task 的排除策略
- agent artifact 和 verifier contract 的统一输出
目标
把 benchflow/skillsbench 接到 GAGE 的 agent runtime 主链中,形成一份可运行、可测、可扩展的 benchmark 接入范例。
范围
本 issue 包含
- 新增
skillsbench 对应的 benchmark kit
- 新增最小 smoke dataset / smoke config
- 跑通
installed_client 路径
- 完成 verifier 接线
- 增加最小单测和一条 smoke 回归
- 产出一份面向后续接入者的 sample / config 约定
本 issue 不包含
- 一次性跑完整个 SkillsBench 全量任务
- 处理所有需要第三方 API key 的任务
- 为所有 multimodal / heavy task 一次性补完基础设施
建议分阶段实施
Phase 1: 可稳定回归的 smoke 子集
先挑选一组“不依赖 secret、构建负担适中、能覆盖多种任务类型”的子集,跑通主链。
建议显式排除官方文档里已知的高风险任务:
gh-repo-analytics,需要 GH_AUTH_TOKEN
mhc-layer-impl,需要 Modal token
pedestrian-traffic-counting,需要模型 API key
pg-essay-to-audiobook,需要 OPENAI_API_KEY 和 ELEVENLABS_API_KEY
scheduling-email-assistant,需要额外 token 且有挂载约束
speaker-diarization-subtitles,Docker build 容易 OOM
trend-anomaly-causal-inference,需要 ANTHROPIC 和 OPENAI
video-filler-word-remover,需要 OPENAI_API_KEY
video-tutorial-indexer,需要 OPENAI_API_KEY
Phase 2: 扩大覆盖面
在 Phase 1 稳定后,再评估:
- 是否纳入外部 API 任务
- 是否增加多模态任务
- 是否需要专门的 remote environment / artifact collector
建议实现落点
代码
src/gage_eval/agent_eval_kits/skillsbench/
src/gage_eval/role/adapters/dut_agent.py
- 如需 native verifier,再评估是否新增
src/gage_eval/agent_runtime/verifier/skillsbench.py
配置
config/custom/skillsbench/smoke_installed_client_skillsbench.yaml
config/custom/skillsbench/smoke_skillsbench.jsonl
测试
tests/unit/agent_eval_kits/test_skillsbench_kit.py
- 如需 verifier 单测,再加
tests/unit/agent_runtime/test_skillsbench_verifier.py
设计要求
sample contract
至少要明确:
- instruction 从哪里取
- cwd / workspace_root 从哪里取
- env / metadata 怎么透传
- 哪些 task 需要额外 runtime surface
runtime contract
必须明确:
agent_runtimes[].benchmark_kit_id = "skillsbench"
- 使用哪种 environment kind
- 初始 smoke 是否只要求
terminal + fs
verifier contract
必须明确:
- SkillsBench 的成功/失败结果如何被 GAGE 统一成
eval_result
- agent 产物如何映射到 verifier 输入
- 是否先复用
judge_adapter,还是直接实现 dataset 专属 verifier
验收标准
- smoke config 可解析、可启动
- 至少 1 组 SkillsBench smoke task 在本地稳定跑通
- 运行后能稳定产出
stdout.log、trajectory.json 和标准化 eval_result
- 有最小单测覆盖
prepare_inputs / finalize_result / verifier input
- 文档说明清楚哪些任务被 Phase 1 排除以及原因
开放问题
- SkillsBench 在 Harbor registry 和官方站点的任务数不一致,最终以哪个为准
- verifier 是优先对接 Harbor 原生 oracle,还是先做 GAGE 内部统一包装
- Phase 1 是否只做无密钥子集,还是允许通过环境变量注入少量 secret
参考链接
Issue Draft: 接入 Harbor
benchflow/skillsbench作为 agent benchmark 范例建议标题
feat(agent): integrate Harbor SkillsBench as the benchmark integration example背景
agent 模块主链已经设计完成,后续需要一个“其他同学可以照着接”的 Harbor dataset 范例。
截至 2026-04-02,我建议优先选择 Harbor registry 上的
benchflow/skillsbench:installed_client + agent_runtime + agent_eval_kits主链注意:SkillsBench 官方站点文案仍写 84 个任务,因此本 issue 应以 Harbor registry 当前内容为准,不要求任务数和论文/官网完全一致。
为什么选 SkillsBench
从 Harbor registry 可见的任务名来看,这个数据集具备比较强的“典型性”:
react-performance-debugginggh-repo-analyticspptx-reference-formattingpdf-excel-diff从 SkillsBench 官方文档来看,它还包含一批需要外部 API 或较重资源的任务,例如:
gh-repo-analyticsscheduling-email-assistantspeaker-diarization-subtitlestrend-anomaly-causal-inferencevideo-tutorial-indexer这意味着它能作为一个很好的接入样例,帮助我们把下面这些问题一次性走通:
目标
把
benchflow/skillsbench接到 GAGE 的 agent runtime 主链中,形成一份可运行、可测、可扩展的 benchmark 接入范例。范围
本 issue 包含
skillsbench对应的 benchmark kitinstalled_client路径本 issue 不包含
建议分阶段实施
Phase 1: 可稳定回归的 smoke 子集
先挑选一组“不依赖 secret、构建负担适中、能覆盖多种任务类型”的子集,跑通主链。
建议显式排除官方文档里已知的高风险任务:
gh-repo-analytics,需要GH_AUTH_TOKENmhc-layer-impl,需要 Modal tokenpedestrian-traffic-counting,需要模型 API keypg-essay-to-audiobook,需要OPENAI_API_KEY和ELEVENLABS_API_KEYscheduling-email-assistant,需要额外 token 且有挂载约束speaker-diarization-subtitles,Docker build 容易 OOMtrend-anomaly-causal-inference,需要ANTHROPIC和OPENAIvideo-filler-word-remover,需要OPENAI_API_KEYvideo-tutorial-indexer,需要OPENAI_API_KEYPhase 2: 扩大覆盖面
在 Phase 1 稳定后,再评估:
建议实现落点
代码
src/gage_eval/agent_eval_kits/skillsbench/src/gage_eval/role/adapters/dut_agent.pysrc/gage_eval/agent_runtime/verifier/skillsbench.py配置
config/custom/skillsbench/smoke_installed_client_skillsbench.yamlconfig/custom/skillsbench/smoke_skillsbench.jsonl测试
tests/unit/agent_eval_kits/test_skillsbench_kit.pytests/unit/agent_runtime/test_skillsbench_verifier.py设计要求
sample contract
至少要明确:
runtime contract
必须明确:
agent_runtimes[].benchmark_kit_id = "skillsbench"terminal + fsverifier contract
必须明确:
eval_resultjudge_adapter,还是直接实现 dataset 专属 verifier验收标准
stdout.log、trajectory.json和标准化eval_resultprepare_inputs/finalize_result/ verifier input开放问题
参考链接