摘要音频
本节课没有语音摘要。
学习笔记
🤖 Claude 工具调用流程学习笔记
🛠️ 步骤四:执行工具函数 (Tool Execution)
- 获取工具请求: 当 Claude 返回包含 tool use block 的响应时,需要解析该块以获取函数所需的输入参数。
- 参数位置:response content[1]. input
- 参数传递机制: 许多工具函数(如 get_current_date_time)接受关键字参数(keyword arguments)。
- 关键操作: 将从 Claude 获得的字典参数解包(unpack)后,使用 函数名(**参数字典) 的形式传递给工具函数。
🔄 步骤五:发送后续请求 (Follow-up Request)
- 完整历史记录: 后续请求必须包含完整的对话历史(包括原始用户消息、带有工具使用块的助手消息)。
- 引入工具结果: 在对话历史的末尾,必须追加一条新的用户消息,该消息包含 tool results block。
- tool results block 的作用: 将工具函数执行的实际结果反馈给 Claude,使其能够基于结果生成最终回复。
🔑 tool results block 核心概念
- 结构组成: 该块包含以下关键字段:
- tool_use_id:核心字段。用于将工具执行结果与原始的工具调用请求进行精确匹配。
- 应用场景: 当 Claude 一次性请求调用多个工具时,ID 确保结果 1 对应请求 1,结果 2 对应请求 2。
- content:工具函数返回的实际结果。
- 注意: 无论函数返回数字、列表还是字典,都需要将其转换为字符串(通常是 JSON 格式)放入此字段。
- is_error (可选):如果工具执行失败,设置为 true。
🔄 完整工作流程回顾 (Workflow Summary)
- 用户提问 → 提交给 Claude。
- Claude 响应 → 返回包含 tool use block 的助手消息。
- 系统执行 → 运行相应的工具函数,获取结果。
- 系统反馈 → 构造包含 tool results block 的用户消息,并将其与完整历史记录一起发送给 Claude。
- Claude 最终回复 → 返回最终的文本答案(包含工具执行结果)。
Takeaways
- 解析 Claude 返回的 tool use block,需将获取的字典参数通过解包(函数名(**参数字典))传递给工具函数。
- 后续请求必须包含完整的对话历史,并在末尾追加包含工具执行结果的 tool results block。
- tool_use_id 是核心字段,用于将工具执行结果与原始的工具调用请求进行精确匹配,尤其在调用多个工具时至关重要。
- 工具函数返回的实际结果(content)无论何种类型,都必须转换为字符串(通常是 JSON 格式)放入 tool results block。
抽认卡 10 张卡片
问题
点击显示 · ←/→
答案
点击翻回
知识检测 0 题
No quiz for this lesson yet.