← 所有文章

复合上下文:为什么AI项目越做越顺手

六个月前,我在resumegeni项目中的一个编码任务需要整整一个会话来解释背景。智能体需要理解数据库架构、路由规范、模板继承机制、缓存层、部署流水线和测试模式,才能动一行代码。每次会话都从零开始。

上周,我只说了一句”修复market页面的性能问题”,智能体就读取了上一次会话的交接文档,定位到market_hub()中的瓶颈,实现了带聚合RPC的分页数据库查询,编写了测试,然后部署上线。Austin页面从14秒降到了108毫秒。智能体并没有变得更聪明,是项目本身变得更丰富了。

关键不在于模型的差异,而在于项目周围积累的上下文:描述规范的CLAUDE.md、记录决策的记忆文件、跨会话保存诊断结果的交接文档、执行约束的钩子、编码工作流的技能脚本、验证正确性的测试套件、记录发布内容和原因的船长日志。每一个产物都是为了解决某个具体问题而创建的。它们汇聚在一起,让后续每个问题的解决成本都更低。

这就是上下文复利效应。

摘要

  • 上下文复利是指AI辅助的项目随着使用时间增长而加速改善的现象——因为已解决的问题会沉淀下可复用的上下文,从而降低解决下一个问题的成本。
  • 模型在两次会话之间并不会进步,进步的是项目基础设施:CLAUDE.md文件、记忆系统、钩子、技能脚本、交接文档、测试覆盖率、命名规范和运维日志。
  • 上下文复利解释了为什么用AI智能体启动新项目感觉很慢,而同一个项目的第500次会话却行云流水。第一次会话是在构建上下文,第500次会话是在消费上下文。
  • 这个效应不会自动发生。它需要有意识地投资上下文产物:记录决策的文档、编码约束的钩子、验证假设的测试,以及保存运维历史的日志。
  • 理解上下文复利的组织会停止每季度在项目间轮换工程师,转而将积累的项目上下文视为一种资本资产。

什么在复利增长

上下文复利通过六类积累的项目知识发挥作用,每一类产生不同类型的回报。

规范文档(CLAUDE.md)。 CLAUDE.md文件告诉每次智能体会话项目如何运作:文件结构、命名规范、导入模式、测试方法、部署流程。没有CLAUDE.md的第一次会话要花大量精力去发现规范。拥有成熟CLAUDE.md的第一百次会话则无需任何探索。这份文档之所以能产生复利,是因为每条规范只需记录一次,此后永远不必重复解释。

决策记忆。 记忆文件捕捉的是决策背后的原因,而不仅仅是决策本身。当未来的会话遇到相同的权衡取舍时,它直接读取记忆,而非重新推导答案。我的记忆系统存储项目决策、用户偏好、反馈修正和参考指针。每条记忆体量虽小,但整个集合构成了一个决策缓存,防止项目反复纠缠已经定论的问题。

交接文档。 交接文档将诊断结论跨会话保存下来。market页面的性能交接文档经历了三次代码审查修正、两次优先级调整,最终在四天后指导了实际实现。没有这份交接文档,下一次会话将不得不从头开始排查,很可能瞄准错误的代码路径(初稿确实如此)。交接文档的复利效应在于,它将诊断时间转化为可复用的产物。

钩子与约束。 每个钩子都编码了一次过往失败的教训。我的破坏性API防护存在,是因为一个智能体曾经清空了整个Cloudflare缓存。我的沙箱钩子存在,是因为一个智能体曾试图写入~/.ssh/。我的漂移检测器存在,是因为智能体在六十天内十二次偏离了任务目标。每个钩子都能防止同类故障在未来所有会话中再次发生。钩子的复利效应在于,它将事故响应转化为永久性的预防机制。

技能与工作流。 技能是一套编码化的工作流,智能体无需重新发明流程即可执行。我的/nightcheck技能对50多个页面进行检查,包括TTFB基准测试、缓存验证和全面的站点地图爬取。我的/scan-intel技能在六个学术来源中搜索八个研究主题,并进行去重和评分。我的/blog-translator技能将文章翻译成九种语言,同时保留格式。每项技能的构建成本只需支付一次,此后永远免费运行。技能的复利效应在于,它将流程知识转化为可执行的自动化。

测试套件。 测试验证项目在修改后仍然正常运行。成熟的测试套件让智能体能够大胆修改而充满信心,因为失败会被立即捕获。没有测试的项目迫使智能体采取保守的渐进式修改,因为它无法验证自己的工作。测试覆盖率的复利效应在于,每增加一个测试,都会让未来的修改更便宜、更安全。

复利增长曲线

上下文复利遵循一条典型的增长曲线。

第1-10次会话:投资阶段。 大部分精力用于构建上下文而非交付功能。你编写CLAUDE.md、建立规范、创建第一批钩子、搭建测试框架。产出感觉很慢,因为你在建设基础设施,而非产品。

第10-50次会话:加速阶段。 上下文开始产生回报。智能体不再询问规范,而是直接遵循。钩子在部署前拦截错误。技能自动化重复性工作流。每次会话的产出都比上一次更多,因为上下文基础在不断壮大。

第50-200次会话:复利阶段。 项目积累了足够的上下文,使困难问题变得简单。一个智能体读取成熟的CLAUDE.md、一组记忆文件和一份交接文档后,能够在无需额外指导的情况下执行复杂的多步骤实现。market页面的修复就发生在这个阶段。一句话(”修复market页面的性能问题”)触发了一个为期四天的流程,最终实现了132倍的性能提升——因为上下文基础设施承载了诊断结论、约束条件和验证标准。

第200次以上:维护阶段。 新上下文的创建速度放缓,因为大多数规范、约束和工作流已经被捕获。重心转向更新现有上下文(修正过时的记忆、扩展技能、为新的边界场景添加测试),而非从零开始创建。复利效应趋于平稳,但依然维持在高位。

为什么这并不显而易见

三个因素掩盖了复利效应。

模型进步掩盖了上下文进步。 当你的AI会话随时间改善时,你会将进步归因于更好的模型。Claude Opus 4.6确实优于Claude 3.5 Sonnet。但你在一个长期项目上体验到的提升超越了模型本身的进步,因为上下文复利叠加在模型进步之上。切换到同一模型上的新项目就能看出差异:新项目感觉很慢,因为它没有复合上下文。

上下文是无形的。 CLAUDE.md是一个文本文件。记忆文件是Markdown笔记。钩子是Shell脚本。这些产物单独来看都不起眼。复利效应不体现在任何单个产物上,只有在面对完整上下文栈运行的会话的整体表现中才能看到。你无法指着某个文件说”这就是项目快的原因”。你只能比较第500次会话和第1次会话,然后感受到差异。

启动新项目令人兴奋。 新项目充满新鲜感,没有历史包袱,但也没有积累的上下文。新项目的第一次会话感觉很高效,因为它做出的高层决策看起来影响很大。现有项目的第二十次会话感觉平淡,因为它在既定规范内执行。那种平淡的感觉,恰恰是复利效应在发挥作用。那种兴奋的感觉,恰恰是复利效应的缺席。

什么会阻断复利

四种失败模式会打破复利曲线。

上下文腐化。 过时的记忆、陈旧的CLAUDE.md章节和废弃的钩子制造的是混乱而非清晰。一个遵循过时规范的智能体,产出比没有任何规范的智能体更差。上下文需要维护。我的记忆系统包含最后更新时间戳和显式的过期检查。死上下文比没有上下文更糟糕。

上下文蔓延。 太多文件、太多钩子、太多技能会造成发现性问题。如果智能体找不到相关上下文,上下文就无法产生复利。组织方式至关重要:我的记忆文件使用带描述的frontmatter,让未来的会话无需阅读全部内容即可评估相关性。我的钩子注册在按事件类型加载的调度器中。可发现的上下文会产生复利,被埋没的上下文只会腐化。

会话隔离。 如果会话既不读取也不写入持久化上下文,每次会话都从零开始。复利效应需要有意识地搭建桥梁:跨会话传递诊断的交接文档、记录决策的记忆写入、记录运维历史的船长日志。没有这些桥梁,一个经历500次会话的项目与只有一次会话的项目拥有相同的有效上下文。

平台更迭。 在不同AI工具之间切换会重置上下文栈。为一个平台编写的CLAUDE.md不会自动帮助另一个平台。为一个平台事件模型编写的钩子不会在另一个平台上触发。上下文复利具有平台专属性,这既构成了锁定效应,也形成了护城河。你在一个平台上的上下文栈越深,切换成本就越高,你的项目相对于那些不断切换平台的竞争对手也改善得越快。

上下文复利即资本

在金融领域,复利让小额存款在足够长的时间内变成巨额财富。关键洞察在于:回报本身会产生进一步的回报。上下文复利的运作方式如出一辙。

CLAUDE.md中记录的一条规范减少了未来每次会话中的重复解释。节省下来的时间用于解决新问题,新问题又产生新的规范,进一步减少未来的重复解释。一个防止某类故障的钩子消除了未来每次会话中对该故障的重复排查。节省下来的时间用于为新的故障类别构建新的钩子。每一笔投资产生的回报都能催生进一步的投资。

这对组织的启示:项目上下文是一种资本资产。每季度在项目间轮换工程师会摧毁积累的上下文,就像关闭储蓄账户会摧毁累积的利息一样。一个团队在同一项目上配合AI辅助工作两年,将胜过每季度轮换的团队——不是因为个人更优秀,而是因为上下文已经产生了复利。

这对个人工程师的启示:你的AI基础设施是一个投资组合。每一段CLAUDE.md内容、每一份记忆文件、每一个钩子、每一项技能、每一份交接文档都是一笔存入。组合初期增长缓慢。经过数百次会话后,它产生的回报会让困难问题在旁观者眼中显得轻而易举——因为他们看不到底层的上下文栈。

market页面从14秒降到108毫秒。旁观者看到的是一次性能优化。而我看到的是一份经历三次修订的交接文档、一个测量出回归的nightcheck系统、一个防止缓存清空重演的破坏性防护、一个发现初始目标错误的代码审查技能,以及五百次会话积累的上下文——正是这一切让整件事成为可能。

这就是复合上下文。


常见问题

什么是上下文复利?

上下文复利是指AI辅助项目随时间推移加速改善的现象,原因在于已解决的问题会沉淀下可复用的上下文(文档、钩子、技能、测试、记忆),从而降低解决后续问题的成本。这个概念类似于复利:回报本身会产生进一步的回报。

这适用于任何AI工具吗?

原理具有普适性,但具体实现取决于工具对持久化上下文的支持程度。Claude Code原生支持CLAUDE.md文件、钩子、技能和记忆系统。其他工具可能需要外部脚手架才能达到相同效果。平台提供的上下文持久化机制越多,复利曲线就越陡峭。

如何开始构建复合上下文?

从描述项目规范的CLAUDE.md开始。为关键决策添加记忆文件。为你遇到过的故障模式编写钩子。为跨会话重复执行的工作流创建技能。初期投资感觉进展缓慢,但回报会在10-20次会话后显现。

这不就是写文档吗?

不是。文档是其中一个组成部分,但上下文复利还包括可执行的产物:在运行时执行约束的钩子、自动化工作流的技能、验证正确性的测试套件,以及辅助决策的记忆系统。静态文档只是解释,复合上下文能够行动。

上下文窗口限制怎么办?

上下文复利不需要在每次会话中加载所有上下文,而是需要在需要时能获取到正确的上下文。CLAUDE.md会自动加载。记忆文件按相关性查询。交接文档在继续特定任务时读取。上下文栈的规模远超任何单个上下文窗口,智能体每次会话只访问相关的切片。

如何判断我的项目是否具备复合上下文?

比较项目早期和后期完成类似任务所需的工作量。如果一个在第一个月需要整整一次会话的任务,到第六个月只需一条提示就能完成,说明复合上下文正在发挥作用。如果工作量没有变化,则说明上下文没有积累,或者没有在会话之间持久化。


参考来源

本文基于2025年5月以来在六个项目中进行的500多次自主编码会话的生产实践经验。引用的具体案例:

  • market页面性能优化:交接文档、nightcheck验证和部署过程记录在2026年3月21-25日的船长日志
  • 破坏性API防护:在一个智能体清空整个Cloudflare缓存后构建,详见deploy-and-defend一文
  • 钩子与技能基础设施:84个钩子拦截15种事件类型,详见NIST评论
  • 漂移检测:跨60多次会话的余弦相似度追踪,详见The Invisible Agent
  • 自主研究循环:在Apple Silicon上进行固定预算实验,经Claudini论文验证
  • Anthropic关于Claude Code记忆和项目指令的文档:Manage Claude’s memory
  • Andrej Karpathy的自主研究仓库:autoresearch

相关文章

交接文档:跨会话的智能体记忆

一份诊断经历四天内三次修正后仍然存活,并指导了一项将页面加载从14秒缩短至108毫秒的修复。交接承载着智能体无法自行获得的上下文。

1 分钟阅读

智能体并没有变聪明——变的是项目

从第1次会话到第500次会话,模型始终如一。改变的是项目。这重构了整个AI生产力的讨论框架。

1 分钟阅读

你的AI智能体写代码的速度远超你的阅读速度

本周有五个研究团队发表了关于同一问题的研究:AI智能体生成代码的速度远快于开发者理解代码的速度。债务积累在你的脑中。

4 分钟阅读