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

我们要添加的工具
我们的提醒系统需要三个主要功能:
- 获取当前日期时间 - Claude需要知道当前的日期和时间
- 为日期时间添加时长 - Claude在日期时间加法运算上并不完美
- 设置提醒 - 需要一种设置提醒的方式
好消息是大部分实现工作已经完成。add_duration_to_datetime 函数和 set_reminder 函数已经提供,以及它们对应的模式(schema)。
向对话中添加工具
首先,更新 run_conversation 函数,将新的工具模式添加到工具列表中:
python
response = chat(messages, tools=[
get_current_datetime_schema,
add_duration_to_datetime_schema,
set_reminder_schema
])这会告诉Claude在对话过程中可以使用的所有三个可用工具。
更新工具路由器
接下来,修改 run_tool 函数以处理新的工具调用。为每个新工具添加elif分支:
python
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助手的能力,而无需重构现有代码。每个新工具都能与现有的对话流程和工具处理逻辑无缝集成。