Skip to main content
The event_type field on every event uses a tagged enum. Exactly one variant must be provided.

Action

Use when the agent does something — calls an API, books a seat, sends an email.
{
  "Action": {
    "action_name": "book_movie_ticket",
    "parameters": { "movie": "Interstellar", "seat": "H12" },
    "outcome": { "Success": { "result": { "confirmation_id": "CONF-123" } } },
    "duration_ns": 1500000
  }
}
FieldTypeRequiredDescription
action_nameString✅ YesName of the action executed
parametersJSON✅ YesAction parameters (any JSON, can be null)
outcomeActionOutcome✅ YesResult of the action
duration_nsu64✅ YesExecution duration in nanoseconds

ActionOutcome variants

{ "Success": { "result": { "confirmation_id": "CONF-123" } } }

Observation

Use when the agent receives external data that isn’t a direct message — price updates, sensor readings, API responses.
{
  "Observation": {
    "observation_type": "ticket_availability",
    "data": { "remaining_seats": 5 },
    "confidence": 1.0,
    "source": "Theater-API"
  }
}
FieldTypeRequiredRangeDescription
observation_typeString✅ YesType of observation
dataJSON✅ YesObserved data (any JSON)
confidencef32✅ Yes0.01.0Confidence in observation
sourceString✅ YesData source identifier

Cognitive

Use to log the agent’s internal “thinking” process. This is crucial for strategy extraction.
{
  "Cognitive": {
    "process_type": "Reasoning",
    "input": { "user_query": "I want a quiet seat" },
    "output": { "decision": "Select back row" },
    "reasoning_trace": [
      "User requested quiet environment",
      "Back rows have less foot traffic",
      "Checking availability for row Z"
    ]
  }
}
FieldTypeRequiredDescription
process_typeCognitiveType✅ YesType of cognitive process
inputJSON✅ YesInput to cognitive process
outputJSON✅ YesOutput from process
reasoning_traceString[]✅ YesReasoning steps (can be [])

CognitiveType values

ValueDescription
"GoalFormation"Forming a new goal
"Planning"Creating a plan
"Reasoning"General reasoning
"MemoryRetrieval"Retrieving from memory
"LearningUpdate"Updating learned knowledge

Communication

Use for every message between the user and the agent.
{
  "Communication": {
    "message_type": "user_message",
    "sender": 0,
    "recipient": 1,
    "content": { "text": "I'd like to book a ticket for tonight." }
  }
}
FieldTypeRequiredDescription
message_typeString✅ YesType of message (e.g., "user_message")
senderu64✅ YesSender agent ID
recipientu64✅ YesRecipient agent ID
contentJSON✅ YesMessage content (any JSON)

Learning

Use to log memory and strategy lifecycle events.
{
  "Learning": {
    "event": { "MemoryRetrieved": { "query_id": "q-123", "memory_ids": [1, 2, 3] } }
  }
}

LearningEvent variants

VariantFieldsDescription
MemoryRetrievedquery_id: String, memory_ids: u64[]Memories retrieved for a query
MemoryUsedquery_id: String, memory_id: u64A specific memory was used
StrategyServedquery_id: String, strategy_ids: u64[]Strategies served for a query
StrategyUsedquery_id: String, strategy_id: u64A specific strategy was used
Outcomequery_id: String, success: boolFinal outcome of the learning cycle

Context

Use for raw text content intended for claim extraction.
{
  "Context": {
    "text": "The user mentioned they prefer IMAX screenings and aisle seats.",
    "context_type": "conversation",
    "language": "en"
  }
}
FieldTypeRequiredDescription
textString✅ YesRaw text content
context_typeString✅ YesType: "conversation", "document", "transcript"
languageString | nullNoLanguage hint (e.g., "en", "es")