직지(Jikji): 에이전트 기억을 MCP 한 겹으로 — 검색 223ms·토큰 최대 37× 절감
요약: 직지(Jikji)는 여러 AI 에이전트가 하나의 개인 기억을 MCP(Model Context Protocol)로 공유하는 메모리 레이어로, 외부 벡터·그래프 DB 없이 SQLite 파일 하나 위에서 BM25+dense+RRF+리랭커 하이브리드 검색을 돌려 검색 한 번을 웜 기준 약 223ms에 끝낸다. 한 줄 요약: 직지는 에이전트의 기억을 MCP 한 겹으로 통일하고, 텍스트와 이미지를 같은 벡터공간에 담아 교차검색까지 지원하는, 파일 하나로 소유하는 자가호스팅 메모리다.
직지(Jikji)는 여러 AI 에이전트가 하나의 개인 기억을 MCP(Model Context Protocol)로 공유하는 메모리 레이어로, 외부 벡터·그래프 DB 없이 SQLite 파일 하나 위에서 BM25+dense+RRF+리랭커 하이브리드 검색을 돌려 검색 한 번을 웜 기준 약 223ms에 끝낸다.
한 줄 요약: 직지는 에이전트의 기억을 MCP 한 겹으로 통일하고, 텍스트와 이미지를 같은 벡터공간에 담아 교차검색까지 지원하는, 파일 하나로 소유하는 자가호스팅 메모리다.
검색 1회 ≈ 223ms (웜, 8B 임베더+리랭커 GPU 옵션 구성)
- 표본
- 소규모 스모크 평가 — 한국어 장기기억 8범주(정확성·무회귀 게이트, floor 0.85)
- 측정 환경
- 8B 임베더(4096-dim, FP8)+8B 리랭커(BF16), 로컬 GPU, node:sqlite 단일 파일
- 수집일
- 2026-07
- 방법
- memory_search 엔드투엔드 지연(웜) 측정, top-k 회상·토큰 절감은 측정 메모리 크기 기반 유도(가정 명시)
직지는 다른 메모리 MCP와 정확히 무엇이 다른가?#
가장 뚜렷한 차이는 멀티모달이다. 대부분의 에이전트 메모리는 텍스트만 다루지만, 직지는 텍스트와 이미지를 같은 벡터공간(Qwen3-VL 풀링)에 넣는다. 그래서 텍스트 질의로 관련 이미지를 찾고 그 반대도 된다 — 직지 저장소는 이를 "일반 메모리 서비스가 제공하지 않는 기능"이라고 명시한다. 구조도 가볍다. 별도 벡터DB나 그래프DB를 세우지 않고 node:sqlite 파일 하나에 사실(facts)·리비전·검수 상태를 담고, 검색은 그 파일 위에서 코사인으로 돈다. 신뢰 설계도 기본값이 다르다 — 학습 사용은 기본 꺼짐, 색인 전 검수, 쓰기 시점 비밀정보 거부, 프롬프트 인젝션 격리, 삭제 시 파생물까지 0참조로 정리된다.
비유하면, 여러 비서(에이전트)가 각자 수첩을 들고 다니는 대신 한 권의 공용 노트를 함께 쓰는 것이다 — 누가 적든 다음 사람이 바로 찾아 읽는다.
| 항목 | 직지(Jikji) | 일반 메모리 서비스(범주) |
|---|---|---|
| 저장소 | SQLite 파일 1개, 외부 벡터·그래프 DB 없음 | 대개 별도 벡터DB·서비스 의존 |
| 검색 | BM25+dense+RRF+리랭커 하이브리드(매 쿼리) | 흔히 단일 dense 유사도 |
| 멀티모달 | 텍스트·이미지 같은 벡터공간, 교차검색 | 대체로 텍스트 전용 |
| 신뢰 | 학습사용 기본 off·검수 후 색인·삭제 캐스케이드 | 정책 상이(라벨: 미상) |
| 소유 | 단일 SQLite 파일·Markdown 내보내기, Apache-2.0 | 서비스 종속 흔함 |
검색 223ms와 토큰 절감은 어디서 나오나?#
직지는 매 쿼리에 어휘(BM25)와 밀집(dense) 검색을 함께 돌리고 RRF로 합친 뒤 리랭커로 다시 정렬한다. 저장소 공개 실측 기준, 이 엔드투엔드(8B 임베더 → BM25+dense+RRF → 8B 리랭커)가 웜 상태에서 약 223ms다. 토큰 절감은 회상 방식에서 온다 — 대화 히스토리를 통째로 다시 넣는 대신 관련 사실 top-8만 주입하면, 회상량이 약 200토큰에서 평평하게 유지된다. 저장소 유도값으로는 10·25·50메시지 세션에서 히스토리 대비 각각 약 7×·19×·37× 적다. 검색 품질은 한국어 장기기억 평가에서 top-1 = 1.00, 오염 0으로 보고되며, 실임베더(KURE-v1, MIT)를 붙이면 같은 세트에서 어휘 스캐폴드의 top-1 0.25가 1.00으로 오른다.
무엇을 조심해야 하나? (정직한 스코프)#
수치의 전제를 분명히 해야 한다. 223ms·리랭커·8B 임베더는 선택적 GPU 구성의 값이고, 기본 체크아웃은 GPU 없는 어휘 스캐폴드로 동작해 품질이 정직하게 낮다(실임베더는 같은 인터페이스로 교체). 평가 세트는 헤드룸 측정이 아니라 정확성·무회귀를 지키는 소규모 스모크이며, 토큰 절감 수치도 측정된 메모리 크기에 가정을 얹어 유도한 값이다. 처리량은 초당 약 10회 검색으로, 폐쇄 베타(10~20명, 버스트 50~100명) 규모에 맞춘 수준이다. 즉 "세상에서 제일 빠르다"가 아니라, 외부 API 세금 없이 자가호스팅 파일 하나로 이 지연·품질·소유권을 동시에 낸다가 정확한 요약이다.
참고: 위 수치는 moche-ai/jikji 공개 저장소의 자체 실측·유도값이며(2026-07 기준), 재현 방법은 저장소 BENCHMARKS.md에 공개돼 있다. 초기 개발 단계(로컬 loopback MVP)라 수치는 갱신될 수 있다.
참고 링크
Responses
No responses yet. Be the first to respond.