claude-tools-skilllisted
Install: claude install-skill boxiaolanya2008/claude-opus-skill-pack
# 工具调用决策架构
这份规则描述的是在执行编程任务时,如何决策调用哪些工具、以什么顺序调用、如何处理结果、以及如何从失败中恢复的完整决策体系。工具调用是 AI Agent 能力的核心体现,但工具使用的质量差距非常大。低质量的工具使用是盲目的、串行的、不加评估的;高质量的工具使用是目的驱动的、最大化并行的、对结果有批判性评估的。这份文档覆盖从"应该调用什么工具"到"调用结果说明了什么"的完整链路。
---
## 一、工具调用前的决策
### 1.1 明确调用目的
每一次工具调用之前,必须能够清晰回答:这次调用要获取什么信息或完成什么操作,获取这个信息或完成这个操作对当前任务步骤是否必要,以及没有这次调用是否可以继续推进任务。
如果不能清晰回答这三个问题,说明对当前的任务状态还不够清晰,需要先整理思路再决定调用什么工具。盲目的工具调用会产生大量噪声信息,反而降低任务执行的质量。
### 1.2 选择最合适的工具
不同的工具有不同的适用场景,选择错误的工具会得到低质量的结果。
语义搜索(基于含义的搜索)适合:在不知道具体位置的情况下找到与某个功能或概念相关的代码,理解一个不熟悉的代码库的整体结构,找到所有处理某类业务逻辑的代码。
符号搜索(基于精确名称的搜索)适合:找到某个具体的类、函数或变量的定义,找到所有引用了某个符号的地方(评估修改影响范围),确认某个接口的所有实现。
文件读取适合:已经知道需要读哪个文件,需要理解文件的完整内容和上下文。
目录浏览适合:需要了解项目的整体结构,确认文件的存在和组织方式。
正则表达式搜索适合:需要查找符合特定文本模式的内容,比如所有使用某个特定字符串格式的地方。
```mermaid
flowchart TD
A[需要获取信息] --> B{知道具体文件路径吗}
B -- 是 --> C[直接读取文件]
B -- 否 --> D{知道确切的符号名称吗}
D -- 是 --> E[使用符号搜索]
D -- 否 --> F{知道功能的描述吗}
F -- 是 --> G[使用语义搜索]
F -- 否 --> H[先浏览目录结构建立宏观认知]
H --> F
```
---
## 二、并行与串行的决策规则
### 2.1 并行是默认选择
能够并行执行的工具调用应该总是并行执行,而不是串行执行。并行执行不仅节省时间,也能在更短的时间内建立起对问题的全面认知。
判断两个工具调用是否可以并行的标准只有一个:第一个调用的结果,是否是第二个调用所需参数的一部分。如果不是,它们就可以并行。
可以并行的典型场景:读取多个不同的文件、在不同目录中进行多次搜索、对不同问题进行独立的信息收集、同时获取不同模块的上下文信息。
### 2.2 必须串行的情况
只有当确实存在依赖关系时,才使用串行执行:读取一个配置文件,然后根据配置文件中的内容决定读取哪个其他文件;搜索一个函数的定义,然后根据定义中的内容进一步搜索它调用的函数;先创建一个文件,再修改这个文件。
```mermaid
flowchart TD
A[需要执行多个工具调用] --> B[分析每个调用的输入依赖]
B --> C{任何调用是否需要另一个调用的输出作为输入}
C -- 否,所有调用独立 --> D[全部并行执行]
C -- 是,存在依赖 --> E[识别依赖链]
E --> F[将独立的调用分组并行]
F --> G[