Contextrot:我其实想知道我的 Claude Code 是否随着上下文增加而变差,这个工具给出了答案(我的没有)。
摘要
Contextrot 是一个开源工具,用于分析 Claude Code 会话记录,以衡量随着上下文窗口填满,失败率是否增加。作者发现自己的会话中没有可测量的上下文衰减。
过去几个月我重度使用 Claude Code,一直好奇那种长时间会话逐渐变得不可靠的感觉到底是真实的还是确认偏误。Claude Code 已经为每次会话存储了详细的 JSONL 记录,所以我决定构建一个工具来分析这些日志,而不是依赖传闻。结果就是 contextrot。它解析你本地的 Claude Code 会话历史,并在会话过程中寻找若干行为信号,包括:失败的或错过的编辑、重试循环、重新读取文件、自我纠正、工具错误。然后它将这些信号与上下文填充程度相关联,以判断失败率是否真的随上下文窗口增长而增加。与其他总是报告问题的工具不同,它可以返回四种结论之一:检测到上下文衰减、边缘衰减、无可测量的上下文衰减、数据不足。有趣的是,它没有发现可测量的上下文衰减——我的失败率在上下文填充过程中基本保持平稳,说实话这出乎我的意料。我的设计目标之一是确保该工具也能告诉用户他们的工作流程是否没有显示出统计上显著的退化。一切完全本地运行:无需 API 密钥、无需遥测、无需网络请求。你的 Claude Code 会话记录永远不会离开你的机器。它是开源的(MIT 许可证),免费使用。`uvx contextrot` 或 `pip install contextrot` 然后运行 `contextrot`。如果遇到问题,请访问我的 GitHub 自述文件,其中包含了你可能遇到的常见问题及解决方法。👇 我非常希望得到其他 Claude Code 用户的反馈。如果你能提供它对你 Claude 会话生成的报告,以便我分析这些数据并使其更可靠,那就更好了。我尤其好奇以下几点:不同模型是否表现出不同的退化模式?大量 MCP 使用是否会影响结果?你认为我应该测量但目前遗漏了哪些失败信号?对其他编码代理(如 Codex CLI、Gemini CLI、OpenCode 等)的支持是否有用?由于这是基于观测数据而非受控基准,我也很乐意讨论方法论或任何实现细节,如果有人感兴趣的话。更多视觉效果和背景信息,请参阅下方评论中的 GitHub 链接 👇
相似文章
上下文至关重要,但上下文腐烂才是AI智能体的真正上限,更大的上下文窗口只会让情况更糟而非更好
文章认为,上下文腐烂(即随着上下文填充导致推理质量下降)是AI智能体的真正上限,而非上下文窗口大小。它提倡采用架构方法分解任务并使用独立验证来超越限制。
上下文腐烂是智能体在长任务中途崩溃的原因。
文章解释了“上下文腐烂”:随着上下文增长,AI 智能体在长任务上表现下降,甚至在窗口未满时就开始退化,并提供了压缩、状态卸载、按需检索等技术来保持可靠性。
每次我从Cursor切换到Claude Code,都会丢失一半项目上下文
一位开发者分享了在Cursor、Claude Code和Codex之间切换时丢失上下文的困扰,以及他们如何使用MEMMY解决这一问题。MEMMY是一个将聊天历史同步到所有代理共享记忆中心的工具。
@tom_doerr: 将 Claude Code 和 Cursor 的 token 成本降低 60-95% https://github.com/yvgude/lean-ctx
lean-ctx 是一个基于 Rust 的开源上下文运行时,通过文件读取压缩和 Shell 输出优化,将 Claude Code、Cursor、Copilot 等 AI 编程助手的 token 成本降低 60–95%。它以 Shell Hook 和 MCP Server 的形式运行,提供 56 个工具及多种读取模式。
@GergelyOrosz: 试图弄清楚,在上下文窗口中使用更多上下文(我称之为上下文深度),在更长的运行中,错误会如何累积/代理会如何漂移……
Gergely Orosz 指出,在AI代理的上下文窗口中使用更多上下文进行更长的运行会增加错误和漂移,建议使用更短的运行和更少的上下文以提高可靠性。