Agent Trajectory Observability Format (ATOF)
Agent Trajectory Observability Format (ATOF)
Agent Trajectory Observability Format (ATOF)
Use the atof section when you want the raw Agent Trajectory Observability
Format (ATOF) 0.1 event stream written as JSONL or streamed to raw-event
collectors.
ATOF JSONL export is useful for local debugging, offline inspection, and preserving the canonical event stream before it is translated into another format. Streaming endpoints are useful when a collector wants the same raw event shape in near real time.
plugins.toml ExampleThis configuration registers the plugin-managed ATOF exporter and writes one
JSON object per lifecycle event to logs/events.jsonl. It also sends each raw
ATOF event to the configured endpoint.
Each endpoint receives the same raw ATOF JSON object that the file exporter writes as one JSONL line. Endpoints are independent: a failed endpoint is skipped or retried without blocking file output or other endpoints.
http_post sends each event as one JSONL record in an HTTP POST request
with Content-Type: application/x-ndjson. Any 2xx response is treated as
success.websocket opens one connection and sends each event as one JSON text
message.ndjson opens one long-lived HTTP upload and writes each event as one
newline-delimited JSON record.force_flush() flushes file output and drains queued endpoint events without
closing streaming connections. shutdown() is terminal: it flushes pending
work, closes streaming connections, and makes later events no-op.
Each emitted scope, tool, LLM, middleware, or mark event is written as one ATOF JSON object per line. For event field semantics, see Events.
Register the plugin before instrumented work starts and clear it during shutdown so file handles flush.
Use plugin configuration when the application should let NeMo Relay own the ATOF exporter lifecycle.
Use the manual AtofExporter API when a test or script needs a custom
subscriber name or explicit registration window.
mode is not append or overwrite.endpoints[i].url is empty, endpoints[i].transport is not supported, or
endpoints[i].timeout_millis is 0.nemo-relay doctor cannot deliver its synthetic ATOF mark probe to a
configured endpoint.