加载中

现在我们已经让一个工具正常运行了,接下来是时候添加剩余的两个工具来完成我们的项目:add_duration_to_datetime 和 set_reminder。好消息是,一旦您搭建好了基础架构,添加新工具就会变得非常简单。

预构建的函数和模式

为了节省时间,这两个额外函数的实现已经提供好了,连同它们的 JSON 模式规范。您可以在之前的代码单元格中找到这些内容:

  • add_duration_to_datetime - 处理各种时间单位的日期运算
  • set_reminder - 创建提醒(目前只是打印输出,但可以扩展为与实际的提醒系统集成)

每个函数都配有一个相应的 JSON 模式,用于定义预期的参数及其类型。

将工具添加到对话中

第一步是在您的对话函数中包含新的工具模式。在 run_conversation 函数中,将额外的模式添加到 tools 数组中:

python
tools=[
    get_current_datetime_schema,
    add_duration_to_datetime_schema,
    set_reminder_schema
]

连接工具函数

接下来,您需要更新 run_tool 函数以处理新的工具名称。添加两个额外的条件分支:

python
def run_tool(tool_name, tool_input):
    if tool_name == "get_current_datetime":
        return get_current_datetime(**tool_input)
    elif tool_name == "set_reminder":
        return set_reminder(**tool_input)
    elif tool_name == "add_duration_to_datetime":
        return add_duration_to_datetime(**tool_input)
    else:
        raise Exception(f"Unknown tool name: {tool_name}")

测试完整系统

连接好所有工具后,您现在可以测试需要多次工具调用的复杂工作流程。例如,要求 Claude "设置一个去看医生的提醒。预约在 100 天后"将触发一系列操作:

  1. 使用 get_current_datetime 获取今天的日期
  2. 使用 add_duration_to_datetime 在该日期上加 100 天
  3. 使用 set_reminder 创建提醒

Claude 会自动将请求分解为逻辑步骤,并在执行每次工具调用之前解释其计划。输出结果展示了完整的工作流程,包括计算出的未来日期以及提醒设置成功的确认信息。

关键要点

一旦您搭建好了基础的工具使用基础架构,添加新工具只需要两个简单的步骤:将模式包含在您的 tools 数组中,并在您的路由函数中添加一个用于处理工具名称的分支。初始设置可能会让人感觉复杂,但扩展到多个工具会变得非常易于管理。