로컬 에이전트 메모리를 위한 하이브리드 RAG: OpenClaw, Ollama, nomic-embed-text 활용

문제: 저장이 아닌 검색
개발자는 매일의 메모리 로그를 마크다운 파일에 저장해 왔는데, 이는 정보를 저장하는 데는 효과적이었지만 다시 찾는 데는 적합하지 않았습니다. 에이전트가 과거 컨텍스트가 필요할 때마다 ls를 실행하고 파일을 하나씩 열어보며 토큰을 소비하고 때로는 관련 정보를 놓치는 방식으로 되돌아갔습니다. 문제는 저장이 아닌 의미 기반 검색에 있었습니다.
해결책: 로컬 임베딩을 활용한 하이브리드 RAG
개발자는 OpenClaw에서 memorySearch를 활성화했으며, Ollama를 제공자로, nomic-embed-text를 로컬 임베딩으로 사용하여 하이브리드 모드로 실행했습니다. 하이브리드는 70% 벡터 유사도(nomic-embed-text를 통한 코사인 유사도)와 30% BM25 키워드 매칭을 결합한 것을 의미합니다. 벡터는 의미적 근접성을 처리하고 BM25는 정확한 이름, 버전, ID를 처리합니다. MMR은 중복 결과를 줄이고, 시간적 감쇠는 최근 로그에 더 많은 가중치를 부여합니다. 모든 것은 외부 API 없이 로컬에서 실행됩니다.
구성
"memorySearch": {
"provider": "ollama",
"query": {
"hybrid": {
"enabled": true,
"vectorWeight": 0.7,
"textWeight": 0.3,
"mmr": {
"enabled": true,
"lambda": 0.7
},
"temporalDecay": {
"enabled": true,
"halfLifeDays": 30
}
}
}
}설정 지침
- OpenClaw는 localhost:11434에서 Ollama를 자동으로 감지합니다
- baseUrl이나 모델을 지정할 필요가 없습니다 - nomic-embed-text가 풀링되면 자동으로 선택됩니다
- 먼저
ollama pull nomic-embed-text를 실행한 다음 게이트웨이를 재시작하세요 provider: "openai"로 설정하고 baseUrl을 Ollama로 지정하지 마세요 - 직접provider: "ollama"를 사용하세요
필요한 행동 변화
도구를 활성화하는 것만으로는 충분하지 않았습니다. 파일을 직접 읽기 전에 memorySearch를 사용하라는 명시적인 지침 없이는 에이전트가 이를 건너뛰고 더 느리고 토큰 소비가 많은 경로를 택했습니다. 개발자는 작업 공간의 AGENTS.md와 MEMORY.md 모두에 규칙을 작성하여 메모리 검색이 에이전트의 일반적인 워크플로우의 일부가 되도록 했습니다.
이전 vs 이후 결과
- 이전: 폴더를 탐색하고, 파일을 무작위로 열고, 표현이 일치하기를 바라며, 토큰을 낭비하고, 컨텍스트를 놓침
- 이후: 의미적 쿼리로
memory_search를 실행하고, 유사도 점수와 함께 순위가 매겨진 결과를 검색하며, 가장 적합한 매치를 열고, 실제 과거 노트에서 답변을 얻음 - 관련 결과에 대한 유사도 점수는 일반적으로 nomic-embed-text에서 산문 로그에 대해 0.45에서 0.48 범위입니다
실용적 참고사항
- nomic-embed-text는 기본적으로 2048 토큰 컨텍스트 제한을 가지며, 8192가 아닙니다 - 큰 파일은 인덱싱 시 잘릴 수 있습니다
- 스페인어로 된 메모리 파일도 잘 작동합니다 - nomic-embed-text는 스페인어를 문제없이 처리합니다
- 검색 품질은 노트 품질에 달려 있습니다 - 모호한 로그는 여전히 의미 검색에 어려움을 초래합니다
기술 스택
- OpenClaw (로컬, 자체 호스팅)
- Ollama + nomic-embed-text:latest
- SQLite with sqlite-vec and FTS5 (OpenClaw가 처음 사용 시 자동 생성)
- Mac mini M4, 16GB 통합 메모리
📖 전체 소스 읽기: r/openclaw
👀 See Also

비기술직 클로드 사용자를 위한 Slack 기반 디버깅 시스템 구축
한 개발자가 7초마다 슬랙 채널을 확인하는 로컬 Claude 스킬을 만들어, 비기술직 팀원들이 슬랙 스레드에서 직접 자신의 Claude 인스턴스를 핑하여 디버깅 도움을 받을 수 있게 했습니다.

OpenClaw 비용 최적화: 개발자가 모델 라우팅으로 $750 실수를 해결한 방법
한 개발자가 OpenRouter에서 모든 OpenClaw 서브에이전트를 무료 Hunter Alpha 모델로 전환한 결과, 비디오 제작 에이전트가 유효한 코드를 생성했지만 9초 길이의 무음 검은 화면 비디오를 생성하는 등 조용한 실패가 발생한 경험을 공유했습니다. 해결책은 작업 요구사항에 기반한 명시적 모델 라우팅 구현이었습니다.

디자이너가 Claude Code와 로컬 비전 모델로 네이티브 Mac 사진 태깅 앱을 개발합니다
Xcode 경험이 없는 디자이너가 Claude Code를 사용하여 Loupe를 구축했습니다. 이 SwiftUI Mac 앱은 로컬 비전 모델(minicpm-v via Ollama)로 사진을 분석하고 IPTC/XMP 메타데이터를 작성합니다. 앱에는 병렬 처리, 하드웨어 자동 감지 및 태깅 스타일에 적응하는 학습 시스템이 포함되어 있습니다.

실전에서 다중 AI 에이전트 운영을 통한 실용적인 교훈
디자인, 코딩, 마케팅 에이전트를 운영하는 AI 기반 스토어 팀이 자율 작업을 위한 충분한 컨텍스트 제공 방법과 인간과 다른 에이전트의 고장 지점을 포함해 'AI 에이전트 고용'이 실제로 무엇을 의미하는지에 대한 통찰을 공유합니다.