generative-ai/gemini/agents/always-on-memory-agent at main · GoogleCloudPlatform/generative-ai
핵심 포인트
- 1이 프로젝트는 기존 AI 에이전트의 '기억 상실' 문제를 해결하기 위해, 백그라운드에서 정보를 지속적으로 처리하고 통합하는 'Always On Memory Agent'를 제안합니다.
- 2이 에이전트는 Gemini 3.1 Flash-Lite의 멀티모달 기능을 활용하여 다양한 유형의 파일을 Ingest하고, 마치 수면 중인 인간 두뇌처럼 주기적으로 메모리를 Consolidate하여 연결점을 찾고 통찰을 생성합니다.
- 3사용자는 Watch folder, HTTP API, Streamlit dashboard를 통해 데이터를 Ingest하고, QueryAgent를 통해 저장된 메모리에 대한 질문을 하며, Google ADK와 SQLite를 기반으로 구축되어 연속적인 AI 기억 시스템을 제공합니다.
본 논문은 대부분의 인공지능 에이전트가 "amnesia(기억상실증)"를 겪으며, 정보 처리 후 이를 잊어버리는 문제를 해결하기 위한 "Always-On Memory Agent"를 제안합니다. 기존의 Vector DB + RAG 방식은 수동적인 임베딩 및 검색에 그치고, Conversation summary는 시간이 지남에 따라 세부 정보를 잃으며, Knowledge graphs는 구축 및 유지 보수 비용이 많이 든다는 한계점을 지적합니다. 이 에이전트는 이러한 한계점을 극복하기 위해 인간의 뇌가 수면 중에 정보를 재생, 연결 및 압축하는 방식에서 영감을 받아, 24시간 내내 백그라운드 프로세스로 작동하며 지속적으로 정보를 처리, 통합 및 연결하는 persistent, evolving memory 시스템을 구축합니다. 특히, vector database나 embeddings를 사용하지 않고, 오직 LLM이 structured memory를 읽고, 생각하고, 쓰는 방식으로 작동한다는 점이 핵심입니다.
Core Methodology (핵심 방법론):
에이전트 아키텍처는 각 에이전트가 메모리 저장소를 읽고 쓰는 고유한 tools를 가지며, orchestrator가 들어오는 요청을 적절한 specialist에게 라우팅하는 방식으로 구성됩니다. 작동 방식은 세 가지 주요 단계로 나뉩니다.
- Ingest (정보 수집):
IngestAgent는 Gemini의multimodal기능을 활용하여 텍스트, 이미지, 오디오, 비디오, PDF 등 27가지 파일 유형에서 structured information을 추출합니다. 이 정보에는Summary,Entities,Topics,Importance와 같은 필드가 포함됩니다.- 정보 수집 방법은 세 가지입니다: 로컬
inbox폴더에 파일을 드롭하면File watcher가 자동으로 인식하는 방식,Streamlit dashboard를 통한 파일 업로드 방식, 그리고HTTP API(POST /ingest)를 통해 텍스트 콘텐츠를 전송하는 방식입니다.
- Consolidate (정보 통합):
ConsolidateAgent는 타이머(기본값: 30분마다)에 따라 실행됩니다. 이는 인간의 뇌가 수면 중에 작동하는 방식과 유사하게unconsolidated memories를 검토하고, 그들 사이의connections를 찾아내며,cross-cutting insights를 생성하고, 관련된 정보를compress하는 역할을 수행합니다.- 이 과정에서
LLM은 단순히 정보를 저장하는 것을 넘어, 여러 메모리 간의 논리적 연결(Memory #1 ↔ #3: Agent reliability needs better memory architectures,Memory #2 ↔ #1: Cost reduction enables scaling agent deployment등)을 식별하고, 이들로부터 새로운 통찰(Insight: "The bottleneck for next-gen AI tools is the transition from static RAG to dynamic memory systems")을 도출하여 메모리 시스템을 능동적으로 진화시킵니다.
- Query (질의응답):
QueryAgent는 저장된 모든 메모리와consolidation insights를 읽은 후, 사용자의 질문에 대한 답변을 종합합니다.- 이때 답변에는 해당 정보의 출처인
source citations(예:[Memory 2],[Memory 1])가 함께 제공되어 정보의 신뢰성과 투명성을 높입니다.
Implementation Details (구현 세부사항):
Google ADK (Agent Development Kit)를 사용하여agent orchestration을 구현합니다.- 모든
LLM operations에는Gemini 3.1 Flash-Lite가 사용됩니다. 이 모델은Fast하고Cheap하며Smart enough하여 지속적인 백그라운드 처리(24/7 operation)에 적합합니다. persistent memory storage에는SQLite데이터베이스가 사용됩니다.HTTP API는aiohttp로 구축되었으며,Streamlit으로 시각적인dashboard가 제공됩니다.- 에이전트는
inbox/디렉토리 감시, 30분마다consolidation실행,http://localhost:8888에서 쿼리 서비스 제공 등의 기능을 포함합니다. - 제공되는
API는/status,/memories,/ingest,/query,/consolidate,/delete,/clear등의endpoint를 포함하며,CLI options를 통해watch directory,port,consolidation interval등을 설정할 수 있습니다. - 프로젝트 구조는
agent.py(핵심 에이전트),dashboard.py(웹 UI),requirements.txt(의존성),inbox/(자동 수집 폴더),docs/,memory.db(SQLite 데이터베이스) 등으로 구성됩니다.
MIT License입니다.