当 Claude 返回工具使用部分时，代码需要处理哪种潜在情况？	潜在地发送多个工具使用部分（即并行调用多个工具）。
在一个包含多个消息部分的列表中，如何识别一个工具使用请求（Tool Use Request）？	检查该部分对象是否包含 `tool use` 键。
在处理工具使用请求时，需要从请求中提取哪些关键信息？	工具使用 ID (tool use ID)、工具名称 (name) 和工具输入 (input)。
在工具执行过程中，如果工具名称不匹配或不存在，应该如何处理？	捕获错误（如 `else` 分支），并抛出包含工具名称的异常。
为什么在向 Claude 返回工具结果时，必须包含 `tool use ID`？	帮助 Claude 识别哪个输出结果对应哪个原始工具请求，尤其是在并行调用多个工具时。
向 Claude 返回工具结果（Tool Result Part）时，必须包含哪些核心属性？	工具使用 ID (tool use ID)、内容 (content) 和状态 (status)。
在将工具函数执行结果发送给 Claude 之前，需要对结果进行什么处理？	将结果序列化为字符串（JSON dump string）。
在生成工具结果时，为了确保程序健壮性，应该使用哪种编程结构来处理工具函数可能发生的失败？	使用 `try...except` 语句。
如果工具函数执行失败，在返回给 Claude 的工具结果中，状态（status）应设置为哪一项？	error。
在工具执行流程中，`run tools` 函数的主要职责是什么？	遍历接收到的所有消息部分，提取所有工具使用请求，并依次调用相应的工具。
