零度API 文档
POST

Messages(函数调用)

POST /v1/messages — Claude 工具调用(Anthropic 格式)

Messages (函数调用)

使用 Anthropic 官方格式让 Claude 调用自定义工具/函数,实现 AI Agent 能力。

POST https://api000.com/v1/messages

请求示例

import anthropic
import json

client = anthropic.Anthropic(
    api_key="sk-xxxxxxxxxxxxxxxx",
    base_url="https://api000.com"
)

tools = [
    {
        "name": "get_weather",
        "description": "获取指定城市的实时天气",
        "input_schema": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "城市名称,如 '北京'"
                }
            },
            "required": ["location"]
        }
    }
]

response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    tools=tools,
    messages=[
        {"role": "user", "content": "北京今天天气怎么样?"}
    ]
)

# 处理工具调用
for block in response.content:
    if block.type == "tool_use":
        print(f"调用工具: {block.name}")
        print(f"参数: {json.dumps(block.input, ensure_ascii=False)}")

工具调用完整流程(多轮)

messages = [{"role": "user", "content": "上海天气如何?"}]

# 第一轮:模型决定调用工具
response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    tools=tools,
    messages=messages
)

if response.stop_reason == "tool_use":
    tool_use_block = next(b for b in response.content if b.type == "tool_use")
    
    # 执行工具(此处模拟返回结果)
    tool_result = "上海今天晴天,气温 28°C,湿度 65%"
    
    # 第二轮:将工具结果传回
    messages.append({"role": "assistant", "content": response.content})
    messages.append({
        "role": "user",
        "content": [{
            "type": "tool_result",
            "tool_use_id": tool_use_block.id,
            "content": tool_result
        }]
    })
    
    final_response = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=1024,
        tools=tools,
        messages=messages
    )
    print(final_response.content[0].text)

tool_choice 参数

说明
{"type": "auto"} 模型自动决定(默认)
{"type": "any"} 强制调用至少一个工具
{"type": "tool", "name": "xxx"} 强制调用指定工具
{"type": "none"} 禁止调用工具
零度API 文档