Skip to main content
Mantle persists conversation events and publishes them on the event broker as nested ProtoJSON, not the legacy flat {"event": "user", ...} shape. Legacy (non-Mantle) projects are unchanged. This page is the builder summary. The authoritative schema lives in proto/rasa/events/v1/broker_event.proto with rules and examples in that directory’s README, plus golden JSON fixtures under proto/rasa/events/v1/fixtures/ for consumer tests.

Shape at a glance

  • Each event is one JSON object with envelope fields (conversation_id, timestamp, event_id, sequence, user_id, deployment_environment, session_id, optional metadata) and exactly one nested payload key (user, bot, memory_set, skill_activated, …).
  • Wire keys are stable snake_case (json_name). Do not assume protobuf field identifiers match the JSON keys.
  • conversation_id is the tracker conversation id (Python still calls this sender_id on tracker APIs).
  • Memory values and tool arguments / results are JSON strings (value_json, arguments_json, result_json). Parse them once so integers stay integers ("42" → 42, not 42.0).
  • Mantle lifecycle events’ names include: skill_*, ordered_block_*, memory_*, tool_executed.
Example:

Dual-read

New Mantle saves are ProtoJSON-only. Loading a tracker still accepts a mix of ProtoJSON and older flat {"event": "…"} rows so existing conversations keep working.

Sorting and identity

Prefer sequence (0-based per conversation) for order. Gaps are possible, so do not require contiguous values. event_id is a UUID v7 string minted on first ProtoJSON serialize; older rows without these fields still load.

Inspector

Inspector shows these ProtoJSON events in the conversation log, including messages, memory, skills, tools, and the other types on this page. Older flat events in the same conversation still appear.

TypeScript consumers

Studio installs the same schema as @rasahq/rasa-events from the Rasa Artifact Registry (same auth pattern as @rasahq/rasa-inspector). Until that package is published, parse against the golden fixtures and the .proto file in-repo. Inspector, which ships in this repository, reads that same schema directly.