mirror of
https://github.com/block/buzz.git
synced 2026-10-30 22:11:36 +00:00
## Summary - classify every Buzz-native benchmark task as `regression` or `workflow` - add metadata-backed `--layer` selection with k=1 regression and k=3 workflow defaults, while preserving explicit `--attempts`/`-k` - split an unqualified mixed Buzz dataset run into two Harbor jobs so each layer gets the correct default - document the layer contract and cover metadata, selection, defaults, overrides, invalid input, and command construction --------- Signed-off-by: Salman Mohammed <smohammed@squareup.com>
76 lines
4.1 KiB
Markdown
76 lines
4.1 KiB
Markdown
# buzz-dataset
|
|
|
|
Harbor tasks that score **Buzz product behavior**, not just task correctness.
|
|
Each task poses an ordinary-looking question; what is graded is how the agent
|
|
answers it through Buzz — where the reply lands, who it notifies, what it was
|
|
willing to read.
|
|
|
|
| Task | Layer | Behavior under test |
|
|
| --- | --- | --- |
|
|
| [`reply-to-thread`](reply-to-thread) | Regression | Answers in the user's thread instead of as a new top-level message |
|
|
| [`user-mention`](user-mention) | Regression | Hands the turn back with an event-level `p`-tag mention of the requesting human |
|
|
| [`read-named-path-outside-workspace`](read-named-path-outside-workspace) | Regression | Reads a path the user named explicitly instead of refusing it as out of bounds |
|
|
| [`create-channel-invite-users`](create-channel-invite-users) | Workflow | Creates a channel with the exact shape, TTL, and membership asked for |
|
|
| [`multiline-message`](multiline-message) | Regression | Preserves real newlines and blank-line structure through the CLI publish path |
|
|
| [`narrative-agent-names`](narrative-agent-names) | Regression | Names agents in narrative without waking them through `p` tags |
|
|
| [`interleaved-agent-reports`](interleaved-agent-reports) | Workflow | Retains and synthesizes every report in a batch of agent messages |
|
|
| [`cross-thread-requests`](cross-thread-requests) | Workflow | Keeps simultaneous top-level requests isolated and replies to both exact threads |
|
|
| [`ambiguous-user-mention`](ambiguous-user-mention) | Workflow | Resolves duplicate display names and notifies only the intended pubkey |
|
|
|
|
For `reply-to-thread` and `user-mention` the graded behavior is **deliberately
|
|
absent from `instruction.md`** — it has to come from `buzz-acp`'s production
|
|
base prompt. Read a task's own `README.md` before editing its instruction or
|
|
verifier.
|
|
|
|
## Evaluation layers
|
|
|
|
Every task declares `metadata.evaluation_layer` in `task.toml`:
|
|
|
|
| Layer | Question | Default trials | Typical cadence |
|
|
| --- | --- | ---: | --- |
|
|
| Regression | Did Buzz preserve a known product contract? | k=1 | Targeted PR, nightly, or pre-release |
|
|
| Workflow | How capable is the agent at realistic Buzz work? | k=3 | Nightly or weekly on a fixed condition |
|
|
|
|
Report regression results per behavior, not as an average capability score.
|
|
Use workflow pass rates and trends as the benchmark headline.
|
|
|
|
Fast verifier fixtures remain ordinary CI. They validate grading logic, but do
|
|
not replace agent trials across the model, base prompt, CLI, and relay.
|
|
|
|
The task identity remains `buzz-native/<task>` in both layers; the wrapper reads
|
|
the metadata instead of encoding the layer in task names.
|
|
|
|
## Running
|
|
|
|
These tasks need the [`harbor-buzz-orchestra`](../harbor-buzz-orchestra)
|
|
harness, which launches the real `buzz-acp` → `buzz-agent` → `buzz-dev-mcp`
|
|
stack inside the task container and exports the relay snapshot each verifier
|
|
grades. Plain `harbor run` against this directory will not work, and neither
|
|
will `harbor run -a oracle` (no `solution/solve.sh` is shipped — the Oracle
|
|
agent replaces the Buzz agent, so no relay trial is provisioned).
|
|
|
|
From the repo root:
|
|
|
|
```bash
|
|
just benchmark \
|
|
--path benchmarks/buzz-dataset/reply-to-thread \
|
|
--manifest benchmarks/harbor-buzz-orchestra/manifests/buzz-native-solo-luna.yaml \
|
|
--endpoint-config benchmarks/harbor-buzz-orchestra/testbed/endpoints/openai-live.json \
|
|
--n-concurrent 1
|
|
```
|
|
|
|
The task's regression metadata supplies its default `--attempts 1`. Select a
|
|
whole layer with `--path benchmarks/buzz-dataset --layer regression` or
|
|
`--layer workflow`. If the dataset root is passed without `--layer` or
|
|
`--attempts`, the wrapper runs two Harbor jobs so regression gets k=1 and
|
|
workflow gets k=3. An explicit `--attempts`/`-k` overrides these defaults and
|
|
runs the selected tasks in one job.
|
|
|
|
The default condition is one solo agent on `gpt-5.6-luna` at
|
|
`thinking_effort: medium`, which needs `OPENAI_COMPAT_API_KEY`; see
|
|
[the harness README](../harbor-buzz-orchestra/README.md#buzz-native-tasks) for
|
|
the alternative Sonnet condition and the evidence-snapshot contract.
|
|
|
|
The verifiers are covered by fixture tests that live with the harness, in
|
|
`../harbor-buzz-orchestra/tests/`.
|