在单个助手消息中，Claude 为什么有时无法生成多个工具使用块（tool use blocks）？	尽管 Claude 有能力生成多个工具使用块，但在实际操作中，它并不总是会这样做。
提高 Claude 在单次消息中调用多个工具的概率，可以采用什么技巧？	实施一个“批处理工具”（batch tool）。
什么是“批处理工具”（batch tool）？	它是一种更高层次的抽象（abstraction），用于封装和管理多个工具的调用。
当 Claude 决定并行运行多个工具时，它会调用什么工具？	它会调用批处理工具（batch tool），而不是直接调用各个工具。
在批处理工具的调用中，Claude 会提供什么样的参数？	它会提供一个包含多个对象的列表（list of objects），每个对象代表一个需要调用的工具。
批处理工具的实现（run_batch）主要负责做什么？	它负责遍历 Claude 请求的所有调用（invocations），并执行相应的底层工具。
在批处理工具的调用中，工具的参数是如何编码的？	参数是以 JSON 字符串的形式传递的。
在实现 `run_batch` 函数时，处理工具参数的第一步是什么？	使用 `JSON.load` 来解析传入的 JSON 字符串。
批处理工具的最终目标是什么？	实现多个工具的并行执行（parallel execution）。
在批处理工具的实现中，如何收集和返回所有工具的输出？	遍历所有调用，执行工具，并将每个调用及其结果记录在一个列表中返回。
