← 返回Vibe Coding 时,AI 的记忆该存在文档里,而不是对话里
1 / 8
Vibe Coding·8 步

Vibe Coding 时,AI 的记忆该存在文档里,而不是对话里

以 CATALK 为例,讲清只靠对话做产品的三个问题、讨论结果怎么写成带前因后果的文档、怎样照着文档推动 AI 开发;附一段聊完方案后直接可用的提示词。

TL;DR · 一句话结论

只靠对话做产品,会遇到上下文不够、注意力分散、不能跨窗口三个问题。把聊天当讨论,讨论结果让 AI 写成 Markdown 文档,并记清定了什么、为什么、哪些不做、为什么不做;开发时让 AI 照着定稿 HTML 和 PRD 写代码,再用 AGENTS.md、README、PRD 让文档在项目里流转。

1
Step 1

聊着聊着就跑偏:问题出在记忆放错了地方

视频封面:Vibe Coding 时,把对话里聊出的方案沉淀成文档
视频封面:Vibe Coding 时,把对话里聊出的方案沉淀成文档

很多新手做 Vibe Coding,用的还是和 AI 聊天的方式:打开一个窗口,想到一个点子,马上让 AI 开始写代码。做一个简单功能、一个 demo,这样没什么问题。

可一旦事情变复杂,或者换了个窗口,AI 就把之前说的前情提要全忘了,你又得重新交代一遍。时间一长,做出来的东西越跑越偏,和你当初在第一个窗口里讨论的完全对不上。

核心原因就一句话:

Vibe Coding 的时候,AI 的记忆不应该存在对话里,而应该落在文档里。

AI 的记忆不应该存在对话里,而应该落在文档里:讨论的结果 → 落成文档 → AI 照着文档干活。
AI 的记忆不应该存在对话里,而应该落在文档里:讨论的结果 → 落成文档 → AI 照着文档干活。

把讨论的结果落成文档,再让 AI 照着文档去干活,从「对话驱动」变成「文档驱动」。

这一篇以作者自己做的 App CATALK(一个记录猫咪叫声的软件,已上架 App Store)为例,讲清三件事:对话里聊出来的方案怎么变成文档;文档怎么推动 AI 开发;项目里还有哪些文档一直在配合工作。

2
Step 2

只靠对话做产品的三个问题

问题一:上下文不够,会丢细节

AI 每次回答你,都要把整个窗口里的聊天记录和看过的文件全带上,这些内容叫做上下文。上下文是有限的,不是你聊多少它就能塞多少。

快装满的时候,Agent 工具会自动把前面的对话压缩成一段摘要。压缩完大方向可能还在,但聊过的那些细节就可能没了。

上下文装满后,前面的对话被压缩成一条「摘要」:大方向还在,细节 A、B、C 掉了出去。
上下文装满后,前面的对话被压缩成一条「摘要」:大方向还在,细节 A、B、C 掉了出去。

问题二:注意力会分散

就算上下文还没装满,对话一长,AI 也容易抓不到重点。它往往更在意你最近说的那几句,前面早就定好的事,反而容易被忽略。聊得越多,忘得越多。

对话一长,AI 的注意力集中在最近几句,前面定好的方案反而被忽略。
对话一长,AI 的注意力集中在最近几句,前面定好的方案反而被忽略。

问题三:不能跨窗口

每一次新对话,对 AI 来说都是全新的。换一个窗口,你前面聊的东西它一点都不知道,只能从头再讲一遍。

窗口 A 里聊满了需求和决定,换到窗口 B,AI 什么都不知道。
窗口 A 里聊满了需求和决定,换到窗口 B,AI 什么都不知道。

所以作者非常不建议在 Vibe Coding 时做「聊天式开发」:过程随机、不可控,容易丢记录,还要花大量时间在解释和对齐信息上。

一个真实的例子

作者给 CATALK 做 2.1 版本时,在同一个窗口里从下午 3 点半一直聊到晚上:

CATALK 2.1,同一个窗口从下午 3:30 聊到晚上:12 条消息、最长一条 800 多字、AI 读文件改文件出设计稿跑测试 130 多次。
CATALK 2.1,同一个窗口从下午 3:30 聊到晚上:12 条消息、最长一条 800 多字、AI 读文件改文件出设计稿跑测试 130 多次。
  • 前后一共发了 12 条消息,最长的一条 800 多字;
  • AI 边读文件、改文件、出设计稿、跑测试,一共动手了 130 多次;
  • 光是其中一个功能,就改了 6 版设计稿。

这么长的一段对话,如果结果全留在聊天里,聊到后面别说 AI,作者自己都不知道最早定了什么,还得回去翻记录。

3
Step 3

正确做法:聊天是讨论,结果写成文档

正确的做法很简单,就一个习惯:把聊天当成讨论,但讨论的结果一定要让 AI 写成文档。

这里的文档一般指 Markdown 文件(.md):一种带简单格式的纯文本,人能看懂,AI 读写最方便。

为什么文档能解决上面三个问题?因为文档存在你的电脑里,不在对话里:

问题文档为什么能解决
上下文不够对话再长,文件也不会被压缩
注意力分散定好的事写在文件里,不会被最近几句话淹没
不能跨窗口换多少个窗口,AI 读一下这个文件就知道前面确定了什么
对话是用来想的,文档是用来记的:文档存在你的电脑里、不在对话里,上下文、注意力、跨窗口三个问题都能解决。
对话是用来想的,文档是用来记的:文档存在你的电脑里、不在对话里,上下文、注意力、跨窗口三个问题都能解决。
4
Step 4

文档要记前因后果,不能只记结论

文档不是记一个结论就完事了,还要把讨论的前因后果记清楚:

  1. 为什么开始讨论
  2. 定了什么结论
  3. 为什么这么定
  4. 哪些不做
  5. 为什么不做

因为下一个读这份文档的 AI 并没有参与你上一轮的讨论。它只看到一个结论,不知道你当初是怎么想的,很可能重蹈覆辙,把你否掉的方案再做一遍。

CATALK 需求文档里的两个例子

例一:决定 + 理由。 PRD 里有一条决定:不论视频长短,用户的流程都一样。后面紧跟一句理由:用户的操作路径保持一致。

PRD_v2.0.md 第 459 行:决定——不论视频长短,流程都一样;理由——用户的操作路径保持一致。
PRD_v2.0.md 第 459 行:决定——不论视频长短,流程都一样;理由——用户的操作路径保持一致。

例二:不做 + 原因。 还有一条写的是「不做 App 快捷入口」,原因写在旁边:作者自己遇到猫的时候,第一反应是打开相机录像,而不是打开 App。

PRD_v2.0.md 第 350 行:不做——App 快捷入口;原因——遇到猫,第一反应是打开相机录像。
PRD_v2.0.md 第 350 行:不做——App 快捷入口;原因——遇到猫,第一反应是打开相机录像。

这样一份讨论文档,五项都有着落:

讨论文档五要素对上了真实内容:定了什么结论(流程都一样)、为什么这么定(路径保持一致)、哪些不做(不做快捷入口)、为什么不做(先打开相机)。
讨论文档五要素对上了真实内容:定了什么结论(流程都一样)、为什么这么定(路径保持一致)、哪些不做(不做快捷入口)、为什么不做(先打开相机)。

不要只记结论,推导出结论的理由也要记下来。

5
Step 5

聊出方案后,用这三句话让 AI 写文档

建议你每次 Vibe Coding 和 AI 聊出一个方案之后,都这样跟 AI 说:

把我们刚才定下来的内容写进文档:
1. 写清楚定了什么
2. 写清楚为什么这么定,哪些不做、为什么不做
3. 写完先给我看,先不要写代码
提示词卡:把我们刚才定下来的内容写进文档——写清楚定了什么;写清楚为什么这么定,哪些不做、为什么不做;写完先给我看,先不要写代码。
提示词卡:把我们刚才定下来的内容写进文档——写清楚定了什么;写清楚为什么这么定,哪些不做、为什么不做;写完先给我看,先不要写代码。

就这三句话,文档就能写好。注意最后一句:先不要写代码。先确认文档写对了,再进入开发。

6
Step 6

用文档推动开发,而不是翻聊天记录

下一步,就是用文档去推动 AI 开发。注意,是照着文档开发,而不是照着聊天记录开发。

例子:录完一声之后的「补充信息」页

CATALK 有这样一个功能:用户录完一声猫叫后,让用户补充一点信息,比如加一个封面、留一段视频、写一句当时的场景。

这个页面怎么设计最合适,作者拿不准,就在对话里让 AI 先出设计稿,做成一个 HTML 页面。前后一共调了 6 版:

版本改了什么
v1AI 给了好几套方案,挑一个
v2定了方向,让 AI 在这个方向上细化
v3删掉封面那一栏的解释文字,只留关键信息
v4把封面和场景调成同一级的小标题
v5定下最终的组合
v6弹框的三个选项字数不一样,改成一样,三个选项就对齐了
设计稿一共调了 6 版:v1 AI 给好几套挑一个、v2 定方向往细里做、v3 删封面的解释文字、v4 封面和场景同级标题、v5 定下最终组合、v6 三个选项字数对齐。
设计稿一共调了 6 版:v1 AI 给好几套挑一个、v2 定方向往细里做、v3 删封面的解释文字、v4 封面和场景同级标题、v5 定下最终组合、v6 三个选项字数对齐。

定稿落在两个文件里

最后定下来的这一版,讨论结果和最终版都定在了这个 HTML 文件里,能直接预览;规则和理由,也写进了需求文档 PRD。

然后 AI 开始写代码。这时它是直接照着 HTML 和 PRD 去开发的,而不是回头去翻前面那一长串聊天记录、从里面找支离破碎的信息,开发效率和准确度都会高很多。

定稿.html(能直接预览)+ PRD(规则和理由)→ 写代码;一长串聊天记录被划掉。
定稿.html(能直接预览)+ PRD(规则和理由)→ 写代码;一长串聊天记录被划掉。

这时就算随便换一个新窗口,新的 AI 读一下这两个文件,马上也能接着写,不用再做太多解释,也不用复述背景。

总之就一句话:AI 的记忆应该放在文档里,而不是放在对话里。

7
Step 7

项目里还有几份文档一直在配合

前面讲的,都是从对话里整理出来、和某一个功能相关的文档。真正开发时,项目里还有几份文档一直在配合工作,大致是这样流转的:

  1. AGENTS.md:在项目最外层,写着这个项目的规矩,AI 每次开工都会先读它;
  2. README:AGENTS.md 会指引 AI 去读进度文件 README,看看做到哪了;
  3. PRD:需要做新功能,就先改需求文档 PRD,等你确认了再写代码;
  4. 写代码:干完活,再把进度回写进 README。
文档流转一圈:AGENTS 规矩 → README 进度 → PRD 先改·我确认 → 写代码,再回写 README;不管开哪个窗口,看进度、照规则、记什么都清楚。
文档流转一圈:AGENTS 规矩 → README 进度 → PRD 先改·我确认 → 写代码,再回写 README;不管开哪个窗口,看进度、照规则、记什么都清楚。

所以不管开哪个窗口,AI 都知道从哪里看项目进度、照什么规则开发、做完要记录什么。这四个文件的具体写法,可以看 用 4 个文件让 AI 自己跑完开发闭环;PRD、设计规范这些文件怎么来的,可以看 从想法到验收的五步开发法。

8
Step 8

总结:Vibe Coding 靠文档驱动

Vibe Coding 和日常跟 AI 聊天最核心的区别是:Vibe Coding 靠的是有规划、有条理的本地文档驱动,而不是一时兴起的一句话,加上乱七八糟的聊天记录。

回顾整套做法:

  1. 认清问题:只靠对话,会遇到上下文不够、注意力分散、不能跨窗口三个问题;
  2. 写成文档:聊天只是讨论,结果让 AI 写成 Markdown 文档;
  3. 记前因后果:定了什么、为什么这么定、哪些不做、为什么不做;
  4. 照文档开发:让 AI 照着定稿 HTML 和 PRD 写代码,而不是翻聊天记录;
  5. 让文档流转起来:AGENTS.md → README → PRD → 代码 → 回写进度。

AI 的记忆应该存在文档里,而不是存在对话里。

FAQ · 常见问题
Vibe Coding 时为什么换个窗口 AI 就忘了之前的讨论?

每一次新对话对 AI 来说都是全新的,它看不到别的窗口里的聊天记录。即使在同一个窗口,上下文快满时工具会把前面的对话压缩成摘要,细节也可能丢失。把讨论结果写进本地文档,新窗口读一下文件就能接上。

讨论文档里要写哪些内容?

不只写结论,还要写前因后果:为什么开始讨论、定了什么、为什么这么定、哪些不做、为什么不做。否则下一个读文档的 AI 不知道你当初的考虑,可能把否掉的方案又做一遍。

聊完方案后怎么让 AI 写文档?

可以直接说:把我们刚才定下来的内容写进文档,写清楚定了什么,写清楚为什么这么定、哪些不做、为什么不做,写完先给我看,先不要写代码。

文档写好后,AI 开发时应该看什么?

让 AI 照着定稿的设计稿 HTML 和需求文档 PRD 去开发,而不是回头翻聊天记录。项目层面再用 AGENTS.md 规定规矩、README 记录进度,让每个新窗口都知道从哪里开始。

1 / 8