Skip to main content
A task writes output rows. output is the shape signal: it tells Autumn where durable rows should go for the current task contract. Keep output singular. If the artifact you want changes later, continue the task in plan mode and replan before executing again.

Output kinds

The same agent loop plans, executes, writes files, and streams events for every output kind. GET /task/{task_id}/output returns the task output rows, and GET /task/{task_id}/outputs lists known row artifacts.

Rows are made of cells

Output rows are cells, not bare values. Every field pairs its value with the source it came from, so each row carries its own provenance:
This is the part that surprises people writing their first integration: row["title"] is an object, not a string. Flatten {"value": ...} to plain values when you only want the data, and read _sources when you need to show or audit where a value came from.
Keys prefixed with _ are row metadata, not columns: _row_id, _sources, and lineage or validation fields. Skip them when presenting results. See Structured output for a flatten helper.

Reading a specific output

To read one named artifact, use GET /task/{task_id}/outputs/{output_id}, or pass ?output=output_id to /output.

Next

Structured output

Declare the exact columns you want back.

Model tiers

Pick the tier that fits the work.