하이브리드 메모리 설계: OpenClaw + Honcho(사용자 모델링) + 외부 LanceDB(멀티 프로젝트 RAG)를 Tool Calling으로 연결. 과도한 엔지니어링일까요, 아니면 이게 정답일까요?
Hybrid Memory Design: Using OpenClaw + Honcho (User Modeling) + External LanceDB (Multi-project RAG) through Tool Calling. Am I overengineering or is this the way?
핵심 요약
OpenClaw의 단일 메모리 슬롯 제한을 극복하기 위해 외부 FastAPI와 LanceDB를 활용한 하이브리드 아키텍처 설계에 대한 의견을 구합니다.
- 메모리 슬롯 제한 — OpenClaw의 단일 메모리 플러그인 제약을 우회하기 위한 외부 아키텍처 설계함
- 하이브리드 구조 — 사용자 모델링은 Honcho, 프로젝트별 RAG는 외부 FastAPI와 LanceDB로 분리함
- 데이터 동기화 — Obsidian 파일 수정과 LanceDB 벡터 업데이트를 실시간으로 처리하는 흐름을 구축함
- 기술적 질문 — 확장성, 동기화 문제, 향후 Neo4j 도입 필요성 등에 대해 커뮤니티 피드백을 요청함
다들 안녕,
지금 <strong>OpenClaw</strong>를 써서 실무급 개인 비서 겸 멀티 프로젝트 관리자를 만들고 있는데, 아키텍처를 망가뜨리지 않으면서 <strong>Honcho</strong>랑 <strong>LanceDB</strong>를 둘 다 써먹고 싶거든.
다들 알다시피 OpenClaw의 현재 슬롯 시스템(<code>plugins.slots.memory</code>)은 <strong>활성 메모리 플러그인을 딱 하나</strong>만 쓸 수 있게 되어 있어(예를 들어 Honcho랑 LanceDB 플러그인이 같은 슬롯을 두고 싸우는 꼴이지).
이 병목 현상을 뚫고 '듀얼 브레인' 구성을 만들기 위해서 Python(FastAPI) 마이크로서비스를 이용한 <strong>외부 하이브리드 아키텍처</strong>를 짜고 있어. 이 방식에 대해 어떻게 생각하는지, 위험 요소는 없는지, 아키텍처 피드백 좀 부탁할게.
내 설정 및 목표:
- <strong>인터페이스:</strong> 멀티 채널 텔레그램 연동. 회사 업무나 개인 프로젝트별로 토픽/그룹을 따로 팔 거야.
- <strong>에이전트 상호작용:</strong> 에이전트가 단순히 데이터를 읽기만 하는 게 아니라, 내 로컬 <strong>Obsidian Vault</strong> 안에 있는 <strong>마크다운 파일들을 직접 수정</strong>할 수 있어야 함.
제안하는 아키텍처:
-
<strong>OpenClaw 내부 (코어 메모리 슬롯) ──> Honcho 플러그인:</strong>
- 세션 간 <strong>사용자 모델링</strong>을 담당함. 내 대화 스타일, 암묵적인 선호도, 일상 루틴, 개인적인 특성 같은 걸 추적해. 즉, 내가 <em>누구인지</em> 이해하는 거지.
-
<strong>OpenClaw 외부 (툴 디스패처 경유) ──> FastAPI 서비스:</strong>
- OpenClaw는 기술적인 내용이나 프로젝트 기반 지식은 전부 외부 Python API로 넘겨버림.
- 이 FastAPI 서비스는 <strong>LanceDB</strong>를 로컬에 임베드해서 돌려(순수 <code>.lance</code> 파일 방식이라 서버리스고, SQLite 같은 오버헤드도 없음).
-
<strong>LanceDB 듀얼 테이블 설정 (FastAPI 내부):</strong>
- <strong>테이블 A (</strong><code>obsidian_rag</code><strong>):</strong> 내 Obsidian 마크다운 파일들에서 가져온 정적/동적 지식.
- <strong>테이블 B (</strong><code>project_memory</code><strong>):</strong> 시계열 의미론적 로그. 에이전트가 특정 텔레그램 토픽에서 논의된 핵심 결정 사항, 코드 스니펫, 에러 로그 같은 걸 직접 저장할 수 있음.
실행 흐름:
- <strong>채팅 컨텍스트:</strong> 내가 텔레그램 토픽 A에서 떠들면, Honcho가 사용자 페르소나 컨텍스트를 처리함.
- <strong>RAG 검색:</strong> 내가 기술적인 질문을 던지면, OpenClaw가 토픽 ID를 넘기면서 FastAPI에 <code>GET /search</code>를 날림. LanceDB가 해당 프로젝트의 벡터 공간을 필터링해서 컨텍스트를 반환해.
- <strong>직접 수정:</strong> 에이전트가 파일을 수정해야 하면 <code>PATCH /edit-note</code>를 호출함. FastAPI가 Obsidian Vault의 물리적인 <code>.md</code> 파일을 덮어쓰고, 밀리초 단위로 LanceDB에서 <code>table.delete(path)</code>랑 <code>table.add(new_vector)</code>를 실행하는 식이지.


