sora 13274243a0 Bump vendored EvalScope and add K3-ready DPV4 configs.
Keep K3 suite selection and report-schema scoring in bash, merge K3/vision dataset_args into dpv4 yamls, and pin EvalScope at 735d920ee911 with local patches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 07:30:48 +00:00

104 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SkillsBench
SkillsBench 评测 agent 是否能利用任务内置的 Agent Skills。每个任务包含 `task.md``environment/Dockerfile``environment/skills/``oracle/``verifier/`。EvalScope 会根据任务的 Dockerfile 本地构建镜像,在容器中运行 agent 或 oracle然后执行任务自带的 `verifier/test.sh`,读取 `/logs/verifier/reward.txt` 作为分数。
## 前置条件
- 本地已安装并启动 Docker。
- 已 clone SkillsBench 仓库,并传入 `tasks/` 目录路径。
- 运行真实 agent 时需要配置 `agent_config`,例如 Codex external runner。
- 外部 runner 会在任务容器内执行。Codex/OpenCode/Gemini CLI runner 会先探测 CLI`auto_install=True` 时可在 runner setup 阶段安装。
- verifier 脚本可能通过 apt/pip/uv 安装依赖,因此需要可用网络。
## Skill Mode
默认 `skill_mode``no-skill`
- `no-skill`:构建临时上下文时删除 `environment/skills`,并清理 Dockerfile 中的 skill copy/path。
- `with-skill`:将任务内 `environment/skills` 注入镜像内 `/skills`runner 启动前再安装到自己的 skill discovery path。
当前版本不支持 `self-gen`,也不会自动计算 lift。请分别运行 `no-skill``with-skill`,再使用 EvalScope 的 run comparison 能力比较两次结果。
## Oracle Smoke
先用 oracle 验证镜像、路径和 verifier contract
```python
from evalscope import TaskConfig, run_task
run_task(TaskConfig(
model='dummy',
datasets=['skillsbench'],
limit=1,
dataset_args={
'skillsbench': {
'extra_params': {
'tasks_dir': '/path/to/skillsbench/tasks',
'task_ids': ['offer-letter-generator'],
'runner': 'oracle',
'skill_mode': 'no-skill',
}
}
},
))
```
## 真实 Agent
`no-skill`
```python
from evalscope import TaskConfig, run_task
run_task(TaskConfig(
model='your-model',
datasets=['skillsbench'],
limit=1,
agent_config={
'mode': 'external',
'framework': 'codex',
'environment': 'docker',
'timeout': 900,
'kwargs': {
'auto_install': True,
},
},
dataset_args={
'skillsbench': {
'extra_params': {
'tasks_dir': '/path/to/skillsbench/tasks',
'task_ids': ['offer-letter-generator'],
'skill_mode': 'no-skill',
}
}
},
))
```
`with-skill` 只需要改 `skill_mode`
```python
dataset_args={
'skillsbench': {
'extra_params': {
'tasks_dir': '/path/to/skillsbench/tasks',
'task_ids': ['offer-letter-generator'],
'skill_mode': 'with-skill',
}
}
}
```
## 镜像缓存
EvalScope 会为每个 task 和 skill mode 生成临时 build context并基于 context hash 构建本地 Docker image。`no-skill``with-skill` 使用不同 cache key。首次运行会 build后续相同上下文会复用本地镜像。设置 `force_rebuild=true` 可强制重建。
任务镜像仍然是任务依赖和 verifier 输入的唯一来源。如果该镜像已经预装 external CLI可以把 runner 的 `auto_install` 设为 `False`;否则保持 `auto_install=True`,由 runner 在任务容器 setup 阶段安装 CLI。
## 当前限制
- 默认只面向 SkillsBench 官方 `tasks/`,不自动包含 `tasks-extra/`
- 当前 verifier contract 是 `verifier/test.sh``/logs/verifier/reward.txt`
- 不支持完整 BenchFlow verifier 系统中的 `reward-kit``llm-judge``agent-judge``ors-episode` 或多 service verifier。
- 默认只保存 agent/verifier 关键日志和 metadata不打包整个容器文件系统。