목록으로
Memory Bank: How to Make Cline an AI Agent That Never Forgets - Cline Blog
Blog2025.04.27

Memory Bank: How to Make Cline an AI Agent That Never Forgets - Cline Blog

요약

이 논문은 AI 코딩 어시스턴트인 Cline이 "context window" 한계로 인해 프로젝트 정보를 "망각"하는 문제를 해결하기 위한 "Memory Bank" 시스템을 제시합니다.
"Memory Bank"는 Cline이 project context를 지속적으로 유지하기 위해 특정 폴더 내의 구조화된 markdown files을 읽고 업데이트하도록 지시하는 custom instruction set을 활용합니다.
️ 특히, 이 시스템은 Mermaid diagrams를 instructions에 사용하여 AI가 문서 구조를 관리하는 방법을 명확하고 형식적인 언어로 가르쳐, 자연어보다 효율적인 AI communication method를 제공합니다.

상세 내용

본 논문은 AI 코딩 어시스턴트인 Cline이 겪는 '망각' 문제, 즉 제한적인 "context window"로 인해 발생하는 프로젝트 컨텍스트 손실 문제를 해결하기 위한 "Memory Bank" 시스템을 제시합니다. 이 문제는 AI가 새로운 채팅을 시작하거나 context window가 가득 찰 때마다 프로젝트의 세부 정보를 재설명해야 하는 비효율성을 야기합니다.

이러한 문제에 대한 영감은 기억 상실증 탐정이 자신의 몸에 중요한 사실을 문신하고 Polaroid 사진을 체계적으로 정리하여 기억을 재구성하는 영화 *Memento*에서 얻었습니다. Memory Bank는 이와 유사하게 AI가 외부에 저장된 '기억'을 통해 컨텍스트를 재구축할 수 있도록 설계되었습니다.

핵심 방법론 (Core Methodology):

Memory Bank는 Cline의 설정에 추가되는 "community-created custom instruction set"입니다. 이 "custom instruction"은 Cline에게 작업을 시작하기 전에 memory-bank/ 폴더를 확인하도록 지시합니다. 만약 해당 파일이 없으면 생성하고, 존재하면 읽어서 프로젝트 컨텍스트를 파악하도록 합니다.

이 시스템의 독창적인 특징은 "Mermaid diagrams"를 활용하여 Cline에게 문서화 구조 및 관리 방법을 가르친다는 점입니다. 일반적으로 시스템 프롬프트(system prompts)는 markdown, JSON, XML 등으로 작성되지만, Memory Bank는 Mermaid flowchart를 사용하여 AI에게 워크플로우와 데이터 구조를 명확하게 제시합니다.

  • 문서 구조 정의:
  • "custom instruction" 내에 다음과 같은 Mermaid flowchart가 포함되어 Cline이 문서 파일 간의 관계를 이해하도록 돕습니다:
    mermaidflowchart 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]

    이 다이어그램은 projectbrief.md가 모든 것의 기반이며, 다른 문서들(예: productContext.md, systemPatterns.md, techContext.md, activeContext.md, progress.md)이 이로부터 파생되거나 서로 연결되는 방식을 시각적으로 설명합니다. Cline은 이 시각적 구조를 기반으로 실제 markdown 파일에 프로젝트 지식을 저장하고 관리합니다.

  • Memory Bank 라이프사이클 정의:
  • Memory Bank는 "read, verify, execute, and update"의 지속적인 사이클로 작동하며, 이 과정 또한 "custom instruction"에 포함된 Mermaid flowchart로 정의됩니다:
    mermaidflowchart 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]

    이 flowchart는 Cline이 새로운 프로젝트를 시작하거나 기존 프로젝트 작업을 수행할 때 Memory Bank 파일을 어떻게 읽고, 컨텍스트를 확인하고, 계획을 수립하고, 문서를 업데이트하는지 단계별로 명확하게 지시합니다.

    작동 방식 및 이점:

    * 초기 설정 (Initial Setup): 새로운 프로젝트 시작 시 Cline은 memory-bank/ 디렉토리를 생성하고, 필요한 파일을 초기화하며, 사용자로부터 정보를 요청하여 baseline 문서를 구축합니다.
    * 개발 중 (During Development): 작업 전에는 모든 Memory Bank 파일을 읽어 컨텍스트를 확인하고, 작업 중에는 설정된 패턴을 따르며 변경 사항을 추적하고 "context window" 사용량을 모니터링합니다. 중요한 변경 후에는 관련 문서를 업데이트하여 파일 간의 일관성을 유지하고 잠재적인 "context reset"에 대비합니다.
    * Mermaid의 장점: Mermaid 다이어그램은 단순한 텍스트 명령보다 AI에게 더 명확한 "structured language"를 제공합니다. 각 노드, 연결, 결정 지점이 명시적으로 정의되므로, 자연어의 모호성을 줄이고 AI에게 '정확한 지도'를 제공하는 효과가 있습니다. 이를 통해 Cline은 "context window"가 가득 차거나 새 세션이 시작될 때 이 외부화된 '기억'을 읽어 프로젝트 이해도를 신속하게 재구축할 수 있습니다.

    결론적으로, Memory Bank는 AI의 "forgetful" 문제를 해결하기 위해 외부화된 문서 시스템을 사용하며, 특히 Mermaid 다이어그램을 활용한 "visual prompting"을 통해 AI에게 복잡한 워크플로우와 데이터 구조를 명확하게 지시하는 혁신적인 접근 방식을 제시합니다. 이는 AI와 소통하는 더 효과적인 방법에 대한 통찰력을 제공합니다.

    원본 보기
    Web
    Shared by Anonymous