
记忆库:如何让 Cline 成为永不忘记的 AI 代理
想象一个侦探,每次睡着都会失忆。为了破案,他开发了一套巧妙的系统:将关键事实纹在身上,并保存一套精心整理的宝丽来照片。每次醒来,他都能通过遵循自己的文档系统快速重建理解。这是电影《记忆碎片》(Memento)的情节,它启发了我们如何解决AI编码助手的常见问题。
关于像Cline这样的AI助手,问题在于:它们很聪明但很健忘。每次你开始新的聊天,你的上下文窗口就会被填满或重置,迫使你浪费宝贵的时间重新解释你的项目、技术栈和架构。这就像和一个每休息一下就失忆的天才一起工作。
但是,如果我们能把这个限制变成优势呢?
记忆库的工作原理
记忆库是一个由社区创建的Cline自定义指令集。当你将这些指令添加到Cline的设置中时,你本质上是在告诉它:
“在做任何工作之前,先检查项目中的 memory-bank/ 文件夹。如果这些文件不存在,就创建它们。如果存在,就阅读它们以了解项目上下文。”
该系统结合使用markdown文件进行文档记录,以及指令本身的Mermaid图表来教Cline如何维护这种文档结构。当Cline的上下文窗口被填满或新会话开始时,它可以像《记忆碎片》的主角查看笔记一样,通过阅读这些文件快速重建理解。
理解AI系统中的上下文窗口和记忆
在我们深入了解记忆库之前,重要的是要理解为什么这个解决方案如此关键。像Cline这样的AI助手使用我们称之为“上下文窗口”的东西来操作——本质上是它们可以“记住”的对话和代码量。这个窗口是有限的,通常根据模型的不同,范围从32k到200k个令牌。
当你在处理一个复杂的项目时,你不可避免地会达到这个限制。传统的解决方案包括:
- 开始新的聊天(失去所有上下文)
- 仔细管理你在每个提示词中包含的内容
- 使用总结技术来压缩上下文
这些都不是理想的。它们要么牺牲重要的上下文,要么需要持续的手动管理。记忆库系统提供了一种完全不同的方法。
记忆的架构
记忆库在两个层面工作。自定义指令利用Mermaid图表来告诉Cline如何管理文档。
flowchart TD
PB[projectbrief.md] --> PC[productContext.md]
PB --> SP[systemPatterns.md]
PB --> TC[techContext.md]
PC --> AC[activeContext.md]
SP --> AC
TC --> AC
AC --> P[progress.md]
上面Mermaid图表代码的可视化渲染👇

这个图表不仅仅是为了展示——它实际上是自定义指令的一部分,告诉Cline文档系统应该如何工作。实际的文档本身则是在简单的markdown文件中创建的,遵循图表定义的结构。
这是一种巧妙的方法:使用可视化流程图来教AI如何维护文本文档。Mermaid图表提供了“规则”,而markdown文件则保留了实际的项目知识。
核心文件
- projectbrief.md:塑造其他一切的基础文档
- productContext.md:业务和用户视角
- systemPatterns.md:技术架构和决策
- techContext.md:开发环境和技术栈
- activeContext.md:当前的开发状态
- progress.md:项目状态和跟踪
深入挖掘:记忆库生命周期
记忆库在读取、验证、执行和更新的连续循环中运行。以下是其工作原理的详细分解:

初始设置
开始新项目时
- Cline创建
memory-bank/目录 - 初始化所有必需的文件
- 向用户请求必要的信息
- 建立基线文档
开发过程中
在任何工作之前
- 读取所有记忆库文件
- 验证上下文是否完整
工作期间
- 遵循既定模式
- 跟踪变更和决策
- 监控上下文窗口使用情况
重大变更后
- 更新相关文档
- 确保文件之间的一致性
- 为潜在的上下文重置做准备
视觉提示:用流程图引导AI

传统的智慧是以markdown、JSON或XML格式编写系统提示词。然而,我们的社区发现Mermaid图表(Claude非常擅长创建)对于提示很有用。
他们不使用markdown来编写过程指令,而是使用像这样的流程图来编写:
flowchart TD
Start[Start] --> ReadFiles[Read Memory Bank]
ReadFiles --> CheckFiles{Files Complete?}
CheckFiles -->|No| Plan[Create Plan]
Plan --> Document[Document in Chat]
CheckFiles -->|Yes| Verify[Verify Context]
Verify --> Strategy[Develop Strategy]
Strategy --> Present[Present Approach]
这很重要,原因在于:Mermaid图表不仅仅比文本好看——它是一种描述工作流程的正式语言。每个节点、连接和决策点都得到了明确的定义。对于AI而言,这种结构化格式可能比试图描述相同过程的自然语言段落更容易理解。
当我们编写文本指令时,存在歧义的空间。但Mermaid代码中的流程图是 unambiguous(明确的)——每个状态和转换都清晰定义。这就像给AI一张精确的地图,而不是含糊不清的方向。
完整的记忆库指令可以在Cline文档中找到。但更大的见解是,也许我们应该更多地思考AI是如何实际处理信息的。有时与AI沟通的最佳方式不是通过自然语言,而是通过工作流程的结构化语言。
本博客由 Cline 产品营销部的 Nick Baumann 撰写。请关注我们 @cline 以获取有关开发未来的更多见解。


