Format run instruction: 8000 characters accepted, about 4000 carried

A Sume Format run instruction accepts 8,000 characters, but only the first ~4,000 reach the agent as prompt text. Put long data in input, carried whole.

5 min readSume
All posts

The instruction on a Sume Format run accepts up to 8,000 characters, but only the first ~4,000 are carried to the run as prompt text. Anything longer is accepted and then not used, so put long material in input, which is written whole to a file the agent reads, at any size up to 2 MiB.

The numbers come from the Create a run docs, which have a table headed "accepted and carried".

What is accepted and what is carried?

Three fields, three different answers.

Accepted versus carried, from the Create a run docs (read 2026-10-02).
FieldAcceptedCarried to the run
instruction8000 charactersThe first ~4000 characters, as prompt text
input2 MiB (2097152 UTF-8 bytes, compact), 64 top-level keysAll of it, as a file the agent reads; never truncated
The Format bodyNo cap beyond 100 MiB per package fileAll of it, attached as files

Why does the cap not produce an error?

The API accepts up to 8,000 characters, and the docs say only the first ~4000 are carried as prompt text. Their advice is blunt: keep the instruction well inside ~4000 characters and put data in input. The docs do not describe a warning for an instruction past 4000 characters, so do not rely on one; if a run ignored the end of your brief, the length is the first thing to check.

What belongs in input instead?

Scripts, price tables, product copy, shot lists, and anything a supplier or customer wrote. input is written to /workspace/inputs/sume-action-input.json and the agent is told to read it as data, never as instructions, which makes it the right place for untrusted text as well. The Format recipe decides which keys it reads, so say in the instruction where to look.

One edge: an empty input ({}) adds no file and no block, byte-identical to omitting it. A Format that says "read product_url from the input" then has nothing to read. A body that names none of instruction, input, previous_run_id or attachments is 400 invalid_request.

{
  "instruction": "Vertical 9:16, 20 seconds. Follow the script in input.script and the prices in input.price. No BGM.",
  "input": {
    "script": { "segments": [{ "tag": "Intro", "text": "..." }] },
    "price": { "list": "31,000", "sale": "22,940" }
  },
  "generation_spend_cap_usd": 40
}

How does this interact with the Format recipe?

The Format comes first in what the agent receives, as the how; your instruction comes after it, so where the two disagree the model follows what you asked for. That ordering is also why a long instruction that restates the recipe is wasted characters: the recipe already lives in the Format package.

The 4 MiB body cap is a separate limit: the whole request over 4 MiB is 413 payload_too_large, with details.limit_bytes. Send media by URL, not inline. See scraped copy into input for the injection angle.

How do I check what the agent received?

Every receipt carries a thread_id. Open that thread in the Agents dashboard to read what the run did, and compare it with your brief. If the run followed the start of your instruction but not the end, count the characters before you debug anything else.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume