CortexReach/memory-lancedb-pro

Enhanced LanceDB memory plugin for OpenClaw — Hybrid Retrieval (Vector + BM25), Cross-Encoder Rerank, Multi-Scope Isolation, Management CLI

memory-lancedb-pro – OpenClaw 에이전트용 장기 기억 플러그인

무엇인가요 – AI 에이전트에게 지속 가능한 '뇌'를 제공하는 프로덕션 수준의 OpenClaw 플러그인입니다. 대화 조각, 선호사항, 결정사항, 기타 컨텍스트를 LanceDB 벡터 저장소에 저장하고, 에이전트가 응답할 때 가장 관련 있는 부분을 자동으로 재활용합니다.

주요 기능

기능 작동 방식
자동 캡처 모든 채팅 턴이 플러그인으로 전송됩니다. 수동 memory_store 호출이 필요하지 않습니다.
스마트 추출 LLM이 각 캡처된 청크를 6개의 카테고리(프로필, 선호사항, 엔티티, 이벤트, 사례, 패턴)로 분류합니다.
하이브리드 검색 쿼리는 임베딩된 후 ANN 벡터 유사성 BM25 전체 텍스트 검색을 통해 검색됩니다. 결과는 융합되며, 필요 시 크로스 인코더로 재랭킹됩니다.
지능형 망각 Weibull 감쇠 모델이 오래되거나 낮은 중요도의 기억의 가중치를 감소시켜 노이즈를 줄입니다.
컨텍스트 삽입 에이전트가 응답을 생성하기 전에 플러그인이 상위 랭크된 기억을 자동으로 프롬프트에 삽입합니다.
스코프 격리 기억은 에이전트, 사용자, 프로젝트별로 분리되어 교차 대화 누수를 방지합니다.
프로바이더 무관 임베딩 OpenAI, Jina, Gemini, Ollama 또는 어떤 OpenAI 호환 API와도 작동합니다.
도구 제공 데이터베이스 목록, 검색, 내보내기, 가져오기, 재임베딩, 업그레이드, 마이그레이션을 위한 CLI.
드림 지원 선택적 사이드카로 '드림' 보고서를 공개 자산으로 간주하고 인덱싱합니다.

설치

  1. ワン클릭 스크립트curl …setup-memory.sh && bash setup-memory.sh (설치, 설정, 서비스 재시작 처리).
  2. OpenClaw CLIopenclaw plugins install memory-lancedb-pro@beta.
  3. npmnpm i memory-lancedb-pro@beta (그리고 plugins.load.paths에 절대 경로 추가).

구성 스냅샷 (README의 기본 JSON):

{
  "plugins": {
    "slots": { "memory": "memory-lancedb-pro" },
    "entries": {
      "memory-lancedb-pro": {
        "enabled": true,
        "config": {
          "embedding": {
            "provider": "openai-compatible",
            "apiKey": "${OPENAI_API_KEY}",
            "model": "text-embedding-3-small"
          },
          "autoCapture": true,
          "autoRecall": true,
          "smartExtraction": true,
          "canonicalCorpus": { "enabled": true, "syncOnSearch": true },
          "dreaming": { "enabled": false },
          "extractMinMessages": 2,
          "extractMaxChars": 8000,
          "sessionMemory": { "enabled": false }
        }
      }
    }
  }
}

왜 이러한 기본값인가요? – 손을 떼고 학습(autoCapture + smartExtraction)과 자동 재활용(autoRecall)을 활성화합니다. 낮은 extractMinMessages는 일반적인 2턴 대화 후에 추출을 트리거하며, 세션 메모리 비활성화는 일시적인 요약이 장기 저장소를 오염시키는 것을 방지합니다.

런타임 아키텍처 (README에 설명됨):

  • index.ts는 OpenClaw에 플러그인을 등록하고 라이프사이클 훅(before_prompt_build)을 연결합니다.
  • store.ts는 LanceDB(벡터 + BM25 인덱스, CRUD 작업)와 통신합니다.
  • embedder.ts는 임베딩 프로바이더를 추상화합니다.
  • retriever.ts는 하이브리드 검색, 융합, 크로스 인코더 재랭킹, 감쇠 부스팅을 수행합니다.
  • smart-extractor.ts는 LLM 분류를 실행합니다.
  • tools.ts는 에이전트 측 도구(memory_recall, memory_store, memory_forget, memory_update) 및 선택적 관리 도구를 노출합니다.

일반 워크플로우

  1. 캡처 – 어시스턴트 응답 후, 플러그인이 중요한 사실을 추출하고 LanceDB에 행으로 저장합니다. 또한 인간 참조용으로 원본 마크다운 파일(MEMORY.md, memory/**/*.md 등)도 작성합니다.
  2. 재활용 – 다음 사용자 쿼리가 도착하면 before_prompt_build 훅이 실행됩니다: 쿼리는 임베딩되고, 하이브리드 검색, 재랭킹 후 상위 결과가 프롬프트에 컨텍스트 스니펫으로 삽입됩니다.
  3. 감쇠 – 저장된 각 행에는 타임스탬프와 중요도 점수가 포함됩니다. Weibull 감쇠 엔진은 자주 액세스되지 않으면 그 중요도를 점차 낮춥니다.

하드웨어 참고사항 – LanceDB의 네이티브 코사인 ANN은 AVX/AVX2를 필요로 합니다. 이러한 명령어를 지원하지 않는 CPU에서는 네이티브 코사인을 비활성화할 수 있습니다 (retrieval.disableNativeCosine: true 또는 환경 변수 MEMORY_LANCEDB_DISABLE_NATIVE_COSINE=1).

에코시스템 도우미

  • 설치 스크립트 – 새 설치, 업그레이드, 설정 복구, 제거를 처리합니다.
  • 스킬 패키지memory-lancedb-pro-skill를 사용하면 Claude-Code 또는 OpenClaw 에이전트가 자연어 명령어로 플러그인을 구성할 수 있습니다.
  • 비디오 튜토리얼 – YouTube와 Bilibili에서 설치, 하이브리드 검색 내부 구조, 디버깅에 대한 워크스루를 제공합니다.

누가 사용할 수 있나요?

  • 세션 간에 사용자 선호사항, 과거 결정사항, 프로젝트 컨텍스트를 기억해야 하는 장기 실행 OpenClaw 어시스턴트를 개발하는 개발자.
  • 자체 벡터 저장소나 망각 로직을 구축하지 않고도 AI 에이전트에 '뇌'를 제공하고 싶은 팀.
  • 어떤 OpenAI 호환 임베딩 프로바이더와도 작동하는 단일 구성 가능한 플러그인을 선호하는 사람.

결론memory-lancedb-pro는 의미적 벡터 검색, 전통적 키워드 검색, 감쇠 기반 망각, LLM 기반 추출을 통합한 완전한 기능을 갖춘 프로덕션 준비된 OpenClaw 에이전트용 메모리 계층이며, 설치가 쉬운 플러그인 형태로 제공됩니다.

관련

  • 프로젝트