Anthropic

Adds instrumentation for the Anthropic SDK.

Import name: Sentry.instrumentAnthropicAiClient

The instrumentAnthropicAiClient helper adds instrumentation for the @anthropic-ai/sdk API to capture spans by wrapping Anthropic SDK calls and recording LLM interactions with configurable input/output recording. You need to manually wrap your Anthropic client instance with this helper.

See the example below:

Copied
import Anthropic from "@anthropic-ai/sdk";

const anthropic = new Anthropic({
  apiKey: "your-api-key", // Warning: API key will be exposed in browser!
});

const client = Sentry.instrumentAnthropicAiClient(anthropic, {
  recordInputs: true,
  recordOutputs: true,
});

// Use the wrapped client instead of the original anthropic instance
const response = await client.messages.create({
  model: "claude-3-5-sonnet-20241022",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello!" }],
});

To customize what data is captured (such as inputs and outputs), see the Options in the Configuration section.

The following options control what data is captured from Anthropic SDK calls:

Type: boolean (optional)

Records inputs to Anthropic SDK calls (such as prompts and messages).

Defaults to true if dataCollection.genAI.inputs is true (which is the default when using dataCollection), or if the deprecated sendDefaultPii is true.

Type: boolean (optional)

Records outputs from Anthropic SDK calls (such as generated text and responses).

Defaults to true if dataCollection.genAI.outputs is true (which is the default when using dataCollection), or if the deprecated sendDefaultPii is true.

Usage

Using the instrumentAnthropicAiClient wrapper for manual instrumentation:

Copied
const client = Sentry.instrumentAnthropicAiClient(anthropic, {
  // your options here
});

By default, tracing support is added to the following Anthropic SDK calls:

  • messages.create() - Create messages with Claude models
  • messages.stream() - Stream messages with Claude models
  • messages.countTokens() - Count tokens for messages
  • models.get() - Get model information
  • completions.create() - Create completions (legacy)
  • models.retrieve() - Retrieve model details
  • beta.messages.create() - Beta messages API

Streaming and non-streaming requests are automatically detected and handled appropriately.

  • @anthropic-ai/sdk: >=0.19.2 <1.0.0
Was this helpful?
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").