Skip to main content
This guide provides a quick overview for getting started with Anthropic chat models. For detailed documentation of all ChatAnthropic features and configurations head to the API reference. Anthropic has several chat models. You can find information about their latest models and their costs, context windows, and supported input types in the Anthropic docs.
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 models you’ll need to create an Anthropic account, get an API key, and install the langchain-anthropic integration package.

Credentials

Head to console.anthropic.com/ to sign up for Anthropic and generate an 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:

Installation

The LangChain Anthropic integration lives in the langchain-anthropic package:
This guide requires langchain-anthropic>=0.3.13

Instantiation

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

Invocation

Chaining

We can chain our model with a prompt template like so:

Content blocks

When using tools, extended thinking, and other features, content from a single Anthropic AI message can either be a single string or a list of 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 a standard format that is consistent across providers:
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

Claude also supports interactions with files through its managed Files API. See examples below. The Files API can also 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 applicable models in the Anthropic guide here. To use extended thinking, specify the thinking parameter when initializing ChatAnthropic. It can also be passed in as a kwarg 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. See below:
In the LangSmith trace, toggling “raw output” will show exactly what messages are sent to the chat model, including cache_control keys.

Token-efficient tool use

Anthropic supports a (beta) token-efficient tool use feature. To use it, specify the relevant beta-headers when instantiating the model.

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)

Requires langchain-anthropic>=0.3.17
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 (a markdown document) and pass it to Claude as context:

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. from langchain_anthropic import ChatAnthropic
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 Python code in a sandboxed environment.
Code execution is supported since langchain-anthropic>=0.3.14
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:

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

Text editor

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

API reference

For detailed documentation of all ChatAnthropic features and configurations head to the API reference: python.langchain.com/api_reference/anthropic/chat_models/langchain_anthropic.chat_models.ChatAnthropic.html