🎮 什么是 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 BankI 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 StructureThe Memory Bank consists of core files and optional context files, all in Markdown format. Files build upon each other in a clear hierarchy:flowchart TDPB[projectbrief.md] --> PC[productContext.md]PB --> SP[systemPatterns.md]PB --> TC[techContext.md]PC --> AC[activeContext.md]SP --> ACTC --> ACAC --> 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 scope2. `productContext.md`- Why this project exists- Problems it solves- How it should work- User experience goals3. `activeContext.md`- Current work focus- Recent changes- Next steps- Active decisions and considerations- Important patterns and preferences- Learnings and project insights4. `systemPatterns.md`- System architecture- Key technical decisions- Design patterns in use- Component relationships- Critical implementation paths5. `techContext.md`- Technologies used- Development setup- Technical constraints- Dependencies- Tool usage patterns6. `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 TDStart[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 TDStart[Start] --> Context[Check Memory Bank]Context --> Update[Update Documentation]Update --> Execute[Execute Task]Execute --> Document[Document Changes]## Documentation UpdatesMemory 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 clarificationflowchart TDStart[Update Process]subgraph ProcessP1[Review ALL Files]P2[Document Current State]P3[Clarify Next Steps]P4[Document Insights & Patterns]P1 --> P2 --> P3 --> P4endStart --> ProcessNote: 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.