加载中

工具使Claude能够访问外部世界的信息,从而解决了它的一个关键限制。默认情况下,Claude只能访问其训练时所用的信息,这意味着它无法提供诸如今天的天气或最新新闻之类的当前信息。

当用户问"加利福尼亚州旧金山的天气怎么样?"时,Claude通常会回答"很抱歉,但我无法获取最新的天气信息。"工具通过在Claude和外部数据源之间建立桥梁来解决这个问题。

工具使用的工作原理

工具使用过程遵循一个特定的流程,涉及您的服务器与Claude之间多次来回通信:

  1. 初始请求: 您向Claude发送一个问题,并附上如何获取额外数据的说明
  2. 工具请求: Claude分析问题,并请求它所需的特定外部数据
  3. 数据检索: 您的服务器运行代码以获取所请求的信息
  4. 最终响应: Claude使用外部数据提供完整、有依据的答案

实践中的天气示例

以下是天气查询的工具使用流程是如何运作的:

当用户询问天气时,您会在向Claude发出的初始请求中包含如何检索当前天气数据的详细信息。Claude识别出它需要当前的天气信息,并请求您的服务器获取该信息。您的服务器调用天气API,检索实时数据,并将其发送回Claude。最后,Claude将原始问题与最新的天气数据结合起来,提供准确、及时的响应。

实现中的挑战

工具使用可能会让人感到困惑,因为逻辑流程与实际编写代码的方式之间存在脱节。实现过程并不遵循与概念步骤相同的顺序:

在实践中,您通常需要:

  • 首先编写工具函数
  • 创建一个JSON模式(schema)规范
  • 处理ToolUse和ToolResult部分
  • 在请求中包含该模式(schema)

这种在实现的不同部分之间来回跳转,正是工具使用最初看起来很复杂的原因。关键在于理解逻辑流程中的每一步都需要特定的代码组件,而您构建这些组件的顺序会与它们执行的顺序不同。

在接下来的视频中,我们将逐步实现工具使用,并频繁参考这个流程图,以便跟踪我们当前正在构建的部分。