第 44 页 / 共 100 页 / 飞书修订版 7

9.Using multiple tools

此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)

邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org

==================================================

TH9sbqDFQoW0hRxfAvFc4JMgnUh.bin

一旦您建立了核心工具处理基础设施,向您的Claude实现中添加多个工具就变得非常简单。本教程展示了如何通过遵循简单的模式来集成额外的工具。

image1.png

我们要添加的工具

我们的提醒系统需要三个主要功能:

  • 获取当前日期时间 - 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:

  1. 计算日期(使用add_duration_to_datetime)
  2. 设置提醒(使用set_reminder)
image2.png

Claude通过首先解释它需要做什么,然后按顺序进行适当的工具调用来处理这个请求。对话显示Claude计算出2050年6月27日作为目标日期,然后为该日期设置提醒。

理解消息流程

当你检查对话历史时,你会看到完整的消息结构:

  • 包含请求的用户消息
  • 包含文本和工具使用块的助手消息
  • 工具结果消息
  • 后续的助手消息
image3.png

这展示了Claude如何在单个消息中包含多个块——将解释性文本与工具使用请求相结合。

添加工具的简单模式

一旦你有了核心工具基础设施,添加新工具就遵循这个模式:

  1. 创建工具函数实现
  2. 定义工具模式
  3. 将模式添加到 run_conversation 中的工具列表
  4. 在 run_tool 中为该工具添加一个案例

这种模块化方法使您能够轻松扩展 AI 助手的功能,而无需重构现有代码。每个新工具都能与现有的对话流程和工具处理逻辑无缝集成。

==================================================



此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org