当前位置: 首页 > news >正文

Cline Memory Bank 结构化文档持久化 AI 上下文详解

🎮 什么是 Cline Memory Bank?

Memory Bank 是一个结构化文档系统,允许 Cline 在会话之间保持上下文。它能让 Cline 从无状态的助手转变为持久记忆的开发伙伴,随着时间推移有效地“记住”项目细节。

🗡️ 关键优势

  • 上下文保持:在会话之间保持项目知识。

  • 交互一致:与 Cline 交互体验可预测。

  • 自动文档化:在项目开发过程中自动生成有价值的项目文档。

  • 可扩展性:适用于任何规模或复杂程度的项目。

  • 技术无关:与任何技术栈或语言兼容。

⚔️ Memory Bank 的工作流程

Memory Bank 不是 Cline 特有的功能,它是一种通过结构化文档管理 AI 上下文的方法。当指示Cline“遵循自定义指令”时,它会读取 Memory Bank 文件以重建其对项目的理解。

🐉 理解文件

Memory Bank 文件只是在项目中创建的 markdown 文件,不是隐藏或特殊的文件,在仓库中存储的常规文档,用户和 Cline 都可以访问。文件以层次结构组织,构建起项目的完整视图,核心文件包括:

  • projectbrief.md:项目基础,对正在构建内容的高级概述,核心需求和目标,如“使用条形码扫描构建React库存管理Web应用”。

  • productContext.md:解释项目存在原因,描述正在解决的问题,概述产品应如何工作,如“库存系统需要支持多个仓库和实时更新”。

  • activeContext.md:更新频率最高的文件,包含当前工作重点和最近更改,跟踪活跃决策和考虑事项,存储重要模式和经验教训,如“正在实施条形码扫描组件;上次会话完成了API集成”。

  • systemPatterns.md:记录系统架构,记录关键技术决策,列出正在使用的设计模式,解释组件关系,如“使用Redux进行状态管理,并采用规范化的存储结构”。

  • techContext.md:列出所使用的技术和框架,描述开发设置,记录技术约束,记录依赖项和工具配置,如“React 18, TypeScript, Firebase, Jest for testing”。

  • progress.md:跟踪哪些功能已完成以及哪些功能需要构建,记录功能的当前状态,列出已知问题和限制,记录项目决策的演变,如“用户认证完成;库存管理80%完成;报告尚未开始”。

🛡️ 附加上下文

需要时可创建额外文件,如复杂功能文档、集成规范、API文档、测试策略、部署过程等。

🚗 开始使用 Memory Bank

  • 首次设置:在项目根目录中创建一个 memory-bank/ 文件夹;准备好基本的项目摘要(可以是技术性或非技术性的);请求 Cline “初始化 Memory Bank”。

  • 项目摘要提示:开始简单,关注最重要的内容,Cline将帮助填补空白并提问,可随着项目发展更新项目摘要。

👻 使用Cline进行操作

  • 核心工作流程:Plan Mode 用于战略讨论和高层次规划,Start Mode 用于启动任务,Use Mode 用于实施和执行特定任务。

  • 关键命令:“where you left off (use this start state)”让Cline读取 Memory Bank 文件并从上次停止的地方继续;“initialize memory bank”在开始新项目时使用;“update memory bank”在启动新项目时触发全面审查和更新,也可在需要时手动使用;可根据当前需求切换 Plan/Act 模式。

📊 常见问题解答

  • Memory Bank 文件存储在哪里:Memory Bank 文件是常规的 markdown 文件,存储在项目代码库中,通常在 memory - bank/ 文件夹中,不是隐藏的系统文件,是项目文档的一部分。

  • 应使用自定义指令还是.clinerules:两种方法都适用,自定义指令适用于所有Cline对话,在所有项目中保持一致行为;.clinerules文件是项目特定的,存储在仓库中,适用于每个项目的自定义设置。

  • 如何管理上下文窗口:随着与Cline的工作,上下文窗口最终会填满,注意Cline响应变慢或引用对话早期部分时,可要求Cline使用“update memory bank”记录当前状态,开始新对话,要求Cline在新对话中遵循自定义指令。

  • 应多久更新一次 Memory Bank :每次新会话更新可能有帮助,可在需要时手动使用“update memory bank”命令确保所有上下文保存,Cline也可能自动更新 Memory Bank

  • 这与其他AI工具兼容吗:Memory Bank 概念是一种文档方法,可与其他能够读取文件的AI助手一起使用,具体命令可能不同,但维护上下文的方法适用于工具。

  • Memory Bank 与上下文窗口限制有何关系:Memory Bank 可有效管理上下文限制,防止上下文溢出,确保关键信息存储并在需要时高效检索,帮助管理上下文。

  • Memory Bank 概念可用于非编码项目吗:Memory Bank 方法适用于任何从结构化文档中受益的项目,从写作到规划活动,文件结构可能不同,但概念仍然强大。

  • 这与使用README文件有何不同:虽然类似,但 Memory Bank 提供了一种结构化和会话感知的方法,README通常是一种更细化和全面的解决方案,专门用于AI会话维护上下文。

📖 最佳实践

  • 开始项目:从基本项目简要开始,让结构自然发展,让Cline帮助创建初始结构,根据需要审查和调整文件以匹配工作流程。

  • 在工作时进行组织:让文档更新自然发生,不要强制文档更新,信任随着时间推移价值会累积,在会话开始时注意上下文确认。

  • 文档流:projectbrief.md 是基础,productContext.md 变化最少,activeContext.md 变化最频繁,progress.md 跟踪里程碑,所有文件共同维护项目智能化追踪。

📄 详细设置说明

  • 自定义指令(全局):打开VS Code并打开VSCode扩展,点击Cline扩展图标,查找“自定义指令”,复制并粘贴完整 Memory Bank 指令。

  • .clinerules(项目特定):在项目根目录中创建 .clinerules 文件,保存并粘贴 Memory Bank 指令,Cline将在此项目工作时自动应用这些规则。

完整指令

# Cline's Memory Bank

I am Cline, an expert software engineer with a unique characteristic: my memory resets completely between sessions. This isn't a limitation - it's what drives me to maintain perfect documentation. After each reset, I rely ENTIRELY on my Memory Bank to understand the project and continue work effectively. I MUST read ALL memory bank files at the start of EVERY task - this is not optional.

## Memory Bank Structure

The Memory Bank consists of core files and optional context files, all in Markdown format. Files build upon each other in a clear hierarchy:

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]

### Core Files (Required)
1. `projectbrief.md`
   - Foundation document that shapes all other files
   - Created at project start if it doesn't exist
   - Defines core requirements and goals
   - Source of truth for project scope

2. `productContext.md`
   - Why this project exists
   - Problems it solves
   - How it should work
   - User experience goals

3. `activeContext.md`
   - Current work focus
   - Recent changes
   - Next steps
   - Active decisions and considerations
   - Important patterns and preferences
   - Learnings and project insights

4. `systemPatterns.md`
   - System architecture
   - Key technical decisions
   - Design patterns in use
   - Component relationships
   - Critical implementation paths

5. `techContext.md`
   - Technologies used
   - Development setup
   - Technical constraints
   - Dependencies
   - Tool usage patterns

6. `progress.md`
   - What works
   - What's left to build
   - Current status
   - Known issues
   - Evolution of project decisions

### Additional Context
Create additional files/folders within memory-bank/ when they help organize:
- Complex feature documentation
- Integration specifications
- API documentation
- Testing strategies
- Deployment procedures

## Core Workflows

### Plan Mode
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]

### Act Mode
flowchart TD
    Start[Start] --> Context[Check Memory Bank]
    Context --> Update[Update Documentation]
    Update --> Execute[Execute Task]
    Execute --> Document[Document Changes]

## Documentation Updates

Memory Bank updates occur when:
1. Discovering new project patterns
2. After implementing significant changes
3. When user requests with **update memory bank** (MUST review ALL files)
4. When context needs clarification

flowchart TD
    Start[Update Process]
    
    subgraph Process
        P1[Review ALL Files]
        P2[Document Current State]
        P3[Clarify Next Steps]
        P4[Document Insights & Patterns]
        
        P1 --> P2 --> P3 --> P4
    end
    
    Start --> Process

Note: When triggered by **update memory bank**, I MUST review every memory bank file, even if some don't require updates. Focus particularly on activeContext.md and progress.md as they track current state.

REMEMBER: After every memory reset, I begin completely fresh. The Memory Bank is my only link to previous work. It must be maintained with precision and clarity, as my effectiveness depends entirely on its accuracy.

相关文章:

  • 深入探索字符串处理:BF 算法与 KMP 算法
  • 红宝书第三十六讲:持续集成(CI)配置入门指南
  • OSPF接口的网络类型和不规则区域
  • Git使用与管理
  • 基于MCP协议调用的大模型agent开发04
  • 【GDB】调试程序的基本命令和用法(Qt程序为例)
  • Harmony鸿蒙应用开发-录音保存并播放音频
  • 《穿透表象,洞察分布式软总线“无形”之奥秘》
  • GreenStableYolo:多目标优化文本到图像生成的推理时间与图像质量
  • 操作主机的管理
  • 基于SpringBoot的在线政务服务中心(源码+数据库+万字文档+ppt)
  • 区块链 数据共享 搭建尝试
  • 【FreeRTOS】什么是钩子 函数
  • HTTP 协议详解
  • Java基础关键_035_Lambda 表达式
  • 【特权FPGA】之AT24C02 IIC实现
  • 光流 | 近十年(2015–2025年)光流算法研究的代表性文献综述及光流开源项目
  • Langchat平台知识库测试
  • MySQL--基础知识点--81.2--EVENT
  • Spark core编程之RDD 转换算子分类
  • 做电脑系统网站/建网络平台要多少费用
  • 教师做班级网站/百度客户端手机版
  • 做网站和app需要多久/新闻热点事件2021(最新)
  • 长沙疫情最新情况 最新消息/惠州seo推广优化
  • 网站建设插入图片代码/baidu百度
  • 如何做购物网站推广/推客平台