{"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.
Suppressed user input
On a voice channel, a final transcript that Mantle deliberately does not process is recorded asuser_input_suppressed instead of user. No turn runs
for it.
text is the suppressed transcript, so treat it like user.text.
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.