Claude With The Anthropic Api
← 所有课程
课程 37Claude With The Anthropic Api

Multi-turn conversations with tools

摘要音频

本节课没有语音摘要。

学习笔记

📚 学习笔记:多工具调用与对话流程构建

核心概念:多工具调用 (Multiple Tool Calling)

  • 项目目标: 将多个不同的工具(Tools)连接到 Claude,以处理复杂的查询。
  • 多步推理流程: 当用户提问需要多个工具时,Claude 的响应是一个迭代过程:
  • 用户提问 → Claude 请求调用工具 A。
  • 系统执行工具 A → 将结果返回给 Claude。
  • Claude 基于工具 A 的结果,请求调用工具 B。
  • 系统执行工具 B → 将结果返回给 Claude。
  • Claude 拥有所有信息后,给出最终答案。
  • 核心逻辑(循环机制): 必须设计一个主函数(如 runConversation)来持续检查 Claude 的响应:
  • 如果 Claude 请求使用工具 → 执行工具,并将结果重新输入给 Claude,继续循环。
  • 如果 Claude 没有请求工具 → 视为最终回答,结束循环并返回结果给用户。

代码重构要点 (Refactoring Steps)

为了支持多工具调用,需要对现有代码进行重构:

  • 升级消息辅助函数 (addUserMessage, addAssistantMessage):
  • 问题: 原函数仅假设接收和处理纯文本块 (Plain Text Block)。
  • 改进: 必须允许这些函数处理包含多个消息块(Message Blocks)的完整响应,而不仅仅是文本。
  • 升级聊天函数 (chat):
  • 工具支持: 接收并接受一个工具模式列表 (List of Tool Schemas),并将其传递给 Claude 的 API 调用。
  • 返回内容变化: 不再只返回 Claude 响应中的纯文本,而是返回整个消息对象(包含所有内容块,包括文本块和工具使用块)。
  • 新增辅助函数 (textFromMessage):
  • 功能: 专门用于遍历一个包含多个消息块的消息对象,提取所有类型为文本 (Text) 的块中的内容,并将它们拼接起来。

总结

  • 关键挑战: 必须从“单步响应”思维转变为“多轮迭代”思维。
  • 实现关键: 通过一个循环(runConversation)来管理工具调用和 Claude 的反馈,直到 Claude 给出最终的非工具请求响应为止。

Takeaways

  • 核心逻辑要求从“单步响应”思维转变为“多轮迭代”思维,以处理复杂的工具调用流程。
  • 必须设计主循环函数(如 runConversation),持续检查 Claude 的响应,直到其给出最终的非工具请求回答为止。
  • 代码重构的关键在于升级消息辅助函数,使其能够处理包含多个消息块的完整响应,而非仅限纯文本。
  • 聊天函数 (chat) 需升级以接收并传递工具模式列表 (List of Tool Schemas) 给 Claude 的 API 调用。
抽认卡 8 张卡片
问题
点击显示 · ←/→
答案
点击翻回
导出到 Anki (.tsv) ↓
知识检测 0 题

No quiz for this lesson yet.