# Agent Memory System (에이전트 메모리 시스템)

## 📌 Brief Summary
Agent Memory System은 에이전트가 런타임 중에 획득한 정보, 사용자의 선호도, 현재 작업의 상태, 그리고 과거의 성공/실패 경험을 체계적으로 저장하고 관리하는 다층 메모리 아키텍처이다. 메모리 시스템은 에이전트가 단기적인 문맥 유지(Context)를 넘어, 장기적인 학습과 성장을 가능하게 하는 핵심 지식 기반(Knowledge Base) 역할을 한다.

## 📖 Core Content
*   **다층 메모리 구조 (Layered Memory)**:
    *   **Short-Term Memory (STM)**: 현재 턴과 직전 요청의 핵심 제약사항을 유지. (RAM 역할)
    *   **Working Task Memory (WTM)**: 활성화된 미션의 목표, 진행 단계, 추출된 증거를 관리.
    *   **Long-Term Memory (LTM)**: 사용자 선호, 프로젝트 규칙, 반복되는 설계 철학을 영구 보존. (Disk 역할)
    *   **Evidence Memory (EM)**: 실제 읽은 파일, 실행 로그 등 검증된 사실만을 격리 저장.
*   **워크플로우 메모리 (AWM)**: 개별 에이전트의 기억을 넘어, 여러 에이전트가 협업하는 워크플로우 전체의 상태와 결과물을 공유하고 동기화한다.
*   **추론 결합 지속성 (Inference-Coupled Persistence)**: 모델이 작업을 마친 후 스스로 성공 여부를 분석하고, 향후 재사용 가능한 '스킬'이나 '에피소드'로 요약하여 저장소에 기록한다.
*   **메모리 인덱싱 및 검색 (RAG)**: 방대한 메모리 중 현재 작업에 가장 관련성 높은 정보를 벡터 검색(Vector Search)이나 키워드 검색을 통해 컨텍스트에 주입한다.
*   **망각 및 정제 (Compaction)**: 오래되거나 가치가 낮은 정보를 삭제하거나 압축하여 메모리 블로트(Memory Bloat)를 방지하고 검색 효율을 높인다.

## ⚖️ Trade-offs & Caveats
*   **메모리 중독 (Memory Poisoning)**: 잘못된 정보나 악의적인 데이터가 메모리에 기록될 경우, 이후 모든 세션의 판단에 악영향을 미칠 수 있다.
*   **검색 노이즈**: 메모리가 너무 커지면 관련 없는 정보가 검색되어 모델의 컨텍스트를 오염시킬 수 있다.
*   **동기화 오버헤드**: 여러 에이전트나 세션 간에 메모리를 실시간으로 동기화하는 과정에서 성능 저하와 데이터 충돌이 발생할 수 있다.

## 🔗 Knowledge Connections

### Related Concepts
*   [[Inference-Coupled Persistence|Inference-Coupled Persistence]]
    *   연결 이유: 메모리를 생성하고 영구화하는 핵심 기전이다.
*   [[S-component (State Store)|S-component (State Store)]]
    *   연결 이유: 메모리 시스템이 실제로 데이터를 저장하는 하네스의 구성 요소이다.
*   [[Context Engineering|Context Engineering]]
    *   연결 이유: 저장된 메모리 중 어떤 정보를 컨텍스트에 넣을지 결정하는 전략이다.

### Deeper Research Questions
*   에이전트가 자신의 실수를 분석하여 '부정적 지식(Negative Knowledge)'을 메모리에 저장하고 이를 회피하는 로직은 어떻게 설계해야 하는가?
*   메모리의 신뢰도(Confidence Score)를 실시간으로 업데이트하여, 시간이 지남에 따라 정보의 가중치를 조절하는 알고리즘은 무엇인가?
*   메모리에 저장된 지식이 최신 프로젝트 상태와 충돌할 때(Obsolescence), 이를 자동으로 감지하고 폐기하는 메커니즘은 무엇인가?

### Practical Application Contexts
*   **Implementation:** VS Code 확장 프로그램에서 세션 종료 시 현재 작업의 핵심 결과를 `AgentMemoryState` 객체로 직렬화하여 로컬 파일에 저장하고, 재시작 시 이를 복구한다.
*   **System Design:** 에이전트 간 메모리 공유를 위해 중앙 집중형 벡터 DB를 구축하고, 각 에이전트가 공유된 지식 베이스 위에서 독립적으로 사고하도록 설계한다.

---
*Last updated: 2026-05-01*
