9.Using multiple tools
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org
==================================================
一旦您建立了核心工具处理基础设施,向您的Claude实现中添加多个工具就变得非常简单。本教程展示了如何通过遵循简单的模式来集成额外的工具。

我们要添加的工具
我们的提醒系统需要三个主要功能:
- 获取当前日期时间 - Claude需要知道当前的日期和时间
- 为日期时间添加时长 - Claude在日期时间加法方面并不完美
- 设置提醒 - 需要一种设置提醒的方法
好消息是大部分实现工作已经完成了。add_duration_to_datetime函数和set_reminder函数已经提供,同时还有它们对应的模式定义。
将工具添加到对话中
首先,更新run_conversation函数,在工具列表中包含新的工具模式:
response = chat(messages, tools=[
get_current_datetime_schema,
add_duration_to_datetime_schema,
set_reminder_schema
])
这告诉Claude在对话过程中可以使用的所有三个可用工具。
更新工具路由器
接下来,修改run_tool函数来处理新的工具调用。为每个新工具添加elif分支:
def run_tool(tool_name, tool_input):
if tool_name == "get_current_datetime":
return get_current_datetime(**tool_input)
elif tool_name == "add_duration_to_datetime":
return add_duration_to_datetime(**tool_input)
elif tool_name == "set_reminder":
return set_reminder(**tool_input)
这个模式很简单:检查工具名称,使用提供的输入调用相应的函数,然后返回结果。
测试多工具使用
要测试系统,可以尝试一个需要多个工具的请求:"为我的医生预约设置提醒。时间是2050年1月1日之后的177天。"
这个请求要求Claude:
- 计算日期(使用add_duration_to_datetime)
- 设置提醒(使用set_reminder)

Claude通过首先解释它需要做什么,然后按顺序进行适当的工具调用来处理这个请求。对话显示Claude计算出2050年6月27日作为目标日期,然后为该日期设置提醒。
理解消息流程
当你检查对话历史时,你会看到完整的消息结构:
- 包含请求的用户消息
- 包含文本和工具使用块的助手消息
- 工具结果消息
- 后续的助手消息

这展示了Claude如何在单个消息中包含多个块——将解释性文本与工具使用请求相结合。
添加工具的简单模式
一旦你有了核心工具基础设施,添加新工具就遵循这个模式:
- 创建工具函数实现
- 定义工具模式
- 将模式添加到 run_conversation 中的工具列表
- 在 run_tool 中为该工具添加一个案例
这种模块化方法使您能够轻松扩展 AI 助手的功能,而无需重构现有代码。每个新工具都能与现有的对话流程和工具处理逻辑无缝集成。
==================================================
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org