SkillsBench#

SkillsBench 评测 agent 是否能利用任务内置的 Agent Skills。每个任务包含 task.mdenvironment/Dockerfileenvironment/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_modeno-skill

  • no-skill:构建临时上下文时删除 environment/skills,并清理 Dockerfile 中的 skill copy/path。

  • with-skill:将任务内 environment/skills 注入镜像内 /skills,runner 启动前再安装到自己的 skill discovery path。

当前版本不支持 self-gen,也不会自动计算 lift。请分别运行 no-skillwith-skill,再使用 EvalScope 的 run comparison 能力比较两次结果。

Oracle Smoke#

先用 oracle 验证镜像、路径和 verifier contract:

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

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

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-skillwith-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-kitllm-judgeagent-judgeors-episode 或多 service verifier。

  • 默认只保存 agent/verifier 关键日志和 metadata,不打包整个容器文件系统。