Telemetry fields
The SDK adds four optional fields to each instrumented tool’s input schema. The calling agent fills them in as it works; the SDK strips them out before your handler runs, so your business logic never sees them:
All fields are optional — agents that ignore them still produce complete sessions with tool calls, timing, and outcomes. Older field spellings (
intent, context, frustration_level) are accepted and normalized, so agents with cached schemas keep working.
This is why instrumented sessions show what the user asked and what the agent was thinking — not just a list of tool calls. The description hint the SDK appends to each tool tells agents how to fill the fields.
Events
The SDK emits two event kinds:session_init — once per session: client name and version (Claude, ChatGPT, Cursor, …), protocol version, and capabilities.
tool_call — one per tool invocation:
- Tool name, start/finish timestamps, duration
- Outcome (
okor the error), including MCP results returned withisError: true - Telemetry fields reported by the agent
- A truncated input preview and result preview
Size limits
Payloads are truncated UTF-8-safely before they leave your process:Sessions and actors
- Session identity comes from the MCP session: HTTP servers use the
Mcp-Session-Idheader; stdio servers get a process-scoped session ID, so each CLI conversation is its own session. Stateless HTTP servers need one extra helper. - Actor identity is a SHA-256 hash of a seed derived from the request’s auth (token, client ID, or
Authorizationheader), falling back toanonymous. The raw seed never leaves your server — see Identifying users.
Delivery guarantees
- Events post to Armature’s ingest API over HTTPS, authenticated with your ingest key.
- Delivery runs off the request path by default (
backgroundmode) and never throws into your tools — failures go to youronErrorhook. - If no ingest key is configured, the SDK no-ops: schemas are still decorated, but nothing is sent.
The agent-facing schema hint instructs agents not to put secrets or PII in telemetry fields, and Armature scans and redacts incoming sessions before storage.

