a22a docs
Concepts

How it works

The rules a run follows, and what they mean for how you write a workflow.

A run is one invoke of a workflow. When it ends, A22A posts it to your webhook.

States

Run
queuedWaiting to startrunningSteps in progresscompletedEvery step completedfailedA step failed

Each step in the run has its own state:

Step
pendingWaiting for its needsrunningModel answeringcompletedHas an outputfailedHas an error

Order comes from needs

A step starts as soon as every step in its needs has completed. Steps with no needs start first. The order steps are written in does not matter.

Steps that do not need each other run at the same time:

Parallel steps
summaryReads the inputkeywordsReads the inputbriefNeeds both

summary and keywords start together, and brief starts when both have completed. A run takes as long as its longest chain of steps.

A step sees only its prompt

Each step is one call to its model, and the model sees only that step's prompt. It does not see earlier steps, other runs or past conversations unless the prompt includes them.

For example, brief's prompt as written:

Write a brief. Summary: {{summary.output}} Keywords: {{keywords.output}}

What its model receives:

Write a brief. Summary: Revenue rose 12% in Q3. Keywords: revenue, growth

The model sees that text and nothing else. Templates lists everything a prompt can include.

When a step fails

One failed step fails the whole run. Failed runs covers retries and what is charged.

Runs are independent

Every invoke is its own run, with its own input and outputs. Runs do not see each other and can finish in any order. How many can be in progress at once depends on your plan.

A run keeps the version it started on, even if you deploy while it runs.

Limits

ItemLimit
Prompt100,000 characters
Answer per step4,096 tokens, or the model's maximum if lower
Model call5 minutes
Output shape8,000 characters as JSON
Retries per step5
Names32 characters: lowercase letters, digits and dashes
Runs at a time10 on Hobby, 100 on Pro
Webhook response10 seconds, 6 attempts
Library request30 seconds

On this page