Use a low-effort Haiku 5.5 subagent for Sume dry_run previews
Anthropic recommends low effort for subagents, and warns it can skip checks. Where a Haiku 5.5 subagent fits in front of a paid Sume call.

A low-effort Claude Haiku 5.5 subagent is a reasonable place to run a Sume dry_run preview, as long as the paid submit stays with a parent agent that has the budget rules. Anthropic's effort page lists "subagents" as a use for low, and its Haiku 5.5 section says low is the cheapest and fastest level for short tool tasks while warning that in long prompts it is more likely to skip a search or a check.
What a dry run returns and does not do
Sume's hosted tools accept dry_run=true. Per the tools-and-gates page, it is an admission and cost preview only and does not submit the job. The recommended order is to call with dry_run=true, examine the preview, and call again with dry_run omitted or false to submit. idempotency_key is required on paid and write calls, and max_spend_usd is optional and enforced only when you give it.
That makes the preview a read-like step. A wrong preview wastes a few seconds. A wrong submit spends money.
| Step | Agent | Effort | Sume call |
|---|---|---|---|
| Preview cost | Subagent | low | Paid tool with dry_run=true |
| Decide to spend | Parent | medium | None; compares preview with budget |
| Submit | Parent | medium | Same tool, new idempotency_key, max_spend_usd set |
| Wait | Subagent | low | jobs_wait in 45 to 55 second slices |
The risk Anthropic names
The skipped check is the failure to design around. A subagent that is meant to call dry_run can answer from memory instead. Make the check structural: the subagent returns only the preview fields, and the parent refuses to submit unless the preview came from a real tool call in this turn.
Give the subagent a read-only session where you can. With OAuth, a session granted mcp:read and not mcp:write can list tools and read state, but a write or paid call returns insufficient_scope. That turns a subagent that skips its check into a harmless error instead of a submit.
Where the cap lives
Put the spending decision in code the model cannot rewrite. The parent sets max_spend_usd from your own budget variable on every paid call, and rejects a preview whose estimate is above it. For unattended work through Agent Completions the cap is mandatory: generation_spend_cap_usd has no default, and a request without it returns 400 invalid_request.
Anthropic's own guidance for a model that skips checks is to raise effort, so keep that knob available. See dry_run and max_spend_usd for avatar video tools for the call shapes.
A short policy to paste into the parent prompt
Write the rule once, where the parent agent reads it every turn. Keep it short and testable, because a long rule is exactly the kind of prompt where a low-effort model drifts.
Then test it. Ask the subagent to price a job it has never seen, and confirm the answer cites a preview from a real tool call. Run the same test at medium to see whether the level changes the result on your task, as Anthropic advises.
- Preview first: call the paid tool with
dry_run=trueand report the estimate. - Submit only if the estimate is at or below the budget variable.
- Send a new
idempotency_keyper intent andmax_spend_usdon every paid call. - Poll with
jobs_wait; never call the create tool again for the same job.
Sources
Related posts
More in Agents
- Scheduled run spend cap: a per-call number can only lower it
A Sume schedule's default generation cap is $1.00. A per-run number is clamped to the lower of the request and the schedule cap, and 0 is rejected.
- Sume MCP avatar tools: 5 read-only and the paid create set
Hosted Sume MCP lists five read tools for avatars and avatar videos and a paid group for creates and previews. What OAuth mcp:read sees and the dry_run flow.
- What an agent should log when it calls Sume: ids yes, signed URLs no
Safe log fields for agents using the Sume API, CLI and MCP: request ids, job ids, status, sanitized media metadata. Never keys, signed URLs or transcripts.
- Run the Sume video agent from your backend with Agent Completions
POST /v1/agent/completions runs the same agent as the Sume Agents chat, with tools and media generation, and returns an async run receipt you poll or webhook.
Written by Sume