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

4.0 KiB

SkillsBench

Overview

SkillsBench evaluates whether coding agents can discover and apply task-bundled Agent Skills. Each task contains an instruction, an optional skill directory, a Docker environment, an oracle solution, and a verifier. EvalScope builds the task Docker image, runs the selected agent or oracle in that image, then executes the task verifier.

Task Description

  • Task Type: Agent skill usage / tool-assisted task completion
  • Input: The natural-language task prompt from task.md
  • Output: Files or state changes produced inside the task container, scored by the task verifier
  • Dataset: Local SkillsBench task repository supplied through extra_params.tasks_dir
  • Environment: Per-task Docker image built from environment/Dockerfile
  • Skills: Optional task-bundled skills from environment/skills
  • Metric: score from /logs/verifier/reward.txt; success is 1 when score > 0

Key Features

  • Builds or reuses a content-hashed Docker image for each selected task.
  • Runs the task in no-skill or with-skill mode without mixing the two conditions in one EvalScope run.
  • Injects task-bundled skills through EvalScope's agent skill runtime instead of baking runner-specific skill paths into the image.
  • Supports EvalScope native agents and external agent runners through the shared agent environment interface.
  • Saves verifier stdout, reward, and optional CTRF artifacts under the run output directory.

Evaluation Notes

  • Default skill_mode is no-skill.
  • Run no-skill and with-skill separately, then compare runs with EvalScope's run comparison tools.
  • self-gen and tasks-extra are not supported by this adapter version.
  • runner='oracle' runs the official oracle/solve.sh for smoke testing; agent runs require agent_config.
  • The verifier executes verifier/test.sh and may install dependencies from the network.

Scoring and Comparison

  • score is the verifier reward parsed from /logs/verifier/reward.txt.
  • success is derived locally as 1.0 when score > 0, otherwise 0.0.
  • EvalScope does not automatically compute the no-skill versus with-skill delta; run both modes and compare their reports.

Properties

Property Value
Benchmark Name skillsbench
Dataset ID skillsbench
Paper N/A
Tags Agent, MultiTurn
Metrics normalized_score
Default Shots 0-shot
Evaluation Split N/A

Data Statistics

Statistics not available.

Sample Example

Sample example not available.

Prompt Template

Prompt Template:

{question}

Extra Parameters

Parameter Type Default Description
tasks_dir str `` Path to the SkillsBench tasks directory.
task_ids list [] Optional list of task ids to run.
skill_mode str no-skill SkillsBench skill mode. Choices: ['no-skill', 'with-skill']
force_rebuild bool False Force rebuilding task Docker images.
agent_timeout_sec float None Override task agent timeout.
verifier_timeout_sec float None Override task verifier timeout.
runner str agent Use "oracle" to run oracle/solve.sh instead of an agent. Choices: ['agent', 'oracle']

Usage

Using CLI

evalscope eval \
    --model YOUR_MODEL \
    --api-url OPENAI_API_COMPAT_URL \
    --api-key EMPTY_TOKEN \
    --datasets skillsbench \
    --limit 10  # Remove this line for formal evaluation

Using Python

from evalscope import run_task
from evalscope.config import TaskConfig

task_cfg = TaskConfig(
    model='YOUR_MODEL',
    api_url='OPENAI_API_COMPAT_URL',
    api_key='EMPTY_TOKEN',
    datasets=['skillsbench'],
    dataset_args={
        'skillsbench': {
            # extra_params: {}  # uses default extra parameters
        }
    },
    limit=10,  # Remove this line for formal evaluation
)

run_task(task_cfg=task_cfg)