跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

按需加载外部工具

理解 tool search 的触发条件、MCP deferTools 和 custom agent 延迟加载。

Tool search 延迟加载外部工具的完整定义,减少模型上下文中未使用的工具信息。智能体先看到内置工具和外部能力概要,需要某类工具时再检索并加入定义。

何时使用

功能默认启用,但要求模型支持且工具数量足够。官方描述约少于 30 个工具时直接全部加载;这是近似阈值,不是用户可依赖的精确固定开关。

当前来源列出的支持范围是 Claude Mythos Preview、Fable、Haiku 4.5+、Sonnet 4.0+、Opus 4.0+,以及 GPT-5.4+。其他模型预先加载全部工具。模型支持范围会更新,以 verifiedAt 对应官方文档为准。

首轮搜索需要额外模型交互;已发现工具会保留在后续对话中,不是每次调用都重新搜索。内置 grep、glob、bash、edit 等始终可用。

全局停用

个人 settings.json 设置 "toolSearch": false 后回到预先加载全部工具。它改变工具定义的加载方式,不等于关闭 MCP server,也不代替工具权限规则。

固定加载某个 MCP server

单个 server 的 deferTools 默认为 "auto";设为 "never" 可让它的工具始终加载。可通过 /mcp edit 把 Defer Tools 改成 Never,或在现有 mcp-config.json 中的相应 server 定义添加:

{
  "deferTools": "never"
}

这是 server 对象中的字段片段,不能单独作为完整 MCP 配置文件。

Custom agent 的显式工具

Custom agent 按名称列出的工具默认立即加载。若名单很大、每次只使用少数,可在 agent frontmatter 中设置:

deferred-tool-loading: true

它只有在 tool search 已生效、agent 明确列出工具时才改变行为。工具列表使用 * 的 agent 本来就使用 tool search,无需为这个目的再配置。

改善工具发现

搜索匹配工具名称、描述以及参数名称和描述。编写 server 或工具时,用具体动作和用户会搜索的术语描述能力;含糊名称会让智能体更难找到正确工具。

更多工具定义并不保证更好结果。检查上下文占用后,再决定哪些工具应固定加载,哪些适合延迟。