TrendShift · AI Agent Memory

agentmemory — AI 코딩 에이전트의
잊지 않는 두뇌

Claude Code, Cursor, Gemini CLI 등 모든 MCP 클라이언트에 영구 기억을 붙여주는 로컬 메모리 서버.

rohitg00/agentmemory · TypeScript · Apache-2.0 · TrendShift #25 2026-05-19
00 — 들어가며Context

먼저, "AI 코딩 에이전트의 기억"이 왜 문제인가

왜 이런 메모리 서버가 지금 필요한가.

2024~2026년 사이 Claude Code, Cursor, Codex, Gemini CLI, Cline 같은 AI 코딩 에이전트가 폭발적으로 늘었다. 그런데 공통 약점이 있다 — 세션이 끝나면 모든 맥락을 잊는다. 매번 새 채팅을 열 때마다 "우리 프로젝트는 Next.js이고 인증은 jose로 하고 테스트는 Vitest야…" 같은 설명을 반복해야 한다.

빌트인 메모리(CLAUDE.md, .cursorrules)도 있지만 200줄 한계가 있고 모든 내용이 한 번에 컨텍스트에 로드되어 토큰을 잡아먹는다. agentmemory는 BM25 + 벡터 + 지식 그래프로 검색되는 진짜 데이터베이스를 두고, 새 세션이 시작될 때 관련 기억만 자동으로 꺼내서 끼워주는 미들웨어다.

Term · 용어
MCP (Model Context Protocol, 모델 컨텍스트 프로토콜)
Anthropic이 만든 "AI 에이전트가 외부 도구와 대화하는 공용 규격". USB-C 케이블이 어느 노트북에서나 충전되듯, MCP를 지원하면 Claude Code/Cursor/Gemini CLI 모두에서 같은 도구를 쓸 수 있다. agentmemory는 MCP 서버로 동작해서 어떤 에이전트든 같은 메모리를 공유한다.
Term · 용어
BM25 (Best Matching 25, 키워드 검색의 사실상 표준)
TF-IDF의 확률론적 확장 알고리즘. 단어 빈도(TF), 역문서 빈도(IDF), 문서 길이 정규화로 점수를 매긴다. "정확히 같은 단어"를 찾는 데 강점. agentmemory는 이걸 그리스/키릴/히브리/아랍/한·중·일 토큰화까지 확장했다.
Term · 용어
RRF (Reciprocal Rank Fusion, 순위 융합 알고리즘)
여러 랭킹을 합칠 때 점수가 아닌 순위의 역수를 더한다. score = Σ 1/(k + rank), k=60이 표준. 단순하지만 강력해서 BM25 + 벡터 + 그래프 하이브리드 검색의 디폴트로 굳어졌다.
01 — 한 줄 요약TL;DR

이 프로젝트의 핵심 메시지

한 문장으로 줄이면.

Core Message

"같은 설명을 매번 반복하기 지쳤다 — agentmemory는 Claude Code·Cursor·Codex가 세션을 넘어 기억하게 만드는 외부 DB 0개의 로컬 메모리 서버다."

단순한 텍스트 파일 수준의 메모리가 아니라 BM25 + 벡터 + 지식 그래프로 검색되는 진짜 데이터베이스를 만들어 두고, 새 세션이 시작될 때 관련 기억만 top-K로 자동 주입한다.

Karpathy가 트윗한 "LLM Wiki 패턴"을 신뢰도 점수·라이프사이클·지식 그래프·하이브리드 검색으로 확장한 구현체. 설계 문서가 GitHub Gist에 먼저 올라가 1.2k 스타를 받고 바이럴된 후 본격적으로 코드가 공개됐다.

02 — 왜 주목받는가Why now

2026년 5월, 트렌딩 #25에 오른 이유

숫자가 강력하다 + 경쟁 우위가 명확하다.

풀어야 했던 진짜 문제

오늘날 AI 코딩 에이전트의 가장 큰 약점은 "건망증"이다. 사용자는 매 세션마다 반복 설명해야 한다.

빌트인 CLAUDE.md는 200줄 한계 + 매 호출마다 전체 로딩으로 토큰을 잡아먹는다.

숫자로 보는 차별점

지표agentmemory경쟁 비교
검색 정확도 R@595.2% (LongMemEval)mem0: 68.5% · Letta: 83.2%
토큰 사용량/년~170K tokens풀 컨텍스트 붙여넣기: 19.5M+ (사실상 불가능)
비용/년~$10 (로컬 임베딩이면 $0)LLM 요약 방식: ~$500
외부 DB 의존성0개 (SQLite + iii-engine 내장)mem0: Qdrant/pgvector 필요
자동 캡처12개 훅으로 자동mem0: 수동 add() 호출

경쟁 제품 대비 — 라이브 비교

vs mem0 (53K stars)

  • mem0는 외부 벡터 DB(Qdrant/pgvector)가 필수. agentmemory는 zero-dependency
  • mem0는 add() 수동 호출. agentmemory는 12 hooks로 자동 캡처

vs Letta / MemGPT (22K stars)

  • Letta는 자체 에이전트 런타임 강제 (vendor lock-in). agentmemory는 어떤 MCP 클라이언트에도 붙는다

vs CLAUDE.md 빌트인

  • CLAUDE.md는 200줄 제한 + 매 호출마다 전체 로딩
  • agentmemory는 무제한 저장 + 필요한 부분만 top-K 토큰 예산 안에서 주입
Analogy · 왜 바이럴됐나

설계 문서가 GitHub Gist에 먼저 올라가 1,200 스타 / 172 포크를 받으며 화제가 됐다. Karpathy의 "LLM Wiki 패턴" 트윗에서 영감을 받았지만, 거기에 신뢰도 점수 · 라이프사이클 · 지식 그래프 · 하이브리드 검색까지 얹은 완성도가 어필했다.

03 — 기술 스택Stack

전체 기술 지도

런타임 · 검색 · 임베딩 · 인프라.

런타임 & 코어

레이어기술역할
언어TypeScript / Node.js ≥ 20전체 코드베이스 (118 source files, ~21,800 LOC)
엔진iii-engine v0.11.2 (Rust)HTTP/WS/KV/Stream/OTEL을 한 번에 제공. Postgres+Redis+Express+pm2+Prometheus 통합 대체
스토리지SQLite + iii KV State외부 DB 없음 — 모든 데이터 로컬
벡터 인덱스in-memory 자체 구현pgvector/Qdrant 같은 외부 의존 제거
패키지 배포npm @agentmemory/agentmemorynpx로 즉시 실행 가능
Term · 용어
iii-engine (Rust 백엔드 런타임)
"Functions + Triggers + KV State + Streams + OTEL traces"를 하나의 프리미티브로 묶은 런타임. 전통 스택에서 Express(HTTP), SQLite(DB), Socket.io(실시간), pm2(프로세스 관리), Prometheus(관측)를 따로 설치하던 걸 한 번에 해결한다. iii worker add 한 줄로 pubsub/cron/queue/sandbox 능력을 추가.

검색 — 하이브리드 3중 스트림

┌────────── 검색 쿼리 ──────────┐
│                                │
▼                                ▼
[BM25]   [Vector]            [Graph]
키워드   임베딩 유사도          엔티티
└─── RRF 융합 (k=60) ───┘
세션 다양화 (session당 최대 3개)
              ▼
       Top-K 결과 반환
스트림역할활성화 조건
BM25형태소 분석 + 동의어 확장된 키워드 매칭. 그리스/키릴/히브리/아랍/한·중·일까지 토큰화 지원항상
Vector임베딩 코사인 유사도. all-MiniLM-L6-v2 로컬 모델이 기본 (무료/오프라인)임베딩 제공자 설정 시
Graph지식 그래프 BFS 탐색 — 엔티티 추출 후 관계 따라 확장쿼리에 엔티티 감지 시

임베딩 제공자 (선택)

  • Local (권장)@xenova/transformers + all-MiniLM-L6-v2. 오프라인, 무료, API 키 불필요
  • Geminigemini-embedding-001 (무료 티어 제공)
  • OpenAItext-embedding-3-small ($0.02/1M)
  • Voyage AIvoyage-code-3 (코드 특화)
  • Cohereembed-english-v3.0

LLM 제공자 (압축/요약, 선택)

기본값은 no-op — LLM 호출 없이도 BM25 기반 요약/검색이 동작한다. 필요하면 Anthropic / Gemini / OpenAI / MiniMax / OpenRouter 키를 환경변수에 넣으면 자동 감지된다.

인프라 / 배포

로컬 실행

  • npm i -g @agentmemory/agentmemory 또는 npx 한 방으로 실행

Docker

  • 번들된 docker-compose.yml + iiidev/iii:0.11.2 이미지

PaaS 원클릭 배포

  • Fly.io · Railway · Render · Coolify(셀프호스팅) 템플릿 제공

멀티 인스턴스

  • iii worker add iii-pubsub — write 팬아웃, search 유니온
04 — 아키텍처Design

시스템 구조와 핵심 설계 패턴

전체 구조도 → 메모리 파이프라인 → 4-Tier 통합.

전체 시스템 구조도

┌──────────────────────────────────────────────────────────────┐
│                    AI 코딩 에이전트들                         │
│  Claude Code · Cursor · Codex · Gemini CLI · Cline · …       │
└──────────┬──────────────────┬──────────────────┬─────────────┘
           │ Hooks            │ MCP (stdio)      │ REST
           ▼                  ▼                  ▼
┌──────────────────────────────────────────────────────────────┐
│           @agentmemory/agentmemory  (Node + TS)              │
│ ┌─────────────┐  ┌──────────────┐  ┌─────────────────────┐   │
│ │ Capture     │  │ Search       │  │ Lifecycle           │   │
│ │ - 12 hooks  │  │ - BM25       │  │ - 4-tier 통합        │   │
│ │ - 중복제거  │  │ - Vector     │  │ - 에빙하우스 망각   │   │
│ │ - 프라이버시│  │ - Graph      │  │ - 자동 evict        │   │
│ └─────────────┘  └──────────────┘  └─────────────────────┘   │
│                                                              │
│           ↓↑ iii functions (mem::remember 등)                │
└──────────────────────────────────────────────────────────────┘
           ↓                  ↓                  ↓
┌──────────────────────────────────────────────────────────────┐
│           iii-engine (Rust, 외부 DB 0개)                     │
│  HTTP :3111 │ WS :3112 │ Viewer :3113 │ Console :3114        │
│  KV State (SQLite)  │  Streams (WebSocket)  │  OTEL traces   │
└──────────────────────────────────────────────────────────────┘

패턴 1 — 메모리 파이프라인 (기억이 만들어지는 길)

PostToolUse 훅 발생 (에이전트가 도구 사용 끝낼 때마다)
  └─→ SHA-256 중복제거 (5분 윈도우)
  └─→ 프라이버시 필터 (API키, 시크릿, <private> 태그 제거)
  └─→ Raw observation 저장
  └─→ LLM 압축 → 구조화된 facts + concepts + narrative
  └─→ Vector 임베딩 생성 (6개 제공자 + 로컬)
  └─→ BM25 + Vector 인덱스에 등록

Stop / SessionEnd 훅 발생 (세션 끝)
  └─→ 세션 요약
  └─→ 지식 그래프 추출 (옵션: GRAPH_EXTRACTION_ENABLED)
  └─→ Slot reflection (옵션: SLOT_REFLECT_ENABLED)

SessionStart 훅 발생 (새 세션 시작)
  └─→ 프로젝트 프로파일 로드 (top 컨셉, 파일, 패턴)
  └─→ 하이브리드 검색 실행
  └─→ Token budget 적용 (기본 2000 토큰)
  └─→ 대화 컨텍스트에 주입

패턴 2 — 4-Tier 메모리 통합 (사람 뇌의 모방)

사람의 뇌가 단기/장기 기억을 분리해서 잠자는 동안 통합(consolidation)하는 것에서 영감을 얻었다. Working → Episodic → Semantic → Procedural 4단계로 압축·정착시킨다.

티어저장 내용일상 비유
Working도구 사용에서 나온 raw observation"방금 본 것" (단기 기억)
Episodic압축된 세션 요약"무슨 일이 있었나"
Semantic추출된 사실 / 패턴"내가 아는 것"
Procedural워크플로 / 의사결정 패턴"어떻게 하는지"
Analogy · 자동 망각 — 에빙하우스 곡선

자주 접근되는 기억은 강화되고, 안 쓰는 건 시간에 따라 decay된다. 모순되는 기억은 자동 감지되어 새 버전이 옛 버전을 supersede한다. 그래서 메모리가 무한정 부풀지 않는다 — 사람이 잠자며 기억을 통합하는 것과 같은 원리.

패턴 3 — 캡처되는 훅 한눈에 보기

훅 이름저장되는 내용
SessionStart프로젝트 경로, 세션 ID
UserPromptSubmit사용자 프롬프트 (프라이버시 필터링)
PreToolUse파일 접근 패턴 + 보강된 컨텍스트
PostToolUse도구 이름, 입력, 출력
PostToolUseFailure에러 컨텍스트
PreCompact컨텍스트 압축 직전 메모리 재주입
SubagentStart/Stop서브 에이전트 라이프사이클
Stop세션 종료 요약
Trap · 함정
메모리에 무엇이든 저장 = 토큰 낭비

"많이 기억할수록 좋다"고 생각하면 결국 모든 세션에 수천 토큰의 무관한 기억이 주입되어 LLM 컨텍스트를 채우고 노이즈가 된다. CLAUDE.md 200줄 제한이 사실 의도된 보호장치였던 셈.

Fix · 해결책
Token Budget + Top-K 주입

agentmemory는 SessionStart에서 "주입할 토큰 예산"(기본 2000)을 정하고, 그 안에서 가장 관련도 높은 top-K만 골라 넣는다. 검색 자체는 무제한이지만 컨텍스트에 들어가는 양은 엄격히 제한.

05 — 디렉토리Repo map

레포 구조 해부

어디에 뭐가 있는지.

레포 자체는 "118 source files · ~21,800 LOC · 950+ tests · 123 functions · 34 KV scopes"로 꽤 크다. 핵심 폴더만 보면:

agentmemory/
├── src/
│   ├── cli.ts              # `agentmemory` 명령어 진입점 (start/stop/connect/doctor/upgrade)
│   ├── triggers/api.ts     # 124개 REST 엔드포인트 정의 (port 3111)
│   ├── …                   # 메모리 파이프라인, 훅 핸들러, 검색 로직
│
├── plugin/                 # 각 에이전트별 네이티브 플러그인
│   ├── .claude-plugin/     #  → 12 hooks + 8 skills + MCP 자동 와이어링
│   ├── .codex-plugin/      #  → 6 hooks (Codex 호환 이벤트만)
│   └── opencode/           #  → 22 auto-capture hooks (OpenCode 가장 깊은 통합)
│
├── integrations/           # 비-네이티브 통합 가이드
│   ├── openclaw/
│   ├── hermes/             # ~/.hermes/config.yaml memory.provider
│   └── pi/
│
├── benchmark/              # 성능 측정 자료
│   ├── LONGMEMEVAL.md      # ICLR 2025 벤치 (500 Q)
│   ├── QUALITY.md
│   ├── SCALE.md
│   └── COMPARISON.md       # mem0, Letta, Khoj, claude-mem, Hippo와 비교
│
├── eval/                   # 평가 하네스 (adapter-pluggable)
├── docs/benchmarks/        # 공개 스코어카드 (NDJSON)
│
├── deploy/                 # 원클릭 배포 템플릿
│   ├── fly/                # fly.io (auto_stop_machines)
│   ├── railway/            # Railway Hobby 플랜
│   ├── render/             # Render Blueprint
│   └── coolify/            # 셀프호스팅 VPS
│
├── examples/python/        # iii-sdk로 직접 호출하는 파이썬 예제
├── eval/README.md          # 벤치마크 재현 방법
└── docker-compose.yml      # iiidev/iii:0.11.2 + agentmemory
Analogy · 학습 팁

처음 코드를 뜯어볼 때는 src/cli.tssrc/triggers/api.tsplugin/.claude-plugin/ 순서로 보면 "명령어가 어떻게 REST 엔드포인트를 호출하고, 그 엔드포인트가 어떤 훅에서 트리거되는지" 흐름을 따라가기 좋다.

06 — 학습 포인트What to learn

분야별 배울 것

기술 영역마다 무엇을 가져갈지.

TypeScript / Node 서버 설계

  • 하나의 명령어가 npm 글로벌 설치, npx 실행, Docker 컴포즈를 모두 다루는 CLI 설계법
  • npx 캐시 문제 — ~/.npm/_npx에 버전이 고정되는 함정과 -y …@latest 우회법

실습: 자신의 npm 패키지를 npm install -gnpx 양쪽으로 동작하게 만들어보기

정보 검색 (IR) 기초

  • BM25 — TF-IDF의 확률론적 확장. 키워드 점수의 사실상 표준
  • Vector search — 임베딩 코사인 유사도
  • RRF (Reciprocal Rank Fusion) — 서로 다른 랭킹을 점수가 아닌 순위로 섞는 가장 단순/강력한 융합 알고리즘 (k=60이 표준)

실습: 같은 문서 집합에 BM25만, 벡터만, RRF 융합 셋을 각각 돌려 R@5를 비교

MCP 서버 만들기

  • 표준 입출력(stdio)으로 동작하는 MCP 서버 구조
  • tools / resources / prompts / skills 4종 프리미티브의 차이
  • "프록시 모드"와 "스탠드얼론 모드" 분리 (서버 살아있을 때 vs 없을 때)

실습: memory_recall만 구현한 미니 MCP 서버를 Claude Desktop에 붙여 본다

임베딩 — 로컬 vs 클라우드

  • @xenova/transformers로 브라우저/Node에서 트랜스포머 모델 직접 실행
  • "API 키 없이도 작동" 디폴트를 만드는 패턴 — 사용자 경험에 결정적

실습: all-MiniLM-L6-v2를 띄워 본인 문서 100개에 대해 검색 R@5를 측정

라이프사이클 & 자동 망각

  • 에빙하우스 망각 곡선을 코드로 표현하는 법 (TTL + 접근 강화)
  • 모순 감지 (contradiction detection)와 supersession

실습: 같은 사실의 "구버전/신버전" 두 메모리를 넣고 자동 superseding 동작 관찰

OTEL 관측성

  • memory_smart_search 한 번이 BM25 scan → embedding lookup → RRF → reranker로 어떻게 워터폴 trace에 찍히는지 보기

실습: iii console(:3114)에서 trace를 열어 가장 느린 span을 찾아본다

07 — 요구사항Setup

하드웨어 · 시스템 요구사항

최소 사양 + OS별 함정.

항목요구사항
OSmacOS / Linux / Windows 10·11
Node.js≥ 20
외부 DB없음 (SQLite + iii KV 내장)
iii-enginev0.11.2 (네이티브 바이너리 또는 Docker 이미지)
임베딩 (옵션)로컬 모델 사용 시 ~100MB 디스크, CPU 추론으로 충분
포트3111 (REST) · 3112 (WS) · 3113 (Viewer) · 3114 (iii Console)
메모리Node 프로세스 기본 + 캐시 — 일반 노트북에서 무리 없음
Trap · Windows 사용자 주의

iii-engine은 sh 설치 스크립트만 공식 지원한다. Windows에서는 다음 3가지 옵션 중 하나를 골라야 한다:

① GitHub Release에서 iii-x86_64-pc-windows-msvc.zip 다운로드 후 PATH에 넣기. ② Docker Desktop을 띄우기. ③ MCP만 필요하면 npx -y @agentmemory/mcp로 엔진 없이 쓰기.

08 — 실습 과제Hands-on

직접 해볼 수 있는 5단계

난이도별 실습 — Easy → Hard.

실습 1 — 30초 데모 돌리기Easy

1) 터미널 1에서 npx @agentmemory/agentmemory 2) 터미널 2에서 npx @agentmemory/agentmemory demo 3) http://localhost:3113 실시간 뷰어 열기 4) JWT 인증/N+1 쿼리/레이트 리미팅 3개 세션이 시드된다 5) "database performance optimization"으로 검색 → N+1 쿼리 세션이 잡힘

배우는 것: 키워드만으로는 불가능한 시맨틱 매칭의 위력

실습 2 — Claude Code/Cursor에 붙이기Easy

1) Claude Code: /plugin marketplace add rohitg00/agentmemory/plugin install agentmemory 2) Cursor: ~/.cursor/mcp.json"agentmemory" MCP 서버 등록 (npx -y @agentmemory/mcp) 3) 두 에이전트에서 같은 메모리가 공유되는지 확인 4) curl http://localhost:3111/agentmemory/health로 헬스체크

배우는 것: MCP 서버 와이어링 패턴, 멀티 클라이언트 공유

실습 3 — 벤치마크 재현Medium

1) cd agentmemory/eval 2) README에 따라 adapter(grep / vector / agentmemory) 선택 3) LongMemEval-S(500문제) 또는 in-house coding-agent-life-v1 실행 4) 결과는 docs/benchmarks/ 아래 NDJSON으로 저장 5) 세 어댑터의 R@5 옆에 놓고 비교

배우는 것: IR 벤치마크 재현 방법, adapter 패턴 설계

실습 4 — JSONL 트랜스크립트 importMedium

1) 이미 쌓인 Claude Code 대화 로그(~/.claude/projects/) 확인 2) npx @agentmemory/agentmemory import-jsonl 3) Replay 탭에서 키보드 단축키(space, 화살표)로 재생 4) 과거 세션의 컨텍스트가 새 세션에 어떻게 주입되는지 관찰

배우는 것: 기존 대화 자산을 메모리로 변환하는 마이그레이션 패턴

실습 5 — iii console로 trace 디버깅 + fly.io 배포Hard

1) iii console --port 3114 --enable-flow 띄우기 2) memory_smart_search 한 번 호출 후 Traces 탭에서 워터폴 확인 3) 가장 느린 span(보통 임베딩 fetch 또는 RRF reranker) 찾기 4) KV browser에서 stuck consolidation timer를 직접 편집 5) fly deployflyctl ssh console -L 3113:127.0.0.1:3113로 SSH 터널 — 퍼블릭에는 3111만, 뷰어는 로컬에서만

배우는 것: OTel trace 분석, 보안 디폴트(public/private 포트 분리), 클라우드 배포

09 — 학습 로드맵6 weeks

6주 심화 학습 로드맵

주차별로 따라가면 전체 스택 마스터.

Week 01
"기억"이 뭔지 정의하기

Andrej Karpathy의 LLM Wiki 패턴 글 읽기 (이 프로젝트의 모태) / Anthropic 공식 MCP 스펙 훑어보기 / agentmemory demo 돌려보고 BM25 vs Vector 차이 체감

Week 02
정보 검색 기초

BM25 수식 손으로 풀기 (TF, IDF, length normalization) / 코사인 유사도 vs Dot product vs Euclidean / RRF 논문(Cormack et al., 2009) — k=60이 왜 표준인지

Week 03
임베딩과 벡터 인덱스

sentence-transformers / @xenova/transformers로 직접 임베딩 생성 / HNSW · IVF-PQ 등 ANN 인덱스 비교 / "로컬 임베딩이 충분히 좋은가" — MTEB 리더보드 확인

Week 04
MCP 서버 빌드

@modelcontextprotocol/sdk로 최소한의 MCP 서버 작성 / tools / resources / prompts 차이 이해 / Cursor + Claude Desktop 둘 다에 같은 서버 붙여 보기

Week 05
라이프사이클과 일관성

망각 곡선 모델링: strength = e^(-t/τ) + 접근 시 reset / 모순 감지: 임베딩 + LLM 판정 하이브리드 / 같은 사실의 두 버전을 시간차로 넣어 supersession 트리거 확인

Week 06
관측성 & 배포

OpenTelemetry trace/span 구조 / fly.io · Railway · Coolify 배포 비용 비교 / 본인 워크플로에 agentmemory를 "상시 켜둔 채" 한 주 사용 — 이게 진짜 학습

10 — 키워드 사전Glossary

핵심 용어 한눈에

자주 마주칠 단어들.

MCP (Model Context Protocol)
Anthropic이 만든 "AI ↔ 도구" 표준 프로토콜. agentmemory는 MCP 서버로 동작해 어떤 MCP 클라이언트에도 같은 인터페이스로 붙는다.
BM25
키워드 매칭의 사실상 표준 알고리즘. 단어 빈도(TF), 역문서 빈도(IDF), 문서 길이 정규화로 점수를 매긴다. "정확히 같은 단어"를 잘 찾을 때 강점.
Vector Search / Embedding
텍스트를 고차원 벡터로 바꿔서 "의미가 비슷한 것"을 코사인 유사도로 찾는다. "DB 성능 개선"과 "N+1 query 해결"을 같은 의미로 매칭.
RRF (Reciprocal Rank Fusion)
여러 랭킹을 합칠 때 점수 대신 순위의 역수를 더한다. score = Σ 1/(k + rank), k=60이 표준. 하이브리드 검색의 디폴트.
Hook (라이프사이클 이벤트)
"도구 호출 직후", "세션 시작", "세션 끝" 같은 시점에 사용자 스크립트가 실행된다. agentmemory는 이걸로 12개 자동 캡처를 한다.
4-Tier Memory Consolidation
Working(단기) → Episodic(에피소드) → Semantic(사실) → Procedural(절차) 4단계로 압축·정착. 사람의 수면 중 기억 통합과 유사.
Ebbinghaus 망각 곡선
접근하지 않은 기억은 시간에 따라 지수적으로 사라지고, 자주 쓰는 건 강화된다는 인지심리학 모델. 자동 evict의 근거.
iii-engine
Rust로 짠 백엔드 런타임. HTTP/WS/KV/Streams/OTEL을 한 묶음으로 제공. agentmemory는 별도 의존 없이 이거 하나로 "외부 DB 0개" 달성.
Knowledge Graph
"src/middleware/auth.ts 파일은 jose 라이브러리를 사용한다"처럼 노드(엔티티)와 엣지(관계)로 사실을 표현. BFS 탐색으로 연관 사실 추출.
Token Budget
SessionStart에서 컨텍스트에 주입할 토큰 양의 상한(기본 2000). "전부 다 넣자"가 아니라 "예산 안에서 top-K만" 주입.
LongMemEval
ICLR 2025 벤치마크. 장기 메모리 시스템의 검색 정확도를 500문제로 측정. agentmemory R@5 95.2%.
CLAUDE.md / .cursorrules
에이전트별 빌트인 메모리 파일. 200줄 제한 + 매 호출마다 전체 로딩. agentmemory가 우회하려는 한계.
11 — 참고 링크Refs

더 깊이 파고들 자료

공식 · 비교 · 학습.

공식 자료

표준 · 프로토콜

비교 대상 (경쟁 메모리 솔루션)

Action · 이번 주에 해볼 것

agentmemory를 처음 만났다면 이 순서로 5단계.

  1. 30초 데모 돌리기. npx @agentmemory/agentmemory… demo를 각각 다른 터미널에서 띄우고 localhost:3113 뷰어 열기. "database performance optimization"으로 검색해 시맨틱 매칭의 느낌 체득.
  2. Claude Code 또는 Cursor에 연결. /plugin install agentmemory 또는 ~/.cursor/mcp.json 한 줄로 붙이기. 두 에이전트가 같은 메모리를 공유하는지 확인.
  3. 본인 프로젝트로 일주일 사용. 상시 켜둔 채 평소대로 코딩. "어 전에 설명했던 거 또 설명하지 않아도 되네"를 몸으로 느끼기. 이게 가장 큰 학습.
  4. 벤치마크 어댑터 한 번 돌리기. eval/에서 grep vs vector vs agentmemory의 R@5를 본인 머신에서 재현. 숫자를 직접 만져보면 알고리즘 차이가 와닿는다.
  5. iii console에서 trace 한 번 보기. memory_smart_search 한 번 호출 후 :3114 콘솔의 Traces 탭에서 워터폴 보기. 가장 느린 span 찾으면 OTel 디버깅이 손에 익는다.
원문 · rohitg00/agentmemory (GitHub) · 2026-05-21 · TrendShift #25 (2026-05-19 기준) · 학습용 자료. 원본 라이선스는 GitHub 레포 참조.