Claude On Google Cloud
← 所有课程
课程 34Claude On Google Cloud

Implementing multiple turns

摘要音频

本节课没有语音摘要。

学习笔记

🤖 对话流程与工具调用核心概念

🎯 核心目标 (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 张卡片
问题
点击显示 · ←/→
答案
点击翻回
导出到 Anki (.tsv) ↓
知识检测 0 题

No quiz for this lesson yet.