generative-ai/gemini/agents/always-on-memory-agent at main · GoogleCloudPlatform/generative-ai
Blog

generative-ai/gemini/agents/always-on-memory-agent at main · GoogleCloudPlatform/generative-ai

GoogleCloudPlatform
2026.03.13
·GitHub·by 이호민
#Agent#Gemini#LLM#Memory#RAG

핵심 포인트

  • 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 databaseembeddings를 사용하지 않고, 오직 LLM이 structured memory를 읽고, 생각하고, 쓰는 방식으로 작동한다는 점이 핵심입니다.

Core Methodology (핵심 방법론):

에이전트 아키텍처는 각 에이전트가 메모리 저장소를 읽고 쓰는 고유한 tools를 가지며, orchestrator가 들어오는 요청을 적절한 specialist에게 라우팅하는 방식으로 구성됩니다. 작동 방식은 세 가지 주요 단계로 나뉩니다.

  1. Ingest (정보 수집):
    • IngestAgent는 Gemini의 multimodal 기능을 활용하여 텍스트, 이미지, 오디오, 비디오, PDF 등 27가지 파일 유형에서 structured information을 추출합니다. 이 정보에는 Summary, Entities, Topics, Importance와 같은 필드가 포함됩니다.
    • 정보 수집 방법은 세 가지입니다: 로컬 inbox 폴더에 파일을 드롭하면 File watcher가 자동으로 인식하는 방식, Streamlit dashboard를 통한 파일 업로드 방식, 그리고 HTTP API (POST /ingest)를 통해 텍스트 콘텐츠를 전송하는 방식입니다.
  1. 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")을 도출하여 메모리 시스템을 능동적으로 진화시킵니다.
  1. 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 APIaiohttp로 구축되었으며, 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입니다.