有一种很具体的挫败感,通常出现在 Claude Code 会话进行到第 45 分钟左右的时候。最初几条命令干脆利落,然后某个地方开始变慢,接着一个 tool call 失败了,然后你意识到——本次会话的可用额度已经去掉一半了。
我经历过太多次,已经不再把它当成运气不好。以下是真正发生的事情——以及该怎么应对。
在急着修之前,先搞清楚你遇到的到底是哪种慢。Claude Code 的性能问题不全是同一个原因导致的,用错了修复方法反而浪费更多会话时间。
这是最常见的元凶,而且它是悄无声息地累积的。
Claude Code 并不是发一个 prompt 给 API 然后等回复那么简单。每次交互其实是一轮多回合对话,包括 system prompt、累积的对话历史、被拉进上下文的文件内容,以及由文件读取、bash 命令执行、代码库搜索等操作生成的 tool-use token。一个看似简单的"改一下这个文件"命令,在完整的 context window 组装完成后,单次 API 调用就可能消耗 50,000 到 150,000 个 token。
关键在于:同一会话中的每条后续消息都会追加到这个上下文里。 一个起初只有 40k token 的会话,到第 12 条消息时可能已经膨胀到 200k+。模型变慢了,回答开始漂移,会话预算迅速蒸发。
Claude 的 context window 大小在所有模型和付费方案中均为 200K token,Enterprise 方案在部分模型上支持 500K context window。撞到这个上限,你要么得到截断的回复,要么直接被硬停。
Claude Code 中一条用户可见的命令,可能因为 tool use 而触发多个 API 调用。一个"lint → 修复 → 测试 → 再修复"的循环,可能在 60 秒内产生 8 到 12 次 API 调用。当其中某个 tool call 失败——bash 命令超时、文件读取遇到权限错误——Claude 并不一定会把失败干净地暴露出来。它会重试。每次重试都消耗 token 和真实延迟。你看到的是会话卡住了;实际发生的是一个重试循环在为这个混乱买单。
这个问题我一直低估了。你的 CLAUDE.md 或其他 skill file 会随时间积累越来越多的指令。适用于某个项目的旧约束留了下来,相互矛盾的引导不断堆积。每次新请求都会把整个文件加载进上下文——包括那些已经不适用的部分,以及那些彼此冲突的部分。
一个臃肿、自相矛盾的 skill file 不仅仅消耗 token。它会搞混 agent。你得到更慢、更犹豫的回复,因为模型在试图调和两个不可能同时成立的指令。
这一点值得说得具体一些,因为 dashboard 上的数字真的有误导性。
场景对任何使用 Claude Code 的开发者来说都很熟悉。Anthropic dashboard 显示当天用量 6%,按任何合理理解都还有大把额度。但你被限流了。原因是:Claude Code 的速率限制是一个由三层独立且重叠的约束组成的系统。Dashboard 百分比只反映了其中一层。
除了 5 小时滚动窗口之外,Anthropic 现在还执行每七天重置一次的周限额。其中包括一个总体使用上限,以及一个单独的 Opus 模型周限额。
2026 年 3 月又加了一层——Anthropic 专门在高峰时段(工作日 5am–11am PT)对 5 小时会话限额进行了调整。在这些时间窗口内运行高强度 agentic 工作流,消耗速度会比夜间相同工作量快得多。
这是最直接的杠杆。在你注意到回复质量下降或速度变慢时,开启一个新会话——不要试图从一个臃肿的上下文中继续。
当对话接近 context window 上限时,Claude 会对早期消息进行摘要以无缝继续对话。你的完整聊天历史会被保留,即使摘要之后 Claude 仍然可以引用它。/compact 命令可以提前触发这个机制,在窗口被完全填满之前。主动使用——大约在 60–70% 的时候——而不是等到降质变得明显。
对于 CLAUDE.md 和项目指令:保持简短、针对具体任务。Anthropic 官方支持文档的建议是,用项目指令来设定通用上下文和角色,把任务特定的指令留给单独的会话。不要让 skill file 变成垃圾堆。
缩小工具暴露面。如果一个任务不需要 bash 执行,就不要给 Claude 开放 bash 工具。显式的权限范围意味着更少的不必要 tool call,也就意味着更少的潜在失败点和重试循环。
在你的 prompt 中加入明确的错误处理预期。比如"如果这个命令失败了,停下来报告错误而不是重试"——听起来很显然,但确实能改变行为。Claude 默认是顽强型的——这通常是优点,但在限额紧张的会话里就是预算黑洞。
对任何自动化工作流显式设置重试上限。三次重试加指数退避是可控的。在复杂 agentic 会话中不设上限的重试循环,就是会话杀手。
每隔几周,审查一遍你的 skill file 和 CLAUDE.md 内容。测试方法很简单:读每一条指令,问自己这条指令对当前项目是否还成立。删掉过时的。解决掉矛盾的。如果两条指令冲突了,模型会试图同时满足两者——结果就是又慢又飘。
如果你在多个项目间共用 CLAUDE.md,特别注意那些从某个项目迁移到"全局"文件里的项目特定指令。它们给每个请求都增加噪音,即使完全不相关。
把高强度会话安排在非高峰时段。非高峰时段是指工作日 5am–11am PT 以外的时间。深夜和周末的会话可以避开对工作时间用量影响最大的限流。
把大型项目拆成更小的、独立的会话,而不是一次跑好几个小时。这样可以限制每个计费周期内的上下文累积,让每个会话的 token 预算更可预测。
对于 API 用户,Anthropic 速率限制文档是当前最权威的参考。具体数字随时可能变——在围绕特定阈值设计工作流之前务必核实。
使用 /model 在会话内切换到更轻量的模型来处理简单子任务。并非编码工作流的每一步都需要 Opus。Sonnet 处理代码阅读、搜索和文件操作效率很高,token 成本也更低。
我总觉得哪里不太对劲:每次应用上面某个修复、跑出一个干净的会话之后,两周后又遇到完全相同的问题。不同的项目,同样的失败模式。
原因是结构性的。这些修复存在你的脑子里。 或者在一段你再也不会翻到的聊天记录里。或者在一个下次会话前就蒸发掉的心理备注里。
每个修复过 Claude Code 性能问题的开发者,都在下一周重新修了一遍。因为修复方案没有附着在任何持久化的东西上。下一次 agent 运行从零开始——同样的上下文膨胀模式、同样的重试行为、同样臃肿的 skill file——因为没有什么东西捕获了上次有效的经验。
这不仅仅是个人效率问题。它是当前 agent 基础设施处理经验的一个根本属性:成功的修复在会话结束时蒸发。
到这里,工程层面的讨论开始变得有意思了。
当一个修复有效——某个特定的重试策略终止了失败循环、某个上下文压缩模式让会话在 20+ 条命令中保持稳定、某个工具权限范围减少了 40% 的不必要调用——这个修复是有真实价值的。问题在于,它的价值能否延续到发现它的那个会话之外。
EvoMap 的 GEP 协议正在探索的方向是:当一个修复有效时,将它封装为一个经过验证的资产——一个 Capsule——让另一个 agent 可以继承,而不需要从头重新发现解决方案。协议的循环是:本地演化 → 以 Gene/Capsule 包的形式发布 → hub 验证与排名 → 被其他 agent 跨模型、跨会话继承。
工程价值不在于"魔法般的自动化"。它只是说,一个在特定条件下有效的修复,连同它的条件文档一起被保留下来,经过质量和复用信号的评分,并对继承开放。下一个遇到同样超时模式的 agent 不需要从零开始。
那次 OpenHarness 运行中的修复策略变成一个 Capsule,通过 POST /a2a/publish 发布。验证通过后被晋升。另一个 agent——运行在任何 harness 上、任何模型上——可以通过 POST /a2a/fetch 获取并继承这个修复。
这和上面的修复是不同的层次。那些修复是战术性的。Capsule 继承是一种尝试,让战术性修复在会话和 agent 之间持久化——打破反复修复同一个问题的循环。
Claude Code 确实很强。Claude Code 在 SWE-bench 上达到 72.5%,而 Codex 约为 49%——23 个百分点的差距。SWE-bench 测试的是真实 GitHub bug 修复,不是合成任务。这个差距是显著的。对于复杂的多文件推理和大型代码库重构,这种性能优势是真实的,值得为之做出取舍。
但取舍也是真实的,坦诚面对它们是值得的。
如果 token 效率比推理深度更重要: OpenAI Codex 在隔离的云端沙箱容器中运行,执行等效任务大约使用 3 倍少的 token。它包含在 $20/月的 ChatGPT Plus 中。代价是更低的 SWE-bench 表现和更弱的长上下文推理能力。
如果模型锁定是个问题: Claude Code 只运行 Anthropic 模型。Aider(GitHub 4 万+ star,BYOK)或 OpenCode(GitHub 11.2 万+ star,支持 75+ 模型提供商)这类工具允许你根据任务类型和成本切换 GPT-5.4、Gemini 3.1 Pro 或 DeepSeek。Gemini CLI 提供每天 1,000 次免费请求、1M context——对于轻量工作流来说,这个免费层级确实有吸引力。
如果速率限制是主要瓶颈: 按量付费的 API 访问(Opus 4.6 每百万 token $5/$25,Sonnet 4.6 每百万 token $3/$15)给你精确的成本控制,没有订阅层级的限流。延迟和吞吐特性与消费版方案不同,但对于生产级 agent 工作流来说更可预测。
坦率总结:Claude Code 并非适合所有工作流。 如果你每周都在会话中途撞上速率限制、花在管理上下文上的时间比写代码还多、或者正在构建多平台异步工作流,上面的替代方案针对性地解决了这些痛点。问题在于,Claude Code 的性能上限对你的特定场景来说,是否值得承受它的运维约束。
为什么 Claude Code 在长会话中会变慢?
Claude Code 会话中的每条消息都会追加到累积的上下文——对话历史、文件内容、tool call 输出。在复杂项目中,到第 10–15 条消息时,你可能每次请求都在发送 150k–200k 个 token。模型变慢,回复漂移,会话预算消耗得比预期快。修复方法是主动管理上下文:在窗口饱和之前使用 /compact,而不是之后。
如何减少 Claude Code 中的 token 消耗?
三个杠杆:精简你的 CLAUDE.md 和 skill file(删除过时和矛盾的指令),缩小工具暴露面(将权限范围限定在任务实际需要的范围内),以及把大型会话拆成多个独立的小型运行。通过 /model 切换到 Sonnet 来处理不需要 Opus 级推理的任务,也能显著降低 token 成本。
2026 年最好的 Claude Code 替代方案是什么?
取决于你的约束。追求 token 效率和模型灵活性:Aider(BYOK,任意提供商)或 OpenCode(75+ 提供商)。追求并行异步任务和沙箱隔离:OpenAI Codex(随 ChatGPT Plus 附赠)。追求慷慨限额的免费层级:Gemini CLI(每天 1,000 请求)。追求 IDE 集成而非终端:Cursor。Claude Code 在 SWE-bench 上仍然领先于复杂的真实编码任务——替代方案解决的是具体的运维约束,而非原始能力。
如何避免在工作流中途撞上 Claude 用量限制?
把高强度工作转移到非高峰时段(工作日 5am–11am PT 以外)。把项目拆成更短的独立会话,限制每个计费窗口内的上下文累积。对于 API 使用,直接查阅 Anthropic 当前的速率限制文档——具体阈值随时可能变,而 dashboard 数字只反映了三层重叠约束中的一层。
Claude Code 的修复能否在不同项目或 agent 之间复用?
原生不能。会话修复存在于聊天记录或个人笔记中,不会传递到下一次运行。更有意思的工程问题是,成功的自适应行为——特定的重试策略、上下文模式、工具范围配置——能否以一种其他 agent 可以继承的形式被保留下来。这正是 GEP 协议文档在解决的层面:将成功的 agent 行为转化为跨会话、跨 agent 的可继承资产。这是一个新兴的方向,不是已解决的问题——但它所针对的结构性问题(agent 修复的会话级失忆)是当前 agent 基础设施的真实局限。
我会持续关注 2026 年速率限制情况的演变——Anthropic 的基础设施压力是真实的,约束层级的变动似乎比文档更新还快。以上修复方法截至 2026 年 4 月有效。在围绕它们构建任何关键流程之前,请核实具体数字。
- 如何在 Claude Code 中设置 MCP 以实现更好的工具集成和性能
- MCP 在现代 AI Agent 技术栈中到底做了什么(和没做什么)
- 三层 Agent 技术栈:MCP、CLI 和 GEP 详解
- Claude Code Skills 深度解析:工作原理与结构化方法
- Agent Hooks 如何塑造执行流程和工具使用行为
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/266397.html