Anthropic¶
Anthropic is an AI safety and research company focused on building reliable, interpretable, and steerable AI systems. Included in their offerings is the Claude AI family of models, which are known for their conversational abilities, careful reasoning, and capacity to follow complex instructions. The Strands Agents SDK implements an Anthropic provider, allowing users to run agents against Claude models directly.
Installation¶
Anthropic is configured as an optional dependency in Strands. To install, run:
pip install 'strands-agents[anthropic]'
Usage¶
After installing anthropic
, you can import and initialize Strands' Anthropic provider as follows:
from strands import Agent
from strands.models.anthropic import AnthropicModel
from strands_tools import calculator
model = AnthropicModel(
client_args={
"api_key": "<KEY>",
},
# **model_config
max_tokens=1028,
model_id="claude-3-7-sonnet-20250219",
params={
"temperature": 0.7,
}
)
agent = Agent(model=model, tools=[calculator])
response = agent("What is 2+2")
print(response)
Configuration¶
Client Configuration¶
The client_args
configure the underlying Anthropic client. For a complete list of available arguments, please refer to the Anthropic docs.
Model Configuration¶
The model_config
configures the underlying model selected for inference. The supported configurations are:
Parameter | Description | Example | Options |
---|---|---|---|
max_tokens |
Maximum number of tokens to generate before stopping | 1028 |
reference |
model_id |
ID of a model to use | claude-3-7-sonnet-20250219 |
reference |
params |
Model specific parameters | {"max_tokens": 1000, "temperature": 0.7} |
reference |
Troubleshooting¶
Module Not Found¶
If you encounter the error ModuleNotFoundError: No module named 'anthropic'
, this means you haven't installed the anthropic
dependency in your environment. To fix, run pip install 'strands-agents[anthropic]'
.
Advanced Features¶
Structured Output¶
Anthropic's Claude models support structured output through their tool calling capabilities. When you use Agent.structured_output()
, the Strands SDK converts your Pydantic models to Anthropic's tool specification format.
from pydantic import BaseModel, Field
from strands import Agent
from strands.models.anthropic import AnthropicModel
class BookAnalysis(BaseModel):
"""Analyze a book's key information."""
title: str = Field(description="The book's title")
author: str = Field(description="The book's author")
genre: str = Field(description="Primary genre or category")
summary: str = Field(description="Brief summary of the book")
rating: int = Field(description="Rating from 1-10", ge=1, le=10)
model = AnthropicModel(
client_args={
"api_key": "<KEY>",
},
max_tokens=1028,
model_id="claude-3-7-sonnet-20250219",
params={
"temperature": 0.7,
}
)
agent = Agent(model=model)
result = agent.structured_output(
BookAnalysis,
"""
Analyze this book: "The Hitchhiker's Guide to the Galaxy" by Douglas Adams.
It's a science fiction comedy about Arthur Dent's adventures through space
after Earth is destroyed. It's widely considered a classic of humorous sci-fi.
"""
)
print(f"Title: {result.title}")
print(f"Author: {result.author}")
print(f"Genre: {result.genre}")
print(f"Rating: {result.rating}")