Skip to main content
You can find information about Anthropic’s latest models, their costs, context windows, and supported input types in the Claude docs.
API ReferenceFor detailed documentation of all features and configuration options, head to the ChatAnthropic API reference.
AWS Bedrock and Google VertexAINote that certain Anthropic models can also be accessed via AWS Bedrock and Google VertexAI. See the ChatBedrock and ChatVertexAI integrations to use Anthropic models via these services.

Overview

Integration details

Model features

Setup

To access Anthropic (Claude) models you’ll need to install the langchain-anthropic integration package and acquire a Claude API key.

Installation

Credentials

Head to the Claude console to sign up and generate a Claude API key. Once you’ve done this set the ANTHROPIC_API_KEY environment variable:
To enable automated tracing of your model calls, set your LangSmith API key:

Instantiation

Now we can instantiate our model object and generate chat completions:

Invocation

Token counting

You can count tokens in messages before sending them to the model using the get_num_tokens_from_messages() method. This uses Anthropic’s official token counting API.
You can also count tokens when using tools:

Content blocks

When using tools, extended thinking, and other features, content from a single Anthropic AIMessage can either be a single string or a list of Anthropic content blocks. For example, when an Anthropic model invokes a tool, the tool invocation is part of the message content (as well as being exposed in the standardized AIMessage.tool_calls):
Using content_blocks will render the content in LangChain’s standard format that is consistent across other model providers. Read more about content blocks.
You can also access tool calls specifically in a standard format using the tool_calls attribute:

Multimodal

Claude supports image and PDF inputs as content blocks, both in Anthropic’s native format (see docs for vision and PDF support as well as LangChain’s standard format.

Files API

In addition to base64 data, Claude supports interactions with files through its managed Files API. The Files API can be used to upload files to a container for use with Claude’s built-in code-execution tools. See the code execution section below, for details.

Extended thinking

Some Claude models support an extended thinking feature, which will output the step-by-step reasoning process that led to its final answer. See compatible models in the Claude documentation. To use extended thinking, specify the thinking parameter when initializing ChatAnthropic. If needed, it can also be passed in as a parameter during invocation. You will need to specify a token budget to use this feature. See usage example below:

Prompt caching

Anthropic supports caching of elements of your prompts, including messages, tool definitions, tool results, images and documents. This allows you to re-use large documents, instructions, few-shot documents, and other data to reduce latency and costs. To enable caching on an element of a prompt, mark its associated content block using the cache_control key. See examples below:

Messages

Extended cachingThe cache lifetime is 5 minutes by default. If this is too short, you can apply one hour caching by enabling the "extended-cache-ttl-2025-04-11" beta header and specifying "cache_control": {"type": "ephemeral", "ttl": "1h"}:
Details of cached token counts will be included on the InputTokenDetails of response’s usage_metadata:

Tools

Incremental caching in conversational applications

Prompt caching can be used in multi-turn conversations to maintain context from earlier messages without redundant processing. We can enable incremental caching by marking the final message with cache_control. Claude will automatically use the longest previously-cached prefix for follow-up messages. Below, we implement a simple chatbot that incorporates this feature. We follow the LangChain chatbot tutorial, but add a custom reducer that automatically marks the last content block in each user message with cache_control:
In the LangSmith trace, toggling “raw output” will show exactly what messages are sent to the chat model, including cache_control keys.

Strict tool use

Strict tool use requires:
  • Claude Sonnet 4.5 or Opus 4.1.
  • langchain-anthropic>=1.1.0
Anthropic supports opt-in strict schema adherence to tool calls. This guarantees that tool names and arguments are validated and correctly typed. To enable strict tool use, specify strict=True when calling bind_tools.

Token-efficient tool use

Anthropic supports a token-efficient tool use feature. It is supported by default on all Claude 4 models. To use it with Claude 3.7, specify the token-efficient-tools-2025-02-19 beta-header when instantiating the model, as shown below:

Fine-grained tool streaming

Anthropic supports fine-grained tool streaming, a beta feature that reduces latency when streaming tool calls with large parameters. Rather than buffering entire parameter values before transmission, fine-grained streaming sends parameter data as it becomes available. This can reduce the initial delay from 15 seconds to around 3 seconds for large tool parameters.
Fine-grained streaming may return invalid or partial JSON inputs, especially if the response reaches max_tokens before completing. Implement appropriate error handling for incomplete JSON data.
To enable fine-grained tool streaming, specify the fine-grained-tool-streaming-2025-05-14 beta header when initializing the model:
The streaming chunks will arrive faster, but you should handle potential JSON parsing errors:

Citations

Anthropic supports a citations feature that lets Claude attach context to its answers based on source documents supplied by the user. When document or search_result content blocks with "citations": {"enabled": True} are included in a query, Claude may generate citations in its response.

Simple example

In this example we pass a plain text document. In the background, Claude automatically chunks the input text into sentences, which are used when generating citations.

In tool results (agentic RAG)

Claude supports a search_result content block representing citable results from queries against a knowledge base or other custom source. These content blocks can be passed to claude both top-line (as in the above example) and within a tool result. This allows Claude to cite elements of its response using the result of a tool call. To pass search results in response to tool calls, define a tool that returns a list of search_result content blocks in Anthropic’s native format. For example:
Here we demonstrate an end-to-end example in which we populate a LangChain vector store with sample documents and equip Claude with a tool that queries those documents. The tool here takes a search query and a category string literal, but any valid tool signature can be used.

Using with text splitters

Anthropic also lets you specify your own splits using custom document types. LangChain text splitters can be used to generate meaningful splits for this purpose. See the below example, where we split the LangChain README.md (a markdown document) and pass it to Claude as context:

Context management

Anthropic supports a context editing feature that will automatically manage the model’s context window (e.g., by clearing tool results). See the Claude documentation for details and configuration options.
Context management is supported since langchain-anthropic>=0.3.21

Structured output

Structured output requires:
  • Claude Sonnet 4.5 or Opus 4.1.
  • langchain-anthropic>=1.1.0
Anthropic supports a native structured output feature, which guarantees that its responses adhere to a given schema. You can access this feature in individual model calls, or by specifying the response format of a LangChain agent. See below for examples.
Use the with_structured_output method to generate a structured model response. Specify method="json_schema" to enable Anthropic’s native structured output feature; otherwise the method defaults to using function calling.
Specify response_format with ProviderStrategy to engage Anthropic’s structured output feature when generating its final response.

Built-in tools

Anthropic supports a variety of built-in tools, which can be bound to the model in the usual way. Claude will generate tool calls adhering to its internal schema for the tool. Claude can use a web search tool to run searches and ground its responses with citations.
Web search tool is supported since langchain-anthropic>=0.3.13

Web fetching

Claude can use a web fetching tool to run searches and ground its responses with citations.
You must add the 'web-fetch-2025-09-10' beta header to use web fetching.

Code execution

Claude can use a code execution tool to execute code in a sandboxed environment.
Anthropic’s 2025-08-25 code execution tools are supported since langchain-anthropic>=1.0.3.The legacy 2025-05-22 tool is supported since langchain-anthropic>=0.3.14.
The code sandbox does not have internet access, thus you may only use packages that are pre-installed in the environment. See the Claude docs for more info.
Using the Files API, Claude can write code to access files for data analysis and other purposes. See example below:
Note that Claude may generate files as part of its code execution. You can access these files using the Files API:

Memory tool

Claude supports a memory tool for client-side storage and retrieval of context across conversational threads. See docs here for details.
Anthropic’s built-in memory tool is supported since langchain-anthropic>=0.3.21

Remote MCP

Claude can use a MCP connector tool for model-generated calls to remote MCP servers.
Remote MCP is supported since langchain-anthropic>=0.3.14
Claude supports a tool search feature that enables dynamic tool discovery and loading. Instead of loading all tool definitions into the context window upfront, Claude can search your tool catalog and load only the tools it needs. This is useful when:
  • You have 10+ tools available in your system
  • Tool definitions are consuming significant tokens
  • You’re experiencing tool selection accuracy issues with large tool sets
There are two tool search variants:
  • Regex (tool_search_tool_regex_20251119): Claude constructs regex patterns to search for tools
  • BM25 (tool_search_tool_bm25_20251119): Claude uses natural language queries to search for tools
Key points:
  • Tools with defer_loading: True are only loaded when Claude discovers them via search
  • Keep your 3-5 most frequently used tools as non-deferred for optimal performance
  • Both variants search tool names, descriptions, argument names, and argument descriptions
See the Claude documentation for more details on tool search, including usage with MCP servers and client-side implementations.

Text editor

The text editor tool can be used to view and modify text files. See docs here for details.

Computer use

Claude supports computer use capabilities, allowing it to interact with desktop environments through screenshots, mouse control, and keyboard input.
Important: You must provide the execution environmentLangChain handles the API integration (sending/receiving tool calls), but you are responsible for:
  • Setting up a sandboxed computing environment (Linux VM, Docker container, etc.)
  • Implementing a virtual display (e.g., Xvfb)
  • Executing Claude’s tool calls (screenshot, mouse clicks, keyboard input)
  • Passing results back to Claude in an agent loop
Anthropic provides a reference implementation to help you get started.
Requirements:
  • Claude Opus 4.5, Claude 4, or Claude Sonnet 3.7
Available tool versions:
  • computer_20250124 (for Claude 4 and Claude Sonnet 3.7)
  • computer_20251124 (for Claude Opus 4.5)
In each case, the required beta header is automatically added by LangChain when the tool is bound.

API reference

For detailed documentation of all features and configuration options, head to the ChatAnthropic API reference.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.