Skip to content

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

Identity
turn_id
Kind
name
Authority role
agent-executor
Mutability
mutable
Status
accepted

Purpose

Account for the conversational or control steps that make up an AgentRun without collapsing them into host chat or infrastructure attempts.

Relationships

NameTargetKindCardinalityInverse
agent_runAgentRunreferences1turns 0..*

Lifecycle

Initial open. Terminal: completed, aborted.

openyieldedcompletedaborted
  • openyielded
  • yieldedopen
  • opencompleted
  • yieldedcompleted
  • openaborted
  • yieldedaborted

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.

NameKindTypePortableNotes
turn_ididentitynameTrue
agent_run_idreferencenameTrue
sequencemetadataintegerTrue

Native mapping hooks

SystemNative termFidelityNotes
project-interop_none_tbd