memsearch: 여러 AI 코딩 에이전트가 하나의 기억을 공유하는 의미 기반 메모리 계층

memsearch 소개

AI 코딩 에이전트는 세션이 끝나면 대화 맥락을 대부분 잊어버립니다. 며칠 전 어떤 Redis 이슈를 어떻게 고쳤는지, 왜 특정 라이브러리를 선택했는지 같은 결정의 이유는 대화가 지나가면 함께 사라집니다. 게다가 Claude Code에서 나눈 이야기는 Codex나 다른 에이전트에서는 다시 검색할 수 없어, 같은 프로젝트인데도 도구마다 맥락이 단절됩니다.

memsearch는 이 문제를 여러 AI 에이전트가 공유하는 지속적 메모리 계층으로 해결하는 도구입니다. 한 에이전트에서 나눈 대화가 다른 모든 에이전트에서 검색 가능한 컨텍스트가 되며, 별도 설정 없이 플러그인을 설치하는 것만으로 동작합니다. Milvus를 만든 Zilliz가 개발했고, 저장의 근간은 마크다운 파일이며 Milvus는 그 위에 얹히는 검색 색인입니다.

memsearch의 설계에서 특징적인 점은 마크다운을 원본(source of truth) 으로 삼는다는 것입니다. 메모리는 사람이 읽고 편집하고 버전 관리할 수 있는 .md 파일이며, Milvus는 이 파일들로부터 파생되어 언제든 다시 만들 수 있는 "그림자 색인(shadow index)" 입니다. 이 구조 덕분에 메모리가 특정 벡터 DB에 갇히지 않고, 원본은 항상 사람이 직접 들여다볼 수 있는 텍스트로 남습니다.

memsearch의 아키텍처

memsearch는 에이전트 플러그인, CLI/API, 코어 검색 엔진, 마크다운 원본의 네 계층으로 이루어집니다. 위쪽 그림이 이 계층 구조를 보여줍니다. 아래 그림은 이 계층이 만들어 내는 결과, 즉 여러 에이전트가 하나의 메모리를 공유하는 모습을 정리한 것입니다.

가장 위 계층은 각 에이전트용 플러그인으로, Claude Code, OpenClaw, OpenCode, Codex CLI를 지원합니다. 에이전트 사용자는 플러그인만 설치하면 되고, 에이전트 개발자는 아래의 CLI와 파이썬 API로 자신의 에이전트에 메모리를 붙일 수 있습니다. 코어 엔진은 청킹(chunking), 임베딩, Milvus 동기화를 담당하며, 조밀 벡터(dense) 와 BM25 희소 검색을 RRF로 재순위(rerank) 하는 하이브리드 검색을 사용합니다. 아래는 저장소가 제시하는 아키텍처 개요입니다.

┌──────────────────────────────────────────────────────────────┐
│                For Agent Users (Plugins)                     │
│   Claude Code · OpenClaw · OpenCode · Codex · Your App       │
├──────────────────────────────────────────────────────────────┤
│   memsearch CLI / Python API                                 │
│   index · search · expand · watch · compact                  │
├──────────────────────────────────────────────────────────────┤
│   Core: Chunker → Embedder → Milvus                          │
│   Hybrid Search (BM25 + Dense + RRF)                         │
├──────────────────────────────────────────────────────────────┤
│   Markdown Files (Source of Truth)                           │
│   memory/2026-03-27.md · memory/2026-03-26.md · ...          │
└──────────────────────────────────────────────────────────────┘

memsearch의 캡처와 3단계 회상

memsearch는 대화가 진행되는 동안 자동으로 기억을 쌓습니다. 각 대화 턴이 끝나면 Stop 훅이 마지막 턴을 파싱해 요약하고, 세션 UUID 앵커와 함께 그날짜의 마크다운 파일에 덧붙인 뒤 색인합니다. 파일 변경은 실시간 감시자(watcher) 가 감지해 변경된 청크만 다시 색인하며, SHA-256 해시로 바뀌지 않은 내용은 임베딩 호출 없이 건너뜁니다.

회상은 필요한 만큼만 파고드는 3단계 점진적 검색으로 이루어집니다.

질문: "배치 크기에 대해 뭐라고 논의했지?"
        │
        ▼
  L1  search  "배치 크기"      → 순위가 매겨진 청크
        │ (더 필요하면)
        ▼
  L2  expand  <청크 해시>       → 해당 .md 섹션 전체
        │ (원문이 필요하면)
        ▼
  L3  parse-transcript          → 원본 대화 전문

memsearch 설치 및 사용법

memsearch는 파이썬 3.10 이상을 요구합니다. Claude Code에서는 플러그인 마켓플레이스로 설치합니다.

/plugin marketplace add zilliztech/memsearch
/plugin install memsearch
# 플러그인 활성화를 위해 Claude Code 재시작

설치 후에는 평소처럼 대화하면 플러그인이 모든 대화 턴을 자동으로 캡처합니다. 회상은 /memory-recall <질문> 으로 명시적으로 부르거나, 질문이 과거 맥락을 필요로 한다고 판단되면 에이전트가 스스로 스킬을 호출합니다. 개발자용으로는 PyPI에 공개된 패키지(pip install memsearch) 와 함께 CLI·파이썬 API가 제공됩니다.

memsearch의 라이선스

memsearch는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:books: memsearch 공식 문서

:github: memsearch 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: