Term
Turn
One input-to-output or control-yield cycle inside an AgentRun. A Turn is smaller than a RunAttempt and is not a HostConversation.
Parent: AgentRun 1 via turns
Purpose
Account for the conversational or control steps that make up an AgentRun without collapsing them into host chat or infrastructure attempts.
Relationships
| Name | Target | Kind | Cardinality | Inverse |
|---|---|---|---|---|
agent_run | AgentRun | references | 1 | turns 0..* |
Lifecycle
Initial open. Terminal: completed, aborted.
openyieldedcompletedaborted
open→yieldedyielded→openopen→completedyielded→completedopen→abortedyielded→aborted
Invariants
- MUST
inside-run: A Turn MUST belong to exactly one AgentRun. - MUST NOT
not-host-conversation: A Turn MUST NOT be treated as a HostConversation. - MUST NOT
not-an-attempt: A Turn MUST NOT be treated as a RunAttempt.
Aliases
run-turn
Deprecated aliases
None.
Not synonyms
- HostConversation: Host chat is owned by the host product and may span or omit turns.
- RunAttempt: An attempt is an infrastructure execution, not one I/O cycle.
- AgentRun: A run contains many turns.
Examples
- One model invocation that yields a tool call and later completes.
Anti-examples
- The entire Goose or Crush transcript.
Fields
The identity field is the index of the handle. fields is the exchange shape.
| Name | Kind | Type | Portable | Notes |
|---|---|---|---|---|
turn_id | identity | name | True | |
agent_run_id | reference | name | True | |
sequence | metadata | integer | True |
Native mapping hooks
| System | Native term | Fidelity | Notes |
|---|---|---|---|
project-interop | _none_ | tbd |