Claude With Amazon Bedrock
← 所有课程
课程 30Claude With Amazon Bedrock

Running tool functions

摘要音频

本节课没有语音摘要。

学习笔记

📚 学习笔记:工具调用流程 (Tool Use Workflow)

一、 核心概念:并行工具调用 (Parallel Tool Use)

  • 潜在风险 (Gotcha): Claude 在响应中可能同时发送多个工具使用请求 (multiple tool use parts)。
  • 处理需求: 代码必须具备防御性 (defensive),能够处理并执行所有请求,而非仅处理第一个。

二、 接收与提取工具请求 (Extract Tool Requests)

  • 目标: 从接收到的 parts 列表中提取所有工具使用请求。
  • 方法: 遍历 parts 列表,筛选出包含 tool use 键的元素。
  • 提取信息: 针对每个请求,必须获取以下关键信息:
  • tool use ID (工具使用 ID)
  • name (工具名称)
  • input (工具输入参数)

三、 工具执行逻辑 (Tool Execution)

  • 执行函数 (run tool): 编写一个辅助函数,负责根据 name 和 input 实际运行工具。
  • 参数传递: 接收工具输入时,需要使用解包操作 (splatting) 将字典内容传递给工具函数。
  • 错误处理 (Error Handling):
  • 必须包含 else 或 try... except 结构。
  • 如果工具名称不匹配或不存在,应抛出异常 (raise exception),并记录错误信息。

四、 返回工具结果 (Return Tool Results)

  • 结构 (tool result part): 工具执行完成后,必须将结果封装成 tool result part 发送回 Claude。
  • 关键属性:
  • tool use ID: 核心标识。用于将工具执行的输出结果与最初的工具请求进行精确匹配。
  • content: 工具执行的输出结果,必须序列化为字符串 (string)。
  • status: 状态标志,必须是 success 或 error。

Takeaways

  • 代码必须具备防御性,能够处理 Claude 可能同时发送的多个并行工具使用请求。
  • 接收工具请求时,需要遍历 parts 列表,提取每个请求的 tool use ID、name 和 input。
  • 工具执行逻辑必须包含错误处理结构,以应对工具名称不匹配或不存在的情况。
  • 工具执行完成后,结果必须封装为 tool result part 并发送回 Claude。
  • tool use ID 是返回工具结果时进行请求与输出精确匹配的核心标识。
抽认卡 10 张卡片
问题
点击显示 · ←/→
答案
点击翻回
导出到 Anki (.tsv) ↓
知识检测 0 题

No quiz for this lesson yet.