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 Example
This 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.
Fields
Streaming Endpoints
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_postsends each event as one JSONL record in an HTTPPOSTrequest withContent-Type: application/x-ndjson. Any2xxresponse is treated as success.websocketopens one connection and sends each event as one JSON text message.ndjsonopens 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.
Expected Output
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.
Plugin Configuration
Use plugin configuration when the application should let NeMo Relay own the ATOF exporter lifecycle.
Python
Node.js
Rust
Manual API
Use the manual AtofExporter API when a test or script needs a custom
subscriber name or explicit registration window.
Python
Node.js
Rust
Common Validation Failures
modeis notappendoroverwrite.endpoints[i].urlis empty,endpoints[i].transportis not supported, orendpoints[i].timeout_millisis0.- The output directory is not writable at runtime.
nemo-relay doctorcannot deliver its synthetic ATOF mark probe to a configured endpoint.- ATOF is enabled in a target that cannot access the native filesystem.