Event Types

All 11 event types in the Agent Observability Protocol (AOP) v1.0 taxonomy, grouped by tier.

Every AOP event shares a common envelope (spec, session_id, agent_id, sequence, timestamp, type) and carries a tier-specific payload.

Event lifecycle

session.started
cognition.thought
cognition.goal
cognition.decision
operation.tool_start
operation.tool_end
session.heartbeat
session.ended
↻ tool_end loops back to cognition.thought for multi-step agents

Tier 1 — Lifecycle

Report the agent's existence and operational status. Every conforming agent must emit at least session.started and session.ended.

session.started

Emitted once at the beginning of a session.

payload: {
  goal?: string           // The agent's primary objective
  agent_version?: string  // Semantic version of the agent
  metadata?: object       // Arbitrary key-value context
}

session.heartbeat

Periodic signal indicating the agent is still alive. Useful for detecting hangs or crashes.

payload: {
  status: 'running' | 'idle' | 'waiting'
  metadata?: object
}

session.ended

Emitted once when the session terminates, whether by success, failure, or cancellation.

payload: {
  outcome: 'completed' | 'failed' | 'cancelled' | 'timeout'
  outcome_summary?: string
  error_message?: string
  metadata?: object
}

Tier 2 — Cognition

Capture the agent's internal reasoning. These events explain why the agent acts, not just what it does.

cognition.thought

A free-form reasoning step — the agent thinking out loud.

payload: {
  content: string                          // The thought text
  confidence?: 'high' | 'medium' | 'low'  // Self-assessed confidence
  metadata?: object
}

cognition.goal

Records when the agent sets, updates, or completes a sub-goal.

payload: {
  goal: string
  status: 'set' | 'in_progress' | 'completed' | 'abandoned'
  parent_goal?: string
  metadata?: object
}

cognition.decision

Captures a deliberate choice between alternatives.

payload: {
  decision: string         // What was decided
  alternatives?: string[]  // Options that were considered
  reasoning?: string       // Why this alternative was chosen
  metadata?: object
}

cognition.uncertainty

Signals that the agent is unsure about something — useful for flagging moments that may need human review.

payload: {
  content: string                          // What the agent is uncertain about
  confidence?: 'high' | 'medium' | 'low'  // How uncertain
  metadata?: object
}

Tier 3 — Operations

Record the agent's actions in the external world — tool invocations, API calls, memory access, and spawning child agents.

operation.tool_start

Marks the beginning of a tool invocation. Pair with tool_end using tool_call_id.

payload: {
  tool_name: string       // Name of the tool being called
  tool_call_id: string    // Unique ID to correlate with tool_end
  input?: object          // Arguments passed to the tool
  metadata?: object
}

operation.tool_end

Marks the completion of a tool invocation.

payload: {
  tool_name: string
  tool_call_id: string
  success: boolean
  result_summary?: string
  duration_ms?: number
  metadata?: object
}

operation.agent_spawn

Records the creation of a child agent session, linking parent and child in the session tree.

payload: {
  child_session_id: string
  child_agent_id: string
  goal?: string            // The child agent's objective
  metadata?: object
}

operation.memory

Tracks reads and writes to the agent's memory or knowledge store.

payload: {
  operation: 'read' | 'write' | 'delete'
  key?: string
  summary?: string
  metadata?: object
}

operation.external_call

Records an outbound HTTP or API call that is not a tool invocation.

payload: {
  method: string       // HTTP method
  url: string          // Target URL
  status_code?: number
  duration_ms?: number
  metadata?: object
}

Related