Skip to main content
Context is what makes the ledger queryable. Every event carries the same optional metadata object, and its context fields are the identifiers the dashboard aggregates by β€” the dimensions you tag are exactly the ones you can later slice cost and usage by.
The shape is identical whether an event comes from an SDK wrapper, a wrapped tool, or manual capture.

Context fields

Context fields are the built-in dimensions. All are optional strings whose meaning is defined by your application:
Set the fields that match your product’s shape β€” a chat product benefits from threadId and userId; a multi-agent system from agentId and agentGroupId. Events tagged with these light up the dimension pages in the dashboard; events without them still record, but cannot be sliced by that dimension.

Custom properties

additionalProperties holds your own dimensions as string or number values β€” release tags, environment names, experiment arms:

Where metadata goes

The same metadata object β€” traceId, context, and additionalProperties β€” attaches the same way from every capture path:
Pass a carbon field in the call arguments. The wrapper strips it before the request reaches the provider.
To correlate the events of one logical operation β€” an agent run, a request, a job β€” give them a shared traceId. See Traces.