Skip to content

Tell agents not to ask clarifying questions - #62

Merged
leggetter merged 1 commit into
mainfrom
instruct-agents-not-to-ask
Aug 27, 2026
Merged

Tell agents not to ask clarifying questions#62
leggetter merged 1 commit into
mainfrom
instruct-agents-not-to-ask

Conversation

@leggetter

Copy link
Copy Markdown
Collaborator

Closes #57.

The change

One sentence added to basePromptFor(), borrowed verbatim from clerk/clerk-evals:

Do not ask clarifying questions. Complete the task with the information provided.

Why

This benchmark is single-turn. A question gets no reply and the agent is scored on whatever state it left, usually nothing. Four cells in the stored runs ended that way, against a skills delta measured at two cells in twenty-four — the artefact was larger than the signal sitting next to it.

Clerk is the closest architectural match: same two agent CLIs, same sandbox model, and it prepends that exact line to every eval prompt on its agentic path. Borrowed precedent is worth more than a marginally better sentence of our own.

What this is not

It is not a claim that asking is wrong. τ-bench's airline policy requires an agent to "list the action details and obtain explicit user confirmation (yes) to proceed" before any action that updates the booking database. The behaviour suppressed here is a pass requirement there, because that harness has a user to answer and ours does not.

So the ASKED_AND_STOPPED detector from #58 stays. The instruction removes the confound; the detector says whether it worked. Nobody else in the survey does both — Clerk instructs without measuring, upstream does neither.

The full option space is on #57: five different answers across six benchmarks.

Comparability

Everything measured before this commit was measured without the line. Results either side are not comparable, the same rule as a scenario or CLI change and for the same reason. EVALS_PUBLISH is set to false so Monday's cron and the 1 September full matrix cannot publish a snapshot that is half one treatment and half the other — this compounding with #60 is exactly the failure mode that needed heading off.

Also in this PR

AGENTS.md gains the reasoning under Conventions, plus two rules worth having:

  • The base prompt is a treatment, not neutral scaffolding — it is the one string every cell shares, so a word added to it moves every number at once.
  • Prefer more attempts to more instruction. --runs 3 stops at the first pass, costs ~1.11×, and removes a stopped run's power to decide a cell without touching the prompt.

The cost table is corrected. It was denominated in fifteen scenarios and there are nineteen, so a full matrix is about $81, not $64. The measured figures are left as measured with the scaling stated separately, because conflating the two is how the judge once came to be reported at twenty-eight times its real cost.

Multi-attempt costing is now documented: 1 + 0.114k where k is what a failed attempt costs relative to a typical one. k is unknown — only 4 of 114 published rows carry usage.costUsd and all four passed, so there is no failed-cell cost data. See #6. Budget a three-attempt matrix at $90–$110.

Verification

pnpm typecheck clean, pnpm -r test green (142 tests), formatted.

Not yet measured: whether the instruction actually changes behaviour. That is the next step — re-run the four known ask-and-stop cells and check the detector.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Nt2Zgjw7STjrnFXYKRRVAA

This benchmark is single-turn, so a question gets no reply and the agent
is scored on whatever state it left — usually nothing. Four cells in the
stored runs ended that way, against a skills delta measured at two cells
in twenty-four. The artefact was larger than the signal beside it.

The line is borrowed verbatim from clerk/clerk-evals, the closest
architectural match to this benchmark: same two agent CLIs, same sandbox,
and it prepends that exact sentence to every eval prompt on its agentic
path. Precedent is worth more here than a marginally better sentence.

It is not a claim that asking is wrong. tau-bench's airline policy
*requires* an agent to obtain explicit user confirmation before any
action that updates the booking database — the behaviour suppressed here
is a pass requirement there, because that harness has a user to answer
and ours does not. So the triage detector stays: the instruction removes
the confound and the detector says whether it worked. Clerk instructs
without measuring; upstream does neither.

Everything measured before this commit was measured without the line, so
results either side are not comparable.

AGENTS.md also gains the reasoning, the rule that a cell tripping
ASKED_AND_STOPPED must never be published as a capability failure, and a
correction to the cost table: it is denominated in fifteen scenarios and
there are nineteen, so a full matrix is about $81 rather than $64.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nt2Zgjw7STjrnFXYKRRVAA
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

An agent that stops to ask a question scores zero, and we do not track how often

1 participant