0Pricing
AI Agents · 课时

调用 Anthropic API:messages

使用 Anthropic messages API:了解它与 OpenAI 的区别、系统提示词的位置以及 Claude 专属的最佳实践。

调用 Anthropic API:messages 是 CoddyKit 上的免费 AI Agents 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Agents 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Agents 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

为什么选择 Anthropic?

与同等的 OpenAI 模型相比,Claude 模型通常具有更强的指令遵循能力、更好的工具使用能力和更长的上下文窗口,而且有时价格更低。

大多数生产环境中的智能体都会同时支持两家提供商,以便在需要时使用备用方案。

Install the SDK

# pip install anthropic
import anthropic
client = anthropic.Anthropic()  # reads ANTHROPIC_API_KEY from env

首次调用

端点是 messages.create:

response = client.messages.create(
    model='claude-sonnet-4-5',
    max_tokens=512,
    system='You are a concise assistant.',
    messages=[
        {'role': 'user', 'content': 'Capital of France?'},
    ],
)
print(response.content[0].text)
# 'Paris.'

与 OpenAI 的主要区别

  1. system 是顶层参数,而不是消息
  2. max_tokens 是 REQUIRED
  3. content 是内容块列表(文本、tool_use 等)
  4. 没有 n 参数——请使用多次调用

内容块

即使是文本响应,也会以内容块列表的形式返回:

response.content              # list of blocks
response.content[0].type      # 'text' or 'tool_use'
response.content[0].text      # the text content
response.stop_reason          # 'end_turn' / 'max_tokens' / 'tool_use'
response.usage.input_tokens
response.usage.output_tokens

多内容块

您也可以在用户消息中发送内容块列表(图像、工具结果):

messages = [{
    'role': 'user',
    'content': [
        {'type': 'text', 'text': 'What is in this image?'},
        {'type': 'image', 'source': {
            'type': 'base64',
            'media_type': 'image/png',
            'data': image_base64
        }}
    ]
}]

预填助手消息

强制响应以特定方式开始:

messages = [
    {'role': 'user', 'content': 'Return a JSON object.'},
    {'role': 'assistant', 'content': '{'}
]
response = client.messages.create(
    model='claude-sonnet-4-5',
    max_tokens=512,
    messages=messages,
)
# Output starts after '{', guaranteed to be JSON.

工具使用

Anthropic 的工具格式与 OpenAI 类似,但使用 input_schema:

tools = [{
    'name': 'get_weather',
    'description': 'Get current weather',
    'input_schema': {
        'type': 'object',
        'properties': {'city': {'type': 'string'}},
        'required': ['city']
    }
}]

response = client.messages.create(
    model='claude-sonnet-4-5',
    max_tokens=1024,
    tools=tools,
    messages=messages,
)
if response.stop_reason == 'tool_use':
    for block in response.content:
        if block.type == 'tool_use':
            print(block.name, block.input)

返回工具结果

工具结果会放入包含工具结果区块的用户消息中:

messages.append({
    'role': 'user',
    'content': [{
        'type': 'tool_result',
        'tool_use_id': 'toolu_abc',
        'content': json.dumps(weather_data)
    }]
})

提示词缓存

Anthropic 支持提示词缓存:将较长的静态前缀标记为 cache_control,缓存命中时只需支付 10% 的费用:

system = [
    {'type': 'text', 'text': '...long system prompt...',
     'cache_control': {'type': 'ephemeral'}}
]
for block in system:
    print(f"type={block['type']} cache_control={block['cache_control']}")
    print("text preview:", block['text'][:30])

扩展思考

Claude 有一种“扩展思考”模式,会在回答前进行内部推理:

response = client.messages.create(
    model='claude-sonnet-4-5',
    max_tokens=4096,
    thinking={'type': 'enabled', 'budget_tokens': 2048},
    messages=messages,
)

系统提示词的位置

在 Anthropic 接口中,系统提示词应放在哪里?

回顾

现在您已经可以调用两家主要服务商了。它们之间的差异虽小却确实存在,因此大多数团队都会构建一个薄适配层,以便在两者之间切换。

常见问题解答

「调用 Anthropic API:messages」课时是免费的吗?

是的 — 「调用 Anthropic API:messages」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Agents 课程的其余内容,请升级到 CoddyKit PRO。 AI Agents 课程共包含 4 节课。

「调用 Anthropic API:messages」这节课中我会学到什么?

使用 Anthropic messages API:了解它与 OpenAI 的区别、系统提示词的位置以及 Claude 专属的最佳实践。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Agents 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Agents 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「调用 Anthropic API:messages」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Agents 课中编写并运行代码吗?

能。每节 AI Agents 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 调用 OpenAI API:chat.completions
  2. 调用 Anthropic API:messages
  3. 流式响应(SSE)
  4. 成本意识:令牌计数与预算
← 返回 AI Agents