96SEO 2026-07-03 00:08 0
Claude Code 的延迟加载机制,说白了就是通过一个叫 defer_loading 的字段来控制工具 schema 的可见性。哈哈,你是不是也觉得这个名字起得挺有意思的?
function toolToAPISchema { const schema = { name: base.name, description: base.description, input_schema: base.input_schema, }; if { schema.defer_loading = true; } return schema;}
带 defer_loading: true 的工具在 API 侧的行为就不同了:模型只Nengkan到工具的名称和描述,kan不到完整的参数 schema。这正是延迟加载的核心——通过一个 API 字段,控制工具 schema 的可见性。

咱就是说在讲延迟加载之前,得先了解 Claude Code 是怎么把工具传给大模型的。
{ "name": "Bash", "description": "Executes a given bash command and returns its output.", "input_schema": { "type": "object", "properties": { "command": { "type": "string", "description": "The command to execute" } }, "required": }}
这就是工具传入大模型的基本流程。说实话,这个流程挺清晰的,但问题在于,当工具数量一多,schema 的 token 成本就不可忽视了。
MCP 工具带来的挑战MCP 工具来自外部服务器——用户Ke以配置任意数量的 MCP 服务器,每个服务器Ke以提供任意数量的工具。
const toolSchemas = await Promise.all, }), ),);
toolToAPISchema 的核心逻辑就在这里了:根据 willDefer 的结果决定是否设置 defer_loading: true。
function isDeferredTool: boolean { // alwaysLoad 优先——MCP 工具Ke以通过 _meta 设置此标志 if return false; // MCP 工具默认延迟 if return true; // ToolSearch 自身不Neng被延迟——模型需要它来加载其他工具 if return false; // 内置工具通过 shouldDefer 显式标记 return tool.shouldDefer === true;}
判定规则:MCP 工具默认延迟,内置工具kan情况,ToolSearch 不Neng延迟。
判定结果通过 willDefer 函数传入 toolToAPISchema,后者在工具的 API schema 上加上 defer_loading: true 标记:
被标记为 defer_loading 的工具,API 只会收到名称和描述,不会拿到完整的 inputSchema。
ToolSearch 的关键作用ToolSearchTool 是整个延迟加载机制的关键枢纽。它是唯一一个始终加载的工具,负责在模型需要时加载其他工具的完整 schema。
模型 → ToolSearch → 获取参数 Schema模型 → CallTool → 由 CallTool 转发给实际工具执行
这个流程的关键在于:模型先通过 ToolSearch 获取目标工具的完整参数定义,然后才Neng正确调用它。
defer_loading 怎么解决实际问题?MCP 工具有个根本特点:数量不可预测。用户Ke以随时添加或删除 MCP 服务器,这意味着可用工具集可Neng在会话中动态变化。
defer_loading 需要模型侧配合——它是一个 API 级别的特性,不是所有模型douNeng处理。Claude Code 在构建 API 请求前会检查当前模型是否支持:
const toolSearchEnabled = isToolSearchEnabled
defer_loading 与 Prompt Cache
defer_loading 还意外地解决了另一个geng隐蔽的问题:Prompt Cache 无效化。当 MCP 配置变化导致可用工具列表改变时Ru果所有工具dou内联发送,system prompt 会变化,导致缓存失效。而 defer_loading 让大部分情况下 prompt cache Ke以复用:Yi有的缓存依然有效,即使 MCP 配置变了也不受影响,因为 deferred tools 不影响实际的缓存 key。
"为什么百度不收录我的文章?"这个问题你是不是也遇到过?简单说吧,百度不收录主要就三个原因:
Sitemap 没提交或没geng新:Sitemap 是搜索引擎理解你网站结构的关键,没提交的话搜索引擎不知道你有啥新内容;geng新不及时的话,新文章自然就没机会被收录呗。你得确保 Sitemap 里有Zui新的文章链接,并且Neng让百度顺利抓取到。
"robots.txt" 配置有问题: "robots.txt"就像个门卫一样,控制着搜索引擎爬虫Neng访问你网站哪些部分。Ru果配置不当,那就算你 Sitemap 提交得再勤快也没用,新文章还是没法被发现。你Ke以检查下这个文件,确保没有误伤正常页面。
"内容质量不过关": 百度比较kan重内容的原创性和价值度。Ru果你的文章质量不高、信息过时或者和其他网站的内容重复太多,那收录率自然就上不去。你Ke以试试提升内容质量,比如加点原创观点、优化排版之类的,让它geng有吸引力一些。
所以啊,想让百度收录你的文章,就得在这三点上下功夫。
defer_loading vs 内联发送,各有优劣吧!相比之下defer_loading 的方案让 API 在工具被调用时拥有完整的 Schema 定义,这样Zuo的好处是校验是自动的,但其问题就在于延迟加载需要重复计算缓存,各有利弊吧!
总之呢,Claude Code 通过 defer_loading机制hen好地解决了上下文窗口膨胀的问题,让 Claude Code Neng支持几乎无限数量的 MCP 和内置组合,同时保持上下文窗口的高效利用。 Ru果你觉得这篇文章对你有帮助,Ke以点赞、收藏,也欢迎关注我!
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback