Claude Code 如何判断工具调用该并发还是串行?
Claude Code 如何判断工具调用该并发还是串行? 在 Claude Code 里,模型经常会调用工具,比如读文件、搜索代码、执行 Bash 命令、编辑文件等。 一个很自然的问题是: Claude Code 是怎么知道多个工具应该并发执行,还是一个一个串行执行的? 答案可以概括为一句话: 模型负责决定“这一轮要不要发多个工具调用”,客户端负责判断“这些工具能不能安全并发执行”。 一、整体流程 Claude Code 并不是靠模型返回一个明确的 parallel: true 或 serial: true 字段来判断。 它的逻辑分成两层: 提示词层:告诉模型什么时候应该一次性发多个工具调用 执行层:客户端根据工具的安全属性决定是否真的并发执行 流程大概如下: flowchart TD A[用户提出任务] --> B[系统提示词指导模型] B --> C{任务之间是否独立?} C -->|独立| D[模型在同一轮返回多个 tool_use] C -->|依赖| E[模型先返回一个 tool_use] D --> F[客户端收到多个工具调用] E --> F F --> G{工具是否并发安全?} G -->|是| H[并发执行] G -->|否| I[串行执行] H --> J[返回 tool_result] I --> J J --> K[模型继续下一轮推理] 二、模型侧:通过提示词引导并发 Claude Code 的系统提示词里有类似这样的规则: ...