Skip to main content
Catalyst traces Eve through Eve’s native agent/instrumentation.ts hook. Eve already emits OpenTelemetry spans for agent turns, model calls, sub-agent invocations, and tools; Catalyst installs its OpenTelemetry provider from that hook and enriches the exported spans with OpenInference attributes and $eve.* workflow tags. Use this guide for TypeScript Eve agents. If your app calls the Vercel AI SDK directly outside Eve, use Vercel AI SDK traces for those direct generateText or streamText calls.
Eve uses the presence of agent/instrumentation.ts as the telemetry enablement signal. For Eve apps, export defineCatalystEveInstrumentation() from that file instead of calling setup() in your agent code.

What Is Captured

  • Eve turn spans such as ai.eve.turn as OpenInference CHAIN spans
  • Eve invoke_agent spans as AGENT spans
  • AI SDK v7 model spans inside Eve as LLM spans, including model, provider, input/output messages, finish reason, and token usage when the provider returns them
  • Eve execute_tool spans as TOOL spans, including tool name, call ID, arguments, result, and errors when available
  • Eve session, turn, parent, root, and trigger metadata
  • $eve.* aggregate fields such as model, input tokens, output tokens, cache tokens, and tool count
  • Custom runtime metadata added from defineCatalystEveInstrumentation()
Catalyst sets recordInputs and recordOutputs to true by default so the dashboard can show model and tool IO. Set either option to false when a deployment should avoid exporting full prompts, responses, tool arguments, or tool results.

Install

Install Catalyst tracing in the same package where your Eve agent runs.
TypeScript
Install the AI SDK provider package your Eve agent uses. For Catalyst Gateway or another OpenAI-compatible endpoint:
TypeScript

Configure Export

Set the Catalyst traces endpoint and token before the Eve process starts.
If your Eve model calls go through Catalyst Gateway, configure that provider separately:

Add Eve Instrumentation

Create agent/instrumentation.ts at the root of your Eve agent. Eve loads this file during agent startup.
TypeScript
functionId becomes Eve’s AI SDK telemetry function ID. Use a stable value for the logical agent or workflow. serviceName becomes the OpenTelemetry service.name resource attribute; when omitted, Catalyst uses Eve’s agent name.

Agent Provider Example

Your agent/agent.ts keeps using Eve normally. This example uses an OpenAI-compatible AI SDK provider pointed at Catalyst Gateway.
TypeScript
includeUsage: true lets the provider return token counts for Catalyst columns. modelContextWindowTokens is useful when Eve cannot infer context-window metadata from a custom AI SDK provider model.

Tool Spans

Eve tools are captured automatically when the runtime emits execute_tool spans. You do not need to wrap the tool manually.
TypeScript
When this tool runs, Catalyst records a TOOL span with tool.name, tool_call.id, input.value, and output.value.

Existing Eve Hooks

If you already use Eve instrumentation events, pass them into defineCatalystEveInstrumentation(). Catalyst composes your step.started handler with its own handler and merges the returned runtime context.
TypeScript
Only primitive metadata values are exported as attributes. Use strings, numbers, or booleans for custom runtime context.

Options

Other Catalyst setup() options, such as batching and resourceAttributes, can also be passed through. autoInstrument and modules are intentionally managed by the Eve integration.

Verify In Catalyst

Run your Eve agent, trigger a turn, then open Catalyst and filter by your service.name, for example eve-weather-agent. A successful Eve trace should include:
  • An ai.eve.turn CHAIN span with $eve.parent, $eve.root, and $eve.trigger
  • An invoke_agent AGENT span with agent.name and gen_ai.system=eve
  • One or more LLM spans for the nested AI SDK model calls
  • TOOL spans for any executed Eve tools
  • Token usage and model fields when the provider returns usage metadata
For local one-off smoke tests, batching: "simple" can make spans export as soon as they end. For long-lived Eve processes, the default batch exporter is usually the better fit.

Troubleshooting

If Eve traces do not appear:
  • Confirm the file is named agent/instrumentation.ts and is inside the Eve agent root.
  • Confirm CATALYST_OTLP_ENDPOINT and CATALYST_OTLP_TOKEN are available to the Eve process.
  • Use a stable serviceName and filter by that value in Catalyst.
  • Run Eve in a Node-compatible runtime. Catalyst configures the Node OpenTelemetry tracer provider for this integration.
  • If model spans appear without token counts, set includeUsage: true on the AI SDK provider when the provider supports it.
  • If Eve cannot resolve model context metadata for a custom provider, set modelContextWindowTokens in defineAgent().