不要相信大上下文窗口
我最近观看了一段视频,它给我一直以来的感觉命名。作者把大型语言模型(LLM)的上下文窗口分为两个区域。一个是智能区,模型表现出色;另一个是愚蠢区,注意力下降,模型开始忘记你五分钟前告诉它的内容。这个切分点大约在10万个标记处。广告中宣称的上下文窗口大小无关紧要。这一点很重要,因为编码代理会乐意把你引导到愚蠢区。现代代理快速消耗标记。几次文件读取,一次长时间的调试会话,一次大规模的测试运行,在午餐前你可能就消耗到10万个标记。与此同时,供应商继续宣传200k、1M甚至2M的窗口,仿佛这些数字代表了可用的工作集。但事实并非如此。像RULER和Chroma的上下文衰退报告等研究表明,有效的上下文只是宣传数字的一小部分,且随着窗口的填充,性能逐渐下降。大上下文窗口主要是一个营销数字。其背后的架构确实有效,但它掩盖了一个底层注意力机制并没有真正解决的问题。每次发布后盒子上的数字都会更大,而可用的部分并没有跟上。现代代理对此越来越聪明。像Claude Code这样的工具现在可以自动压缩:当会话变长时,代理会总结历史并重新开始。这有所帮助。但自动压缩是在你已经陷入愚蠢区之后才开始生效的,而该摘要本身是由一个已经退化的模型生成的。这总比没有好,但我宁愿完全避免这种情况。我做的是打开一个新会话并传递一个我自己写的规格。这比任何自动摘要都要高得多,因为我可以决定接下来什么是重要的。这是给代理应用面包屑方法。留下一个文档,让下一个会话或下一个人可以干净地接手。你可以把这做得更远。像obra/superpowers和mattpocock/skills这样的项目围绕小型命名文档结构化整个代理工作流。PRD、计划、技能、子代理交接。每一个都是通过故意把信息从会话中移动到下一次会话可以读取的内容中,来保持工作会话在智能区的方法。因此,我把我的上下文窗口视为一个预算。我假设只有第一块真正为我工作,而每一个我可以从实时会话中移动到书面文档中的东西,都是让注意力不再争夺的一件事。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡