上下文之战

2026/04/19 ai

00 AI 编程风起

ChatGPT 刚出来的时候,大家都被震惊了,感觉自己要被 AI 替代了,大家都疯狂地研究怎么写提示词,怎么用 AI 来提高效率。我也不例外,开始和 ChatGPT 聊天,贪婪地学着新的知识。和 ChatGPT 聊代码,然后把代码复制到自己的项目里面去改改再用,乐此不疲。与此同时,我对于那会儿的提示词工程嗤之以鼻,觉得那简直是玄学,一点都不科学。为什么这个提示词会生效,没有一个科学的解释。此外,因为后来发现出来了 cached token,导致调试提示词非常麻烦。所以,我一直没有深入研究提示词工程。

后来的时候,Claude Code 和 Cursor 出来了。公司政策还很紧,不允许用 Cursor,直到去年合同谈下来,放开了,我才开始用 Cursor。我尝试了一下,发现真香!当然,那个时候的模型也不够强大,基本上就是非常强大的自动补全工具。从 VS Code 迁移到 Cursor,自己同时还可以一边 Vibe Coding,一边 Review 代码,做一个合格的数据“打标员”。

01 Claude Code

等到公司可以用 Claude Code 的时候,已经是 2026 年了。习惯了 Cursor 的我,慢慢也习惯了 Claude Code 的命令行模式,以至于自己连代码都懒得 Review 了。模式编程了在命令行里面,先执行/plan,然后再看看 Plan,就放手让它自己写了。最后看看 PR,同时触发 Claude Code Review,自己测一把,完事了。我不再执着于手把手告诉它给我用什么方法实现某个函数,而是把一小块功能给它,让它直接完成。当然,这个时候模型能力大幅提升是主要原因。

02 困顿

但是,我还觉得不够,我又看了 Everything Claude Code 和 Superpowers。 ECC 应该还是 Claude Code Agent 时代的产物,Superpowers 也有很强烈的 Agent 的痕迹,但 Skill 出来之后,大家纷纷开始转向 Skill 一把梭。我尝试了 Superpowers 之后,嗯,不错,就是,太慢太费 token 了。它是一个完整的软件开发流程,从需求分析、开发方案、编码、测试、提交,基本都涵盖了。但是,问题也来了,一个 200K 的 session,它活生生地吃完。上下文就是生命,上下文撑爆的结果就是虎头蛇尾,AI 草草收场,写得乱七八糟的。

03 1M 上下文

Claude Code 1M 上下文的发布,让大家看到了希望。但是,作为业界的标杆,Claude Code 这个概念还没有活太长就自己胎死腹中了。原因在于,当上下文很大的时候,错误也会累加。问题不是上下文越大越好,而在于在有限的上下文里面,确保 AI 在正确地干活。

04 SubAgent

Claude Code 有 SubAgent,Skill 也支持context: fork就以 SubAgent 的方式启动子任务。但这些都只是杯水车薪,上下文在 Superpowers 的加持下依旧捉襟见肘。

05 Harness

为什么我执着于 Harness,一是上面的软件开发流程基本是固定的,而且有了 PlayWright 这样的工具之后,AI 直到自己的测试结果,形成一个闭环,确保开发的东西是符合需求没有 bug 的。二是流程上的闭环,比如测试发现问题是会去找 BA 确认是否是 bug,还是说需求分析的时候漏掉了东西。

基于上面两个场景,上下文都非常珍贵,无论 SubAgent,还是 Skill,都最好各自上下文不要超。所以,我理想中的开发流程是,主 session 只管协调,然后调起 SubAgent 干活(保证主 session 上下文不超),然后把结果返回给主 session,主 session 再调起 SubAgent 干活,如此循环,直到完成所有任务。此外,由于 SubAgent 还可以互相调用(QA 找 BA 确认需求环节),所以 SubAgent 还需要记住自己之前做了什么,而不是每次都是新的上下文。

06 Agent Teams

Claude Code 有时候就是研究一出,就赶紧发布了。AI 大环境下,大家都急着出东西,但很多东西其实并没有研究透彻。Agent Teams 可以解决上面的问题,而且还增加了 Agent 与 Agent 间的调用,但 token 剧烈燃烧。Claude Code 也说了,这个东西主要是用来并行任务推进,或者脑暴上。理论上,可以解决我需要的 Session Stick SubAgent。但还需要测试测试。

07 Coordinate Mode

Claude Code 这部分还在开发,据上次泄露的代码来看,这部分还没有完善。基本思路就是一个协调者,然后派发和协调多个 SubAgent。和 Agent Teams 很相似,但多了一个协调者。我觉得等这个出来,协调者可以作为一个 Skill,其余的都是 SubAgent 干活,也可以解决我上面的两个场景。