某 Claude Code 技能在响应前加载超过 20 万 token,存在严重的 prompt 注入或上下文膨胀问题,已被修复。
We're so glad you're be here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.
Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.
Follow TNS on your favorite social media networks.
Become a TNS follower on LinkedIn.
Check out the latest featured and trending stories while you wait for your first TNS newsletter.
一个用于帮助开发者接入 Anthropic API 的 Claude Code skill,在回答第一个问题之前就消耗了超过 200,000 个 token。Anthropic 表示,在 Claude Code v2.1.234 中,他们已将这个数字降低到大约 25,000 个 token。
这一变更出现在周一的 Claude Code 更新日志中。Anthropic 将这次削减(至少降低 85.7% 的初始上下文成本)归功于按需加载 skill 的参考文档。在这个案例中,单个打包的 skill 消耗的 token 数量比许多完整 coding session 还要多。
Skill 一次性加载了所有内容
内置的 /claude-api skill 会为使用 Claude API 和 Managed Agents 的开发者加载参考资料,它可以直接调用,Claude Code 也可以在项目引入 Anthropic 的 Python 或 TypeScript SDK 时自动激活它。有趣的是,在 Anthropic 官方记录修复方案之前,开发者们已经追踪到了这个问题。
在 7 月 7 日提交的一个 GitHub issue 中,一位开发者在检查 Claude Code 2.1.201 时发现,/claude-api 将其共享参考文件和检测到的语言文档直接嵌入到了 skill 主体中。该报告测量到单次调用中大约有 120,000 个 token 的参考材料。仅仅一份迁移文档就占了约 36,000 个 token。
一份迁移文档就占了约 36,000 个 token。
一旦 skill 剩余部分加载完毕,即使是一个一行的问题,在 Claude 开始回答之前也会消耗大约 200,000 个 token——这种隐藏的开销,就像更广泛的生产级 AI 管道一样,只有在有人实际测量时才会暴露出来。该 issue 被关闭为重复 issue,并标记为"不计划修复",尽管类似的报告仍在不断涌入。
8 月 4 日提交的第二个 bug 报告,发现了一个特别昂贵的回退逻辑。当 skill 在 prompt 审计期间无法检测到项目语言时,它会加载 C#、cURL、Go、Java、PHP、Python、Ruby 和 TypeScript 的文档,以及 26 个共享 Markdown 文件。打包后的目录大小为 812,650 字节。而在复现过程中,实际任务只需要一个 32,954 字节的文件。
大量的本地参考库为 agent 提供了有用的素材,但将其内联却迫使 agent 每次请求都要读取全部 812 KB,即使其中大部分内容毫不相关。
大量的本地参考库为 agent 提供了有用的素材,但将其内联却迫使 agent 每次请求都要读取全部 812 KB,即使其中大部分内容毫不相关。
上下文窗口悄然填满
Anthropic 官方的 Claude Code 最佳实践指南警告说,随着窗口填满,性能会下降,模型更容易丢失早期的指令或犯错。这种模式并不局限于 Claude Code:AI 编码的"空白支票"时代正在结束,正是因为无节制的 token 消耗会同时损害质量与成本。
一旦 skill 加载完成,其内容就成为开发者可能永远看不到的固定开销,在企业规模下形成了一个继承性的问题。Claude Code 的文档指出,skill 主体会跨轮次保留在上下文中,尽管开发者看到的可能只是小得多的请求和响应。
将 skill 削减到大约 25,000 个 token,为代码库和实际工作留出了更多空间。Anthropic 没有解释 Claude 如何选择加载哪些文档,只说明参考资料现在是按需拉取的。
按需加载:用读取次数换取空间
Anthropic 的 skill 文档指出,SKILL.md 应包含核心指令和链接,而 API 规范、示例和其他详细材料应放在辅助文件中,Claude 只在需要时才打开它们。
该指南将加载分为三个阶段:始终存在的一小部分元数据、skill 触发时加载的 SKILL.md 主体,以及任务执行期间按需拉取的打包资源。旧的 /claude-api 行为模糊了后两个阶段的界限——一旦 skill 运行就立即加载所有参考资料。
使用按需加载,Claude 在识别出相关语言或 API 特性后,可能需要额外读取一次文件。
使用按需加载,Claude 在识别出相关语言或 API 特性后,可能需要额外读取一次文件。但它只为与任务相关的材料支付这个代价。随着 agentic 工作流使 token 成本成为 AI 预算中增长最快的支出项,这一点变得越来越重要。