用AI开发了一个页面后,我把经验“复制粘贴“到了另外10个页面

AgenticCoding·十二月创作之星挑战赛 10w+人浏览 485人参与

用AI开发了一个页面后,我把经验"复制粘贴"到了另外10个页面

开发第一个页面花了3小时,后面10个页面平均只用了40分钟。秘密不是我变强了,而是我学会了"偷"自己的经验。


在这里插入图片描述

一个让我抓狂的场景

上个月,我用Claude Code开发了一个复杂的数据表格页面。整个过程和AI反复讨论:用虚拟滚动还是分页?筛选条件存URL还是Store?动态行高怎么处理?

3小时后,页面完美上线。

一周后,产品经理说:“这个页面做得不错,我们还有10个类似的页面要做。”

我心想:太好了,有经验了,应该很快。

然后我发现——我忘了上次是怎么做的。

翻聊天记录?太长了。看代码?只有结果没有推理过程。问AI?它不记得上次的对话。

我不得不重新踩一遍坑:虚拟滚动的VariableSizeList要在数据更新后调用resetAfterIndex,这个细节我又花了20分钟才想起来。

这就是AI协作开发最大的悖论:每次对话都产生宝贵的经验,但每次对话结束,经验就消失了。


问题的本质:你的经验正在"蒸发"

如果你也在用AI写代码,回想一下:

  • 上周和AI讨论的那个技术决策,现在还记得为什么那样选吗?
  • 那个折腾了半小时才解决的bug,下次遇到还能立刻想起解法吗?
  • AI纠正你的那个代码习惯,你写进文档了吗?

大概率没有。

不是你懒,是这件事太反人性了——对话刚结束时,一切都清晰在脑子里,谁会想着马上整理?等到需要时,细节早就模糊了。

我统计过自己的情况:每10次AI协作对话,大约产生3-5个值得记住的经验点。一个月下来就是近百个。但真正被我记住并复用的,不到10%。

90%的经验,蒸发了。


解法:让AI自己"记住"

既然问题出在人工整理太反人性,那就让AI来干这件事。

我设计了一个叫catch-memories的命令,核心逻辑很简单:

对话结束后,让AI分析整个会话记录,自动提取值得记住的经验,存成结构化的JSON文件。

不是记录"做了什么",而是提取"为什么这样做"和"学到了什么"。

比如那个表格页面的会话,提取出来的记忆是这样的:

决策:表格使用虚拟滚动而非分页
原因:用户需要频繁对比不同行数据,分页会打断操作流程
适用边界:数据量>100行且有跨行对比需求时适用

学习:react-window动态行高处理
关键点:使用VariableSizeList,数据更新后必须调用resetAfterIndex
踩坑记录:不调用会导致滚动位置错乱,很难排查

纠正:筛选条件不要存URL
原因:复杂筛选条件会超出URL长度限制
规范:统一存Store,URL只存简单的页面状态

下次开发类似页面,直接检索这些记忆,40分钟搞定。

开发第一个页面是探索,开发第十个页面应该是复制。


什么样的经验值得被记住?

不是所有对话都值得记忆。“帮我读一下这个文件”、“格式调整一下”——这些是噪音。

真正有价值的是五种"意外时刻"

1. 从失败中恢复

工具报错→换个方法→成功了。这个"换"的过程就是经验。

2. 方向被纠正

你说"用方案A",AI或你自己后来发现"其实应该用B"。为什么?这个"为什么"值千金。

3. 意外的惊喜

“这个方法比我想的好用多了”——说明你发现了一个超出预期的解法,值得记录。

4. 预期被打破

以为是X问题,查下来是Y问题。这种认知纠偏是最宝贵的学习。

5. 重复出现的场景

第二次遇到类似需求了?说明这是个值得抽象的模式。

经验提取的本质,是在对话中寻找这些"认知转折点"。


十种记忆类型:建立你的经验分类体系

为了让提取的经验可检索、可复用,我设计了十种记忆类型:

类型说明复用价值
决策在A和B之间选了A,以及为什么直接指导相似场景的选择
学习技术细节、API用法、踩坑记录避免重复踩坑
纠正被指出的错误做法形成个人代码规范
洞察对项目/系统的新认知加速理解新项目
模式种子可能值得抽象的重复场景识别通用模式
承诺答应要做但还没做的事技术债务追踪
缺口发现的知识或能力盲区指导学习方向
工作流备注偏离标准流程的特殊处理理解项目特殊性
置信度对某结论的确定程度判断经验可靠性
跨Agent需要告诉其他工具的信息多工具协作

分类的目的不是为了好看,是为了检索。 当你要开发一个新表格页面,直接搜"决策+表格",相关经验就出来了。


质量比数量重要一万倍

这是我踩过的最大的坑:一开始贪多,每个会话提取二三十条"记忆"。

结果呢?记忆库变成了垃圾场。太多低价值信息淹没了真正重要的经验,检索出来的结果噪音太大,最后干脆不用了。

现在的原则是:每个会话只提取3-10条,宁缺毋滥。

具体的过滤规则:

跳过这些:

  • 没有推理过程的常规操作
  • 简单的文件读写
  • 确认性回复(“好的”、“明白”)
  • 纯格式调整

必须捕获这些:

  • 考虑了多个方案的决策点
  • 从错误中学到的教训
  • 用户的明确纠正
  • 任何让你说"原来如此"的时刻

还有一个硬指标:置信度评分。

  • 90-100分:对话中明确说了的
  • 70-89分:从上下文能强烈推断的
  • 50-69分:有一定不确定性的推断
  • 50分以下:不提取,太不靠谱

宁可漏掉一些经验,也不要记录不靠谱的"经验"。错误的经验比没有经验更危险。


一个真实的经验复制案例

让我用一个完整的例子说明这套方法的威力。

第一个页面开发(3小时):

和AI讨论了虚拟滚动vs分页、筛选条件存储方案、动态行高处理、列配置设计等问题。中间踩了几个坑,被AI纠正了两次代码习惯。

会话结束后执行记忆提取,得到7条记忆:

  1. [决策] 虚拟滚动vs分页的选择标准
  2. [学习] react-window动态行高的正确用法
  3. [纠正] 筛选条件应存Store而非URL
  4. [纠正] 不要在组件内直接调用API
  5. [洞察] 项目API分页使用cursor而非offset
  6. [模式种子] 表格配置可抽象为useTableConfig
  7. [学习] 虚拟列表滚动位置保持的技巧

第二个页面开发(50分钟):

开始前检索"表格"相关记忆,看到第1条决策记忆,判断当前场景适合虚拟滚动。直接应用第2条学习避免了动态行高的坑。按照第3、4条纠正规范写代码。

唯一新遇到的问题是列宽拖拽,补充了1条新记忆。

第五个页面开发(35分钟):

流程已经完全标准化。检索记忆→应用决策→避开已知坑→只处理新问题。

这时候第6条模式种子已经被触发3次了,于是花时间抽象出了useTableConfig hook。之后的页面更快了。

第十个页面开发(25分钟):

大部分代码是复制粘贴+微调。记忆库里已经有了这类页面的完整知识图谱。

这就是经验复制的威力:不是你变强了,是你的"外部大脑"变强了。


与传统知识管理的本质区别

你可能会说:这不就是写文档吗?

不一样。区别在于三点:

传统文档会话记忆提取
谁来写人工撰写AI自动提取
写什么事后总结的结论实时捕获的推理过程
什么时候写项目结束后(经常忘记)每次对话后(自动化)

传统文档的问题是:它依赖你"事后想起来要写",而这恰恰是最反人性的。

对话刚结束时,细节都在脑子里,感觉"这么简单的事不用记"。等到真需要时,细节早就模糊了,想写也写不出来了。

会话记忆提取把这个过程自动化了。你不需要改变任何习惯,只需要在对话结束时跑一个命令,剩下的AI帮你搞定。

最好的知识管理,是你感觉不到在做知识管理。


五条实践原则

用了三个月,总结出五条原则:

原则一:记"为什么"而不是"做了什么"

错误示范:“使用了react-window”

正确示范:“选择react-window而非react-virtualized,因为API更简洁,且项目不需要后者的Grid功能”

原则二:保留原始对话片段

每条记忆都要附带原始对话。当简短描述不够用时,可以回溯完整上下文。

这也是审计需要——你得能证明这条经验是怎么来的。

原则三:建立实体关联

把记忆和具体的项目、文件、技术栈关联起来。"React性能优化"太泛,"React 18 + Next.js 14的Suspense边界问题"才有检索价值。

原则四:定期做"模式升级"

当同一个"模式种子"被触发3次以上,说明这是个真正的模式,值得升级为正式的最佳实践或代码抽象。

原则五:宁缺毋滥

再强调一次:3-10条高质量记忆,胜过30条噪音。


这套方法适合谁?

适合:

  • 重度AI协作开发者(每天和AI对话超过1小时)
  • 需要开发大量相似功能的场景(后台管理系统、多页面应用)
  • 团队想积累可复用的开发经验
  • 个人想建立"第二大脑"

不太适合:

  • 偶尔用AI写几行代码
  • 每个项目都是全新领域,没有复用场景
  • 不愿意花5分钟跑提取命令的人

写在最后

AI协作开发的时代,真正的竞争力不是"会用AI",而是"能积累用AI的经验"。

每个人都能让AI写代码。但如果你的每次AI对话都是从零开始,而别人能站在之前100次对话的肩膀上,效率差距会越来越大。

会话记忆提取,本质上是在回答一个问题:

如何让你的第100次AI协作,比第1次更高效?

答案是:把每次协作的经验变成可检索、可复用的资产。

开发第一个页面是探索,开发第十个页面应该是复制。如果你还在为每个相似页面重新探索,是时候改变工作方式了。


参考与致谢

本文的记忆提取方法论参考了 GitHub 用户 alexknowshtml 分享的 memory-catcher.md

原始 gist 定义了一个完整的 Memory Catching Agent 规范,包括:

  • 10 种记忆类型的详细定义和提取规则
  • 12 种实体类型的分类体系
  • 意外触发器(Surprise Triggers)的识别方法
  • 置信度评分标准和质量过滤规则

我在此基础上做了以下补充和完善:

  • 加工为 Slash Command:将 Agent 规范转化为可直接在 Claude Code 中调用的 /catch-memories 命令
  • 简化处理流程:优化了会话记录的获取和存储逻辑,支持分析当前会话或指定历史会话
  • 本地化存储:设计了按日期组织的 ./memories/ 目录结构,便于检索和管理
  • 中文适配:调整了输出格式和提示语,更适合中文开发者使用

感谢 alexknowshtml 的开源分享,让更多开发者能够构建自己的 AI 协作记忆系统。


如果这篇文章对你有启发,欢迎关注我,后续会分享更多AI协作开发的实战经验。

有问题欢迎评论区交流,我会尽量回复。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RI Code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值