Anthropic Claude API 支持工具调用(Tool Use),允许模型在对话中调用预定义的外部函数,实现与真实世界的交互。这是构建 AI Agent 的核心能力。
import anthropic
client = anthropic.Anthropic()
tools = [{
"name": "get_stock_price",
"description": "获取指定股票的当前价格",
"input_schema": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "股票代码,如 AAPL"
}
},
"required": ["symbol"]
}
}]
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
tools=tools,
messages=[{
"role": "user",
"content": "苹果公司股票现在多少钱?"
}]
)
# 检查模型是否请求调用工具
if response.stop_reason == "tool_use":
for block in response.content:
if block.type == "tool_use":
print(f"调用工具: {block.name}")
print(f"参数: {block.input}")
# 将工具结果返回给模型继续对话
tool_result_message = {
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": block.id,
"content": f"{{'price': 198.50, 'change': '+2.3%'}}"
}]
}
# 继续对话
response2 = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
tools=tools,
messages=[
{"role": "user", "content": "苹果公司股票现在多少钱?"},
response.content[0], # 模型的工具调用
tool_result_message
]
)
import base64
# 方式1:base64编码
with open("image.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data
}
},
{
"type": "text",
"text": "描述这张图片的内容"
}
]
}]
)
# 方式2:URL引用
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/photo.jpg"
}
},
{"type": "text", "text": "分析这张图表"}
]
}]
)
with open("document.pdf", "rb") as f:
pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=4096,
messages=[{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data
}
},
{"type": "text", "text": "总结这个PDF的关键要点"}
]
}]
)
| 模型 | 上下文 | 适用场景 |
|---|---|---|
| Claude Opus 4 | 200K | 最复杂任务,最强推理 |
| Claude Sonnet 4 | 200K | 通用最佳,性价比高 |
| Claude Haiku 3.5 | 200K | 快速响应,低成本 |
评论区