Skip to content

Commit d6b660f

Browse files
committed
docs: consolidate public guide flow
1 parent 74a416c commit d6b660f

3 files changed

Lines changed: 65 additions & 116 deletions

File tree

README.md

Lines changed: 53 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -88,22 +88,19 @@ your agent runs from `@runs/...`; alternatively set
8888
prepare workspace -> run your agent -> write result/output_*.csv -> evaluate
8989
```
9090

91-
## Agent Integration
91+
Local runs live under a run root written `@runs/<agent>/<mode>/`. The `@runs/`
92+
prefix is just the naming convention for this directory, and it is git-ignored so
93+
your runs are never committed.
9294

93-
PrepBench prepares workspaces and scores result tables; you run the agent. For
94-
each case, point your agent at the prepared workspace, let it read only the files
95-
exposed there, and have it write final tables under `result/output_*.csv`.
96-
Intermediate code, notebooks, logs, or workflow JSON files may stay in the
97-
workspace, but they are not scored.
95+
PrepBench is an honor-system benchmark: the repository ships evaluator and
96+
simulator assets, but your agent should read only the files exposed in its
97+
prepared workspace.
9898

99-
In `interactive` and `workflow` mode, the agent may call the local user
100-
simulator. In `workflow` mode, the agent also reads `workflow_prompt.yaml` for
101-
the workflow operator instructions and uses the workflow executor to create the
102-
final result tables.
99+
## Quickstart
103100

104-
## Prepare a Workspace
101+
Prepare one case workspace, run your agent in it, then evaluate.
105102

106-
Create one case workspace under a run root:
103+
**1. Prepare a workspace**
107104

108105
```bash
109106
python scripts/prepare_run.py \
@@ -112,48 +109,61 @@ python scripts/prepare_run.py \
112109
--run-root @runs/my_agent/clarified
113110
```
114111

115-
The workspace layout is:
116-
117112
```text
118113
@runs/my_agent/clarified/case_001/
119114
query.md
120115
inputs/
121116
result/
122117
```
123118

124-
`interactive` workspaces also contain `clarification_guide.md`. `workflow`
125-
workspaces contain both `clarification_guide.md` and `workflow_prompt.yaml`.
119+
`interactive` workspaces also contain `clarification_guide.md`; `workflow`
120+
workspaces add `workflow_prompt.yaml`. Workspace files are symlinks where
121+
possible, so setup is cheap.
122+
123+
**2. Run your agent**
126124

127-
Repeat this command for each case you want to run. Workspace files are symlinks
128-
where possible, so setup is cheap.
125+
Point your agent at the workspace path (not copied file contents). It reads
126+
`query.md` and `inputs/`, may write code or other working files, and must write
127+
final tables to `result/output_*.csv`. See [Agent Integration](#agent-integration)
128+
for what each mode exposes.
129129

130-
Prepare every GT case for a complete mode run:
130+
**3. Evaluate**
131131

132132
```bash
133-
python scripts/prepare_run.py \
133+
python scripts/evaluate_submission.py \
134134
--mode clarified \
135-
--all \
136-
--run-root @runs/my_agent/clarified
135+
--run-root @runs/my_agent/clarified \
136+
--case case_001
137137
```
138138

139-
`--all` uses the evaluator GT case set, then requires matching `data/case_xxx`
140-
directories for workspace setup.
139+
Results land in `evaluation/summary.json` and `evaluation/summary.csv` under the
140+
run root. See [docs/EVALUATION.md](docs/EVALUATION.md) for the scoring rules,
141+
summary fields, and full-run behavior.
141142

142-
PrepBench is an honor-system benchmark. The repository still contains evaluator
143-
and simulator assets, but the model-under-test should only read files exposed in
144-
its prepared workspace.
143+
## Run the Full Benchmark
145144

146-
## Run Your Agent
145+
Prepare every GT case with `--all`, then evaluate the run root without `--case`:
147146

148-
Run your agent inside the case workspace. Give it the workspace path, not copied
149-
file contents. It can inspect `query.md`, read `inputs/`, write code or other
150-
working files, and finally write result tables:
151-
152-
```text
153-
@runs/my_agent/<mode>/<case_id>/result/output_*.csv
147+
```bash
148+
python scripts/prepare_run.py --mode clarified --all --run-root @runs/my_agent/clarified
149+
python scripts/evaluate_submission.py --mode clarified --run-root @runs/my_agent/clarified
154150
```
155151

156-
For `interactive`, the agent may use `clarification_guide.md` and the Python API:
152+
`--all` uses the evaluator GT case set and requires matching `data/case_xxx`
153+
directories. A full run exits with code 0 only when every case passes; missing
154+
folders or result tables are reported as `NOT_FOUND`.
155+
156+
## Agent Integration
157+
158+
You run the agent; PrepBench only prepares workspaces and scores result tables.
159+
Point your agent at the prepared workspace (not copied file contents), let it read
160+
only the files exposed there, and have it write final tables under
161+
`result/output_*.csv`. Intermediate code, notebooks, logs, or workflow JSON may
162+
stay in the workspace but are not scored. See the [Public Modes](#public-modes)
163+
table for what each mode exposes.
164+
165+
In `interactive` and `workflow` mode, the agent calls the local user simulator to
166+
clarify the request before writing results:
157167

158168
```python
159169
from simulator import LocalUserSimulatorAPI
@@ -166,49 +176,15 @@ reply = api.ask(
166176
)
167177
```
168178

169-
For comparable interactive runs, keep the simulator backend fixed. A practical
170-
default is official `deepseek-v4-flash` in non-thinking mode with
171-
`PREPBENCH_SIMULATOR_TEMPERATURE=0`; see `docs/USER_SIMULATOR.md` for
172-
provider-specific settings.
173-
174-
For `workflow`, the agent may read `workflow_prompt.yaml`, write prep code as an
175-
intermediate artifact, convert that code into a workflow JSON file, and execute
176-
the workflow from the workspace. The workflow executor reads from `./inputs` and
177-
writes to `./result`, so the generated workflow produces the same
178-
`result/output_*.csv` files that the evaluator scores.
179-
180-
## Evaluate
181-
182-
Evaluate a full mode run:
183-
184-
```bash
185-
python scripts/evaluate_submission.py \
186-
--mode clarified \
187-
--run-root @runs/my_agent/clarified
188-
```
189-
190-
For single-case debugging:
179+
Keep the simulator backend fixed for comparable runs (a practical default is
180+
`deepseek-v4-flash` in non-thinking mode with `PREPBENCH_SIMULATOR_TEMPERATURE=0`).
181+
See [docs/USER_SIMULATOR.md](docs/USER_SIMULATOR.md) for provider settings and the
182+
question budget.
191183

192-
```bash
193-
python scripts/evaluate_submission.py \
194-
--mode clarified \
195-
--run-root @runs/my_agent/clarified \
196-
--case case_001
197-
```
198-
199-
The evaluator writes:
200-
201-
```text
202-
@runs/my_agent/clarified/evaluation/summary.json
203-
@runs/my_agent/clarified/evaluation/summary.csv
204-
```
205-
206-
When `--case` is omitted, the evaluator checks every GT case. Missing case
207-
folders or missing result tables are reported as `NOT_FOUND`. The command exits
208-
with code 0 only when every evaluated case passes.
209-
210-
If you prepared only one case, pass `--case`. Omit `--case` only for a complete
211-
mode run.
184+
In `workflow` mode, the agent additionally reads `workflow_prompt.yaml`, converts
185+
its prep logic into a workflow JSON file, and runs the workflow executor (reads
186+
`./inputs`, writes `./result`) to produce the result tables. See
187+
[docs/WORKFLOW_EXECUTION.md](docs/WORKFLOW_EXECUTION.md).
212188

213189
## Minimal Smoke Tests
214190

@@ -262,6 +238,3 @@ agent's workflow-generation path.
262238

263239
**What does the evaluator score?** Only final result tables under
264240
`result/output_*.csv`.
265-
266-
**Where should local runs go?** Use `@runs/<agent>/<mode>/`; this directory is
267-
ignored by git.

docs/DATASET.md

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,25 +34,9 @@ should run from prepared workspaces.
3434
## Public Workspaces
3535

3636
Participants should run agents from prepared workspaces rather than reading case
37-
files directly:
38-
39-
```bash
40-
python scripts/prepare_run.py \
41-
--mode clarified \
42-
--case case_001 \
43-
--run-root @runs/my_agent/clarified
44-
```
45-
46-
For a complete mode run, prepare all evaluator cases:
47-
48-
```bash
49-
python scripts/prepare_run.py \
50-
--mode clarified \
51-
--all \
52-
--run-root @runs/my_agent/clarified
53-
```
54-
55-
`--all` uses the GT case set and requires matching `data/case_xxx` directories.
37+
files directly. See the [README quickstart](../README.md#quickstart) for one
38+
case and [Run the Full Benchmark](../README.md#run-the-full-benchmark) for
39+
`--all`.
5640

5741
Workspace contents by mode:
5842

docs/USER_SIMULATOR.md

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Install the repo with `python -m pip install -e .`, or set
1414
`PYTHONPATH=/path/to/prepbench/src`, so `simulator` is importable from
1515
`@runs/...` workspaces.
1616

17-
Recommended DeepSeek setup for comparable runs:
17+
Recommended setup for comparable runs:
1818

1919
```bash
2020
PREPBENCH_SIMULATOR_BASE_URL=https://api.deepseek.com
@@ -24,14 +24,10 @@ PREPBENCH_SIMULATOR_TEMPERATURE=0
2424
PREPBENCH_SIMULATOR_API_KEY=your_api_key
2525
```
2626

27-
OpenRouter alternative:
28-
29-
```bash
30-
PREPBENCH_SIMULATOR_BASE_URL=https://openrouter.ai/api/v1
31-
PREPBENCH_SIMULATOR_MODEL=deepseek/deepseek-v4-flash
32-
PREPBENCH_SIMULATOR_TEMPERATURE=0
33-
PREPBENCH_SIMULATOR_API_KEY=your_openrouter_api_key
34-
```
27+
To use another provider, change `PREPBENCH_SIMULATOR_BASE_URL`,
28+
`PREPBENCH_SIMULATOR_MODEL`, and `PREPBENCH_SIMULATOR_API_KEY` to match it. For
29+
OpenRouter, use `https://openrouter.ai/api/v1` and the namespaced model id
30+
`deepseek/deepseek-v4-flash`.
3531

3632
Optional settings:
3733

@@ -79,15 +75,11 @@ case_001 -> case_001
7975

8076
## Question Budget
8177

82-
The default question budget is:
83-
84-
```text
85-
max_questions = ceil(2.5 * ambiguity_count)
86-
```
78+
Two limits apply:
8779

88-
The default cap is `25`, but the effective cap is never lower than the case's
89-
ambiguity count. A single `ask(...)` call may contain at most 10 questions by
90-
default.
80+
- **Per call:** a single `ask(...)` may contain at most 10 questions.
81+
- **Per case:** the total budget is `ceil(2.5 * ambiguity_count)`, capped at 25
82+
but never lower than the case's own `ambiguity_count`.
9183

9284
## Question Boundaries
9385

0 commit comments

Comments
 (0)