{"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, optionalmetadata) 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_idis the tracker conversation id (Python still calls thissender_idon 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, not42.0). - Mantle lifecycle events’ names include:
skill_*,ordered_block_*,memory_*,tool_executed.
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
Prefersequence (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.