Agent loops on Sume: tool calls spend writes, polls spend reads
An MCP tool call spends the write budget once for the run it creates; a jobs_status poll spends none. Reads have their own, much larger budget.

An MCP tool call spends the write budget for the run it creates, once, not for the JSON-RPC request that carried it. A jobs_status poll over MCP spends no write budget at all. Reads have a separate budget, so a tight status-poll loop cannot 429 your own submits.
Why does this matter for agents?
OpenAI's changelog entry of Sep 29 added computer use to the Agents API, where agents can complete tasks in an OpenAI-hosted browser. Agent loops of this kind call tools and re-check status many times. Sume's rate limit docs say the read multiple is sized for agents: an agent harvest can hold twenty-odd jobs open and poll each of them.
What are the budgets per plan?
| Plan | Writes per minute | Reads per minute |
|---|---|---|
| Free | 120 | 4800 |
| Pro | 300 | 12000 |
| Startup | 600 | 24000 |
| Scale | 1200 | 48000 |
What counts as a read and what as a write?
A read is any GET or HEAD (polling status_url, events_url, result_url, listing Formats or runs) plus the two POSTs that submit nothing: /v1/generation/admission-preview and the MCP endpoint itself. Everything else, such as creating runs, cancelling and uploads, is a write. Reads get forty times the plan's write number.
How should the loop react to a 429?
Read ratelimit-remaining instead of counting requests, and back off on retry-after. A 429 names the budget in error.details.scope (read or write); see 429 scope: read or write. Request rate is separate from concurrency: how many generations run at once is governed by the plan's concurrency limit on generation_limits.
Sources
Related posts
More in Developers
- AI SDK isLoopFinished vs the 20-step cap for Sume video jobs
ToolLoopAgent stops after 20 steps by default. How many jobs_wait calls a Sume video render needs, and the per-call guards to keep if you lift the cap.
- AI SDK MCP client close() in onEnd: Sume jobs keep running
Closing the AI SDK MCP client in onEnd ends the tool connection, not the Sume jobs already submitted. Track job ids, then read or cancel them.
- Airtable script 50-fetch limit: send 100 records as one bulk run
An Airtable automation script gets 50 fetches and a 30-second timeout. One Sume bulk-run request carries up to 100 items, so one fetch beats a per-record loop.
- Airtable has no webhook signature check: verify Sume first
Airtable's When webhook received trigger cannot verify signatures and caps payloads at 100kb. Verify the Sume signature in a relay and forward a small object.
Written by Sume