An agent turn cut off at the output limit fails its step with no reason, and is not retried #101
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
On production, run
run_01M3K3S6TM44X7K9S2VH51RKHB(git-flow, cmoriarty/scratch#1) failed atagent.review[test]. The console gave no clear reason.Its only model turn ended
finish: "length"with input 14,268, reasoning 20,480, output 0. The model spent the whole output reservation thinking and was cut off before writing its verdict. Braid never looks atfinish, so the step failed with only.osf/review/test.json is missing or empty. The attempt row'serror_textis null.Asked for:
finish: lengthwithout doing the step's work, fail the step saying the model hit the N-token output limit while thinking and wrote nothing. Put that on the attempt too, so the console shows it.Also find out whether the 20,480 comes from Braid or vLLM, and whether it can easily be raised.
Shipped in the OpenSpec change
output-limit-cutoff, now archived.What changed
finish: lengthgets one retry. It is prompted once more in the same session, without thinking (nothinkon vLLM), and asked to write the step's files now.output_limit, and the step's failure reads "the model was cut off at the N-token output limit twice … raise Settings → Output reservation", followed by the file check's summary.Verified on production. In run_01M3K3S6TM44X7K9S2VH51RKHB,
agent.review.r2[test]was cut off again (20,472 reasoning tokens, 8 output). It got the retry, wrote its review and succeeded.Where 20,480 came from. It is Braid's Output reservation default, not a vLLM limit; vLLM serves a 524,288 window. opencode sends
max_tokens = min(reservation, OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX ?? 32000). Production's reservation is now 32,000.Found and fixed along the way: redoing a step could make the scheduler run a fan-out's key-less placeholder row as a real step (
e6a3600).