摘要音频
本节课没有语音摘要。
学习笔记
🤖 对话流程与工具调用核心概念
🎯 核心目标 (Core Goal)
- run_conversation 函数:持续调用 Claude,直到 Claude 停止要求使用工具,生成最终回复。
- 循环机制:整个流程是一个循环,直到 stop_reason 不再是 "tool_use"。
🔍 工具使用判断 (Tool Detection)
- 判断依据:检查 Claude 响应消息中的 stop_reason 字段。
- 触发条件:如果 stop_reason 等于 "tool_use",则必须执行工具调用。
🔄 对话流程 (run_conversation 循环)
- 调用 Claude:在 while 循环中调用聊天函数。
- 历史更新:将 Claude 的响应添加到对话历史中。
- 检查停止原因:
- 如果 stop_reason 不等于 "tool_use" → 循环结束,返回最终回复。
- 如果 stop_reason 等于 "tool_use" → 调用 run_tools 函数。
🛠️ 工具执行逻辑 (run_tools & run_tool)
- run_tool (辅助函数):
- 封装工具的执行逻辑。
- 接收工具名称 (tool name) 和输入 (input),通过条件判断执行对应的工具函数,并返回结果。
- run_tools (主执行函数):
- 职责:接收 Claude 的工具请求,遍历所有请求,执行相应的工具,并将所有工具结果汇总。
- 多工具处理:必须能够处理单个消息中包含的多个工具使用块(multiple tool use blocks)。
- 流程整合:run_tools 返回工具结果块(list of tool result blocks),run_conversation 负责将这些结果添加到对话历史中,然后再次调用 Claude。
Takeaways
- run_conversation 是一个循环机制,持续调用 Claude 直到其 stop_reason 不再是 "tool_use"。
- 工具调用的触发条件是检查 Claude 响应消息中的 stop_reason 是否等于 "tool_use"。
- run_tools 函数负责接收并执行工具请求,关键在于必须能处理单个消息中包含的多个工具使用块。
- 工具执行后的结果必须被汇总并添加到对话历史中,作为下一次调用 Claude 的输入。
抽认卡 10 张卡片
问题
点击显示 · ←/→
答案
点击翻回
知识检测 0 题
No quiz for this lesson yet.