본문으로 건너뛰기

agentmemory: AI 코딩 에이전트를 위한 영구 기억 장치

정석

agentmemory 배너

매일 아침 Claude Code를 열면 똑같은 일이 반복된다. “우리 프로젝트는 JWT 인증을 jose로 구현했고, 테스트는 test/auth.test.ts에, Edge 호환성 때문에 jsonwebtoken 대신 jose를 선택했어.” 세션이 끝나면 모든 컨텍스트가 증발하고, 다음 날 다시 설명해야 한다.

rohitg00/agentmemory는 이 문제를 근본적으로 해결한다. 에이전트가 도구를 사용할 때마다 조용히 관찰을 기록하고, 세션이 끝나면 압축하여 구조화된 기억으로 저장하며, 다음 세션 시작 시 필요한 컨텍스트만 정확히 주입한다. 4,400개 이상의 GitHub 스타와 400개 이상의 포크가 증명하듯, 이건 단순한 아이디어가 아니라 이미 검증된 솔루션이다.


1. 왜 지금 이 문제가 중요한가

AI 코딩 에이전트 생태계는 빠르게 성장하고 있지만, 기억은 여전히 가장 취약한 지점이다. Claude Code의 MEMORY.md, Cursor의 notepads, Cline의 memory bank — 모두 정적 텍스트 파일에 불과하다.

내장 메모리 (CLAUDE.md)agentmemory
규모200줄 제한무제한
검색전체 컨텍스트 로드BM25 + 벡터 + 그래프 (top-K)
토큰 비용240개 관찰 시 22K+ 토큰~1,900 토큰 (92% 절감)
에이전트 간 공유파일 단위MCP + REST (모든 에이전트)
가시성수동 파일 읽기실시간 뷰어 (:3113)

CLAUDE.md에 모든 내용을 담을 수 없는 이유는 간단하다. 200줄로는 컨텍스트 윈도우 낭비정보 부족 사이에서 줄타기할 수밖에 없다. agentmemory는 필요한 것만 검색해서 주입하므로, 92% 적은 토큰으로 더 정확한 컨텍스트를 제공한다.


2. 핵심 아키텍처: 4계층 기억 통합

agentmemory는 인간 두뇌의 기억 처리 방식을 모방한 4계층 구조를 채택했다.

계층설명비유
Working도구 사용의 원시 관찰단기 기억
Episodic압축된 세션 요약”무슨 일이 있었는지”
Semantic추출된 사실과 패턴”내가 아는 것”
Procedural워크플로우와 결정 패턴”어떻게 하는지”

기억은 시간에 따라 자연스럽게 감쇠(Ebbinghaus 곡선)하고, 자주 접근하는 기억은 강화되며, 오래된 기억은 자동으로 제거된다. 모순이 감지되면 해결 로직이 작동한다.

agentmemory 작동 데모

메모리 파이프라인

PostToolUse 후크 발동
  → SHA-256 중복 제거 (5분 윈도우)
  → 프라이버시 필터 (시크릿, API 키 제거)
  → 원시 관찰 저장
  → LLM 압축 → 구조화된 사실 + 개념 + 내러티브
  → 벡터 임베딩 (6개 제공자 + 로컬)
  → BM25 + 벡터 인덱싱

Stop / SessionEnd 후크 발동
  → 세션 요약
  → 지식 그래프 추출
  → 슬롯 리플렉션

SessionStart 후크 발동
  → 프로젝트 프로필 로드
  → 하이브리드 검색 (BM25 + 벡터 + 그래프)
  → 토큰 버짓 적용 (기본 2,000 토큰)
  → 대화에 주입

특히 주목할 점은 완전 자동화다. 12개의 후크가 모든 도구 사용을 자동으로 캡처하므로, 사용자가 수동으로 add()를 호출할 필요가 전혀 없다. 이것이 mem0(53K ⭐)과의 결정적 차이다.


3. 검색: BM25 + 벡터 + 그래프의 삼중 융합

agentmemory의 검색은 단순한 벡터 유사도가 아니다. 세 가지 신호를 RRF(Reciprocal Rank Fusion, k=60)로 융합한다.

스트림역할활성 조건
BM25스테밍 키워드 매칭 + 동의어 확장항상 활성
Vector코사인 유사도 기반 밀집 임베딩 검색임베딩 제공자 설정 시
Graph지식 그래프 엔티티 매칭 + BFS 탐색쿼리에서 엔티티 감지 시

임베딩은 all-MiniLM-L6-v2 기반 로컬 모델을 권장한다. 오프라인에서 작동하고, BM25-only 대비 +8pp 재현율 향상을 제공하며, API 키도 필요 없다. 필요하다면 Gemini, OpenAI, Voyage AI, Cohere, OpenRouter도 지원한다.

실제 벤치마크 결과가 인상적이다:

시스템R@5R@10MRR
agentmemory95.2%98.6%88.2%
BM25-only86.2%94.6%71.5%

LongMemEval-S(ICLR 2025) 벤치마크에서 95.2% R@5를 기록했다. mem0의 68.5%(LoCoMo), Letta의 83.2%(LoCoMo)와 비교하면 거의 10%p 이상 차이다.


4. 51개 MCP 도구: 기억을 넘어선 오케스트레이션

agentmemory는 단순한 기억 저장소가 아니다. 51개의 MCP 도구(선택적 확장), 6개 리소스, 3개 프롬프트, 4개 스킬을 제공하는 완전한 에이전트 메모리 플랫폼이다.

핵심 도구만 해도 memory_smart_search, memory_save, memory_sessions, memory_file_history, memory_profile 등 11개다. 확장 도구를 활성화하면 멀티 에이전트를 위한 memory_lease(배타적 작업 임대), memory_signal_send(에이전트 간 메시징), memory_mesh_sync(P2P 동기화)까지 사용할 수 있다.

모든 주요 코딩 에이전트를 지원한다는 점도 강점이다:

하나의 메모리 서버가 모든 에이전트와 세션에서 공유된다. Claude Code로 작업하다가 Cursor로 전환해도 같은 기억에 접근할 수 있다.


5. 경쟁 제품과의 비교

agentmemorymem0Letta/MemGPT내장 메모리
유형메모리 엔진 + MCP메모리 레이어 API완전한 에이전트 런타임정적 파일
자동 캡처12개 후크 (제로 수동)수동 add() 호출에이전트 자체 편집수동 편집
검색BM25+벡터+그래프(RRF)벡터+그래프벡터(아카이브)전체 로드
멀티 에이전트MCP+REST+리스+시그널API (조정 없음)Letta 런타임 내에이전트별 파일
외부 의존성없음 (SQLite+iii)Qdrant/pgvectorPostgres+벡터DB없음
기억 생애주기4계층 통합+감쇠+자동 삭제수동 추출에이전트 관리수동 정리

agentmemory의 가장 큰 차별점은 프레임워크 종속성이 없다는 것이다. MCP 프로토콜만 지원하면 어떤 에이전트든 붙일 수 있다. 반면 Letta는 자체 런타임 안에서만 동작하고, mem0은 API는 개방적이지만 자동 캡처 기능이 없다.


6. iii 엔진: 단 세 가지 프리미티브로 구현된 전체 스택

agentmemory의 기술적 백본은 iii 엔진이다. 흥미로운 점은 agentmemory가 단 세 가지 프리미티브(Functions, Triggers, State) 위에 전체 스택을 구축했다는 사실이다.

전통적 스택              →  agentmemory가 사용하는 것
Express.js / Fastify     →  iii HTTP Triggers
SQLite + pgvector        →  iii KV State + 인메모리 벡터 인덱스
SSE / Socket.io          →  iii Streams (WebSocket)
pm2 / systemd            →  iii 엔진 워커 감독
Prometheus / Grafana     →  iii OTEL + 상태 모니터
커스텀 플러그인 시스템    →  iii worker add <name>

118개 소스 파일, ~21,800 LOC, 800개 테스트, 123개 함수, 34개 KV 스코프 — 이 모든 것이 단일 iii 인스턴스 위에서 실행된다. Postgres도, Redis도, Express도, pm2도, Prometheus도 필요 없다.

이 구조의 실용적 장점은 확장성이다. iii worker add iii-pubsub 한 줄로 멀티 인스턴스 메모리 동기화를 추가할 수 있고, iii worker add iii-sandbox로 회수된 코드를 격리된 마이크로VM에서 실행할 수 있다.


7. 실시간 가시성: 뷰어와 iii 콘솔

agentmemory는 :3113 포트에 실시간 뷰어를 제공한다. 라이브 관찰 스트림, 세션 탐색기, 메모리 브라우저, 지식 그래프 시각화, 상태 대시보드까지 — 에이전트가 무엇을 기억하고 있는지 투명하게 볼 수 있다.

여기에 iii 콘솔을 추가하면 에이전트가 한 모든 일을 OpenTelemetry 트레이스로 추적할 수 있다. memory_smart_search 하나가 BM25 스캔 → 임베딩 조회 → RRF 융합 → 리랭커로 이어지는 전체 과정을 워터폴 차트로 볼 수 있다.


마치며: 코딩 에이전트의 마지막 퍼즐 조각

AI 코딩 에이전트는 도구 호출, 코드 생성, 멀티 에이전트 협업까지 빠르게 발전해왔다. 하지만 장기 기억만큼은 여전히 풀리지 않은 숙제였다. agentmemory는 이 퍼즐의 마지막 조각을 채워준다.

특히 주목할 점:

한 가지 아쉬운 점은 아직 v1.0이 아니라는 것. iii 엔진 버전 핀(v0.11.2)과 윈도우 지원의 거친 부분은 초기 단계의 프로젝트에서 흔히 볼 수 있는 이슈다. 하지만 4,400 스타와 활발한 이슈 대응 속도를 보면 v1.0도 머지않아 보인다.

코딩 에이전트를 진지하게 사용하는 개발자라면, agentmemory는 더 이상 선택이 아닌 필수 도구다.


🔗 관련 정보

이전
cmux: AI 코딩 에이전트를 위한 Ghostty 기반 macOS 터미널
다음
VS Code에서 Claude Code를 픽셀 아트 에이전트로: Pixel Agents 사용기