摘要

1) 一句话总结 本文档总结了 Claude Tool Use Cookbook 的核心入门路径,涵盖工具定义、调用策略、结构化输出与并行执行,旨在帮助开发者将单轮问答升级为行为可控的 Agent。

2) 核心要点

  • 覆盖范围:包含计算器、客服 Agent、工具选择、Pydantic 结合、JSON 提取及并行工具调用等 6 个核心实战 Notebook。
  • 工具定义:通过明确的 namedescriptioninput_schema 严格约束模型可调用的动作。
  • 调用策略:利用 tool_choice 参数,支持在自动选择、强制调用和禁用调用之间灵活切换。
  • 结构化输出:结合 Pydantic 或 JSON schema 进行信息抽取,有效降低后处理解析成本。
  • 并行执行:支持将多个独立查询拆分为并行工具调用,以缩短端到端响应时间。
  • 典型场景:适用于高精度计算与规则查表、客服与业务流程(系统读写)、以及将自由文本稳定转化为可落库的结构化对象。
  • 开发建议:工具 schema 的设计应从小且稳定起步,再逐步扩展参数和工具数量。

3) 风险与缺口

  • 单点阻塞风险:并行工具调用时存在单点阻塞的风险,必须配合超时与失败回退策略。
  • 格式输出风险:不能完全依赖模型“尽量输出正确格式”,若缺乏对关键字段的强校验,可能导致解析失败。

正文

本篇聚焦 Tool Use 的核心入门路径:先定义工具,再约束调用策略,最后实现结构化输出与并行调用。相比只看 API 参数,这组 notebook 更强调“模型行为可控性”,适合把单轮问答升级为可执行 Agent。

能力主线

  • 工具定义:以明确的 namedescriptioninput_schema 约束模型可调用动作。
  • 调用策略:通过 tool_choice 在自动选择、强制调用、禁用调用之间切换。
  • 结构化输出:结合 Pydantic 或 JSON schema,降低后处理解析成本。
  • 并行执行:将多个独立查询拆分为并行工具调用,减少端到端响应时间。

典型场景

  • 计算和查表类任务:把高精度计算、规则查询交给工具层。
  • 客服与业务流程:模型负责理解与决策,工具负责系统读写。
  • 信息抽取:把自由文本稳定转成可落库的结构化对象。

示例代码

def make_query_and_print_result(messages, tools=None):
    response = client.messages.create(
        model=MODEL_NAME,
        messages=messages,
        max_tokens=1000,
        tool_choice={"type": "auto"},
        tools=tools or [weather_tool, time_tool],
    )
 
    for block in response.content:
        match block.type:
            case "text":
                print(block.text)
            case "tool_use":
                print(f"Tool: {block.name}({block.input})")
 
    return response

使用建议

  • 先把工具 schema 做小做稳,再逐步扩展参数和工具数量。
  • 对关键字段做强校验,不要只依赖模型“尽量输出正确格式”。
  • 并行工具调用要配合超时与失败回退策略,避免单点阻塞。

相关文档

关联主题