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. |
| 드림 지원 | 선택적 사이드카로 '드림' 보고서를 공개 자산으로 간주하고 인덱싱합니다. |
설치
- ワン클릭 스크립트 –
curl …setup-memory.sh && bash setup-memory.sh(설치, 설정, 서비스 재시작 처리). - OpenClaw CLI –
openclaw plugins install memory-lancedb-pro@beta. - npm –
npm 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) 및 선택적 관리 도구를 노출합니다.
일반 워크플로우
- 캡처 – 어시스턴트 응답 후, 플러그인이 중요한 사실을 추출하고 LanceDB에 행으로 저장합니다. 또한 인간 참조용으로 원본 마크다운 파일(
MEMORY.md,memory/**/*.md등)도 작성합니다. - 재활용 – 다음 사용자 쿼리가 도착하면
before_prompt_build훅이 실행됩니다: 쿼리는 임베딩되고, 하이브리드 검색, 재랭킹 후 상위 결과가 프롬프트에 컨텍스트 스니펫으로 삽입됩니다. - 감쇠 – 저장된 각 행에는 타임스탬프와 중요도 점수가 포함됩니다. 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 에이전트용 메모리 계층이며, 설치가 쉬운 플러그인 형태로 제공됩니다.
관련
- 프로젝트