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

我们要添加的工具
我们的提醒系统需要三个主要功能:
- 获取当前日期时间 - Claude需要知道当前的日期和时间
- 向日期时间添加时长 - Claude在日期时间加法运算上并不完美
- 设置提醒 - 需要一种设置提醒的方法
好消息是大部分实现工作已经完成。add_duration_to_datetime 函数处理各种时间单位(秒、分钟、小时、天、周、月)并返回格式正确的日期时间字符串。

set_reminder 函数是一个简单的占位符,它打印出确认详情,而不是实际设置系统提醒。
向对话中添加工具
这个过程遵循我们之前建立的相同模式。首先,更新 run_conversation 函数以包含新的工具模式(schema):
response = chat(messages, tools=[
get_current_datetime_schema,
add_duration_to_datetime_schema,
set_reminder_schema
])
这会告诉Claude在对话过程中可以使用的所有可用工具。
处理工具执行
接下来,更新 run_tool 函数以处理新的工具调用:
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:
- 计算2050年1月1日之后177天的日期
- 为该计算出的日期设置提醒

Claude通过首先解释它需要做什么来处理这个问题,然后使用 add_duration_to_datetime 工具计算出2050年6月27日,最后用正确的日期调用 set_reminder。
理解消息流程
查看对话历史揭示了Claude如何在单个响应中管理多个工具。助手消息包含一个解释该过程的文本块和一个用于第一次计算的工具使用块。

在收到工具结果后,Claude继续发送另一条消息,其中包含文本和另一个用于设置提醒的工具使用块。这展示了Claude如何将多个工具调用链接在一起以完成复杂任务。
关键要点
一旦您设置好了基本的工具基础设施,添加新工具就遵循一个简单的三步流程:
- 将工具模式(schema)添加到
run_conversation中的工具列表 - 在
run_tool函数中为新工具添加一个case - 实现实际的工具函数
该框架会自动处理所有消息传递、工具结果格式化和对话流程。这使得构建能够按顺序执行多个相关任务的复杂AI助手变得容易。