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>
118 lines
4.0 KiB
Markdown
118 lines
4.0 KiB
Markdown
# 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:**
|
|
```text
|
|
{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
|
|
|
|
```bash
|
|
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
|
|
|
|
```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)
|
|
```
|