与 AI 合作、与他人对话,“复利”这个词经常出现在我的想法里。这些过程中,有些是让我很赞赏的:沉淀的工作可以不断被复用。有些是让我觉得很难受的:在以造传统软件的方式创建一些工具,解决一些非常局限的问题;或者以等同于“许愿”的方式,寄希望于 agent 能自动解决 xx 问题。
本来想梳理下自己的思考。结果,给了 codex 几个关键字,他把整篇内容都写出来的。我整理了一下,贴在了分割线下面。
关于“反复利:更快地制造负债”的描述尤其让我担心。以悲观主义的视角来看,系统天然趋向熵增的方向发展,即使有部分在朝着好的方向推进,但更多的产出在让系统变得混乱。与 AI Agent 合作是必然的,人人都在使用 AI。长期演进的结果,要么是整个系统崩溃、要么是系统里那些制造混乱的个体被淘汰。
复利不是收益率,而是结构
很多人谈复利时,容易把注意力放在收益率上。收益率当然重要,但它不是全部。
真正决定复利能不能发生的,是结构:
- 这次产出能不能被保存下来?
- 保存下来的东西,下次能不能被复用?
- 复用时会不会降低下一次行动的成本?
- 多次复用之后,会不会让系统本身变得更强?
如果答案都是肯定的,那它就是复利结构。反过来,如果一件事做完之后只留下“完成了”这个状态,没有留下任何可复用的资产,那它更像单利,甚至只是一次性消耗。
传统软件工程里的复利
传统软件工程里,本来就有很多复利资产。
代码是复利资产。一次抽象、一个函数、一个模块,如果边界清晰、质量可靠,就会在之后被不断调用。
测试是复利资产。每次写下一个测试,都是在未来替自己挡住一次回归。
文档是复利资产。它把一个人的理解从脑子里拿出来,变成团队可以共享的上下文。
工程化工具也是复利资产。脚手架、CI、lint、发布流水线,这些东西本身不直接产生业务价值,但它们不断降低后续交付的摩擦。
所以,好的软件工程一直都不是只追求“把这次需求做完”。它追求的是:这次做完之后,系统有没有比之前更容易被理解、更容易被修改、更容易被验证。
AI Agent 改变了什么
AI Agent 出现之后,很多事情的形态变了。
以前写代码,人的主要成本在“亲手做”。现在很多局部任务可以交给 agent 做:查资料、读代码、改文件、跑测试、修报错、整理结论。
这会带来一个很明显的变化:一次性完成任务的成本下降了。
但也正因为如此,我们更容易掉进一个新陷阱:让 agent 帮我们完成了很多事情,却没有留下任何可积累的东西。
比如:
- 问了一次 agent,得到一个答案,然后答案散落在聊天记录里。
- 让 agent 修了一次问题,但没有把根因、测试方法、约束条件沉淀下来。
- 让 agent 生成了一段代码,但没有把可复用模式提炼成脚本、规范或模板。
- 每次都从零开始描述背景,而不是把项目知识变成稳定上下文。
这些事情看起来很高效,实际上可能只是把“一次性劳动”加速了。它们提高的是瞬时速度,不一定提高长期能力。
AI Agent 时代的新复利资产
在 with AI Agent 的环境下,我觉得复利资产会发生一些变化。
第一类是高质量上下文。
如果一个项目有清晰的 README、AGENTS.md、代码规范、运行方式、常见问题、架构决策记录,那么 agent 每次进入项目时就不是从零开始。上下文本身会变成生产力。
第二类是可执行的验证。
测试、lint、类型检查、构建命令、最小复现脚本,这些东西在过去就重要,在 agent 时代会更重要。因为 agent 可以很快做修改,但判断修改是否正确,不能只靠“看起来合理”。可执行验证越强,agent 的工作越容易闭环。
第三类是可复用的工作流。
过去我们可能把经验存在脑子里:遇到某类问题先看哪里,怎么排查,怎么验证。现在这些经验可以变成 prompt、脚本、检查清单、自动化流程,甚至变成一个定制 agent。
第四类是项目知识库。
一个项目的复杂度,很多时候不在代码本身,而在那些隐含知识里:为什么这样设计,哪些地方不能改,线上有哪些历史包袱,哪些接口看似没用但有人依赖。把这些知识结构化下来,就是给未来的自己和未来的 agent 存本金。
反复利:更快地制造负债
AI Agent 也会放大反复利。
如果一个人只是不断让 agent 生成代码,却不验证、不整理、不沉淀,那么系统可能会变得更快地膨胀,也更快地失控。
代码多了,但边界没有更清楚。
功能多了,但测试没有跟上。
文档多了,但没有人维护真实性。
聊天记录多了,但知识没有进入项目。
这种情况下,agent 提高的不是复利速度,而是技术债增殖速度。它让我们更快地堆东西,也更快地遗忘为什么要这样堆。
我的判断
我现在越来越相信,AI Agent 时代的差距,不只来自谁更会提问,也不只来自谁用了更强的模型。
更大的差距来自:谁能把每一次 agent 的工作,转化成下一次工作的本金。
同样是让 agent 修一个 bug,有的人只得到一个修复提交;有的人会顺手得到一个回归测试、一段排查记录、一个更清晰的模块边界、一条可以复用的操作路径。
前者是在消费 agent 的能力。
后者是在用 agent 构建自己的系统能力。
这两件事短期看差别不大,长期看完全不同。
我想怎么实践
以后每次和 agent 协作完成一个任务,我想多问几个问题:
- 这次产生了什么可以复用的东西?
- 下次遇到类似问题,能不能更快开始?
- 这次踩过的坑,有没有进入测试、文档、脚本或规范?
- 项目的上下文有没有比之前更清楚?
- 这个流程有没有可能自动化?
如果每次任务都能留下哪怕一点点这样的资产,时间拉长之后,它就不只是“用了 AI 提效”,而是在建立一个会自我增强的工作系统。
这可能就是我现在理解的复利:不是某一次做得多快,而是每一次做完之后,下一次是否站得更高。