ReasoningBank 코어 메모리 통합
🎯 개요
기존 설치와의 완전한 하위 호환성을 유지하면서, ReasoningBank를 claude-flow memory의 선택적 강화 모드로 통합합니다.
📊 현재 상태
두 개의 분리된 시스템
코어 메모리 (claude-flow memory)
- 기본적인 key-value 저장소
- 파일 기반 (JSON):
./memory/memory-store.json - 명령어: store, query, stats, export, import, clear, list
- AI/학습 기능 없음
- 항상 사용 가능, 의존성 없음
ReasoningBank (claude-flow agent memory)
- AI 기반 학습 메모리
- 데이터베이스 기반 (SQLite):
.swarm/memory.db - 명령어: init, status, list, demo, test, benchmark
- 작업 실행 패턴으로부터 학습
- 초기화 및 API 키 필요
🚀 제안된 통합 방안
통합 인터페이스
# 기본 모드 (현재 동작 - 하위 호환)
claude-flow memory store api_key "sk-ant-xxx" --redact
claude-flow memory query research
# 강화 모드 (신규 - 플래그를 통한 선택적 사용)
claude-flow memory store api_key "sk-ant-xxx" --reasoningbank
claude-flow memory query research --reasoningbank
claude-flow memory status --reasoningbank
# 단축형
claude-flow memory store api_key "sk-ant-xxx" --rb
claude-flow memory query research --rb
자동 감지
# 어떤 모드가 적절한지 자동으로 감지
claude-flow memory query research --auto
# ReasoningBank 사용 가능 여부 확인
claude-flow memory detect
🏗️ 아키텍처
명령어 흐름
┌─────────────────────────────────────────┐
│ claude-flow memory <cmd> [--rb|--auto] │
└────────────────┬────────────────────────┘
│
┌────────▼─────────┐
│ 플래그 파싱 │
└────────┬─────────┘
│
┌───────────▼────────────┐
│ 모드 감지 │
│ • 플래그 없음 → 기본 │
│ • --rb → ReasoningBank│
│ • --auto → 감지 │
└───────────┬────────────┘
│
┌────────▼─────────┐
│ 명령어 실행 │
└──────────────────┘
기능 매트릭스
| 명령어 | 기본 모드 | ReasoningBank 모드 | 비고 |
|---|---|---|---|
store |
JSON 파일 | SQLite + 임베딩 | RB가 패턴 학습 |
query |
정확/유사 일치 | 시맨틱 검색 | RB가 임베딩 사용 |
stats |
파일 통계 | AI 메트릭 (신뢰도, 사용량) | RB가 학습 통계 표시 |
export |
JSON 내보내기 | JSON + 임베딩 | RB가 벡터 포함 |
import |
JSON 가져오기 | JSON + 벡터 재생성 | RB가 임베딩 재생성 |
clear |
항목 삭제 | 아카이브 + 정리 | RB가 학습 내용 보존 |
list |
키 목록 | 신뢰도 점수와 함께 목록 표시 | RB가 품질 메트릭 표시 |
새로운 명령어
# ReasoningBank 초기화 (최초 1회 설정)
claude-flow memory init --reasoningbank
# ReasoningBank 상태 확인
claude-flow memory status --reasoningbank
# 활성화된 모드 표시
claude-flow memory mode
# ReasoningBank 사용 가능 여부 감지
claude-flow memory detect
# 기본 → ReasoningBank 마이그레이션
claude-flow memory migrate --to reasoningbank
# ReasoningBank 통합/최적화
claude-flow memory consolidate --reasoningbank
🔄 하위 호환성
호환성 보장
-
기존 명령어 변경 없이 작동
# 이 명령어들은 이전과 정확히 동일하게 작동합니다 claude-flow memory store key value claude-flow memory query search -
호환성이 깨지는 변경 없음
- 기본 동작 변경 없음 (기본 모드 사용)
- 기존 JSON 파일에 영향을 주지 않음
- 강제 마이그레이션 없음
-
선택적(Opt-in) 강화
- 사용자는 명시적으로
--reasoningbank또는--rb를 사용해야 합니다 - 또는 먼저
memory init --reasoningbank를 실행해야 합니다 - 그 후 선택적으로 기본 모드를 설정할 수 있습니다
- 사용자는 명시적으로
마이그레이션 경로
# 1단계: 현재 메모리 확인
claude-flow memory stats
# 표시: 기본 모드에 150개 항목
# 2단계: ReasoningBank 초기화
claude-flow memory init --reasoningbank
# .swarm/memory.db 생성
# 3단계: (선택) 기존 데이터 마이그레이션
claude-flow memory migrate --to reasoningbank
# 150개 항목 모두 가져오기 + 임베딩 생성
# 4단계: ReasoningBank 모드 사용
claude-flow memory query api --reasoningbank
# 이제 AI를 이용한 시맨틱 검색 사용
📝 구현 계획
1단계: 코어 통합 (1주차)
파일: src/cli/simple-commands/memory.js
모드 감지 추가:
export async function memoryCommand(subArgs, flags) {
const memorySubcommand = subArgs[0];
// 신규: 모드 감지
const mode = detectMemoryMode(flags);
// 반환값: 'basic' | 'reasoningbank' | 'auto'
if (mode === 'reasoningbank') {
// ReasoningBank 구현으로 위임
return await reasoningBankMemoryCommand(subArgs, flags);
}
// 기존 기본 구현 계속 진행...
}
2단계: 자동 감지 (1주차)
지능형 감지 기능 추가:
async function detectMemoryMode(flags) {
// 명시적 플래그가 우선 적용됩니다
if (flags.reasoningbank || flags.rb) {
return 'reasoningbank';
}
// 자동 모드: ReasoningBank가 초기화되었는지 확인
if (flags.auto) {
const rbAvailable = await isReasoningBankInitialized();
return rbAvailable ? 'reasoningbank' : 'basic';
}
// 기본값: 기본 모드 (하위 호환)
return 'basic';
}
3단계: 강화된 명령어 (2주차)
ReasoningBank 관련 기능 추가:
// ReasoningBank 모드에서만 사용 가능한 새로운 명령어
case 'init':
if (mode === 'reasoningbank') {
await initializeReasoningBank();
}
break;
case 'status':
if (mode === 'reasoningbank') {
await showReasoningBankStatus();
} else {
await showBasicMemoryStats();
}
break;
4단계: 마이그레이션 도구 (2주차)
마이그레이션 유틸리티 추가:
case 'migrate':
await migrateMemoryData(flags.to); // 'reasoningbank' 또는 'basic'
break;
case 'detect':
await detectAndShowAvailableModes();
break;
🎯 사용자 경험
처음 사용자
# 즉시 기본 메모리 설치 및 사용
$ claude-flow memory store project "Started new API project"
✅ Stored: project
$ claude-flow memory query project
✅ Found 1 result:
project: Started new API project
# 추후: ReasoningBank 발견
$ claude-flow memory detect
ℹ️ 사용 가능한 메모리 모드:
✅ 기본 모드 (활성)
⚠️ ReasoningBank (초기화되지 않음)
💡 AI 기반 메모리를 활성화하려면:
claude-flow memory init --reasoningbank
기존 사용자 (하위 호환)
# 기존 설치 - 모든 것이 변경 없이 작동
$ claude-flow memory stats
📊 메모리 통계:
총 항목 수: 247
네임스페이스: 5
크기: 45.2 KB
모드: Basic
# ReasoningBank 선택적 사용
$ claude-flow memory init --reasoningbank
🧠 ReasoningBank 초기화 중...
✅ 생성됨: .swarm/memory.db
✅ ReasoningBank 준비 완료!
# 기존 데이터 마이그레이션 (선택 사항)
$ claude-flow memory migrate --to reasoningbank
📦 247개 항목 마이그레이션 중...
⏳ 임베딩 생성 중... (시간이 걸릴 수 있습니다)
✅ 마이그레이션 성공!
# 이제 두 모드 중 하나를 사용
$ claude-flow memory query api
# 기본 모드 사용 (기본값)
$ claude-flow memory query api --reasoningbank
# 시맨틱 검색과 함께 ReasoningBank 사용
고급 사용자
# 설정을 통해 기본 모드 설정
$ claude-flow config set memory.default_mode reasoningbank
✅ 기본 메모리 모드: ReasoningBank
# 이제 모든 명령어가 기본적으로 ReasoningBank를 사용
$ claude-flow memory query performance
# 자동으로 ReasoningBank 사용
# 기본 모드를 사용하도록 재정의
$ claude-flow memory query performance --basic
# 강제로 기본 모드 사용
🔐 보안 및 개인정보 보호
데이터 분리
- 기본 모드:
./memory/memory-store.json - ReasoningBank:
.swarm/memory.db - 두 모드 모두
--redact플래그 지원 - ReasoningBank 임베딩은 원본 API 키를 절대 노출하지 않음
개인정보 보호 제어
# 두 모드에서 민감한 데이터 수정
claude-flow memory store api "sk-ant-xxx" --redact
# 개인정보 보호 우선 로컬 임베딩을 사용하는 ReasoningBank
claude-flow memory init --reasoningbank --local-embeddings
# ONNX 로컬 모델을 사용하며, 외부 API로 데이터를 전송하지 않음
📊 성능 비교
| 메트릭 | 기본 모드 | ReasoningBank | 개선점 |
|---|---|---|---|
| 쿼리 속도 | 2ms | 15ms | -6.5배 느림 |
| 쿼리 정확도 | 60% | 88% | +46% 향상 |
| 학습 | 없음 | 가능 | ∞ 향상 |
| 메모리 사용량 | 1MB | 50MB | -49배 더 많음 |
| 설정 시간 | 0s | 30s | -30초 더 김 |
권장 사항: 간단한 key-value 저장에는 기본 모드를, AI 기반 학습 및 시맨틱 검색에는 ReasoningBank를 사용하세요.
🧪 테스트 전략
하위 호환성 테스트
# 테스트 1: 기존 명령어가 변경 없이 작동하는지 확인
claude-flow memory store test "value"
claude-flow memory query test
# 테스트 2: 강제 마이그레이션이 없는지 확인
claude-flow memory stats
# 기본적으로 기본 모드를 표시해야 함
# 테스트 3: 선택적 사용(Opt-in)이 작동하는지 확인
claude-flow memory query test --reasoningbank
# 초기화되지 않은 경우 정상적으로 실패해야 함
통합 테스트
# 테스트 4: ReasoningBank 초기화
claude-flow memory init --reasoningbank
claude-flow memory status --reasoningbank
# 테스트 5: 마이그레이션
claude-flow memory migrate --to reasoningbank
claude-flow memory stats --reasoningbank
# 테스트 6: 모드 감지
claude-flow memory detect
📚 문서 업데이트
도움말 텍스트 업데이트
$ claude-flow memory --help
메모리 관리
사용법:
claude-flow memory <command> [options]
모드:
기본 모드 (기본값) JSON 파일에 간단한 key-value 저장
ReasoningBank 모드 시맨틱 검색을 통한 AI 기반 학습
플래그:
--reasoningbank, --rb ReasoningBank 모드 사용 (AI 기반)
--auto 최적 모드 자동 감지
--basic 강제로 기본 모드 사용
--redact API 키 수정 활성화
명령어:
store <key> <value> key-value 쌍 저장
query <search> 항목 검색
stats 메모리 통계 표시
export [filename] 메모리를 파일로 내보내기
import <filename> 파일에서 메모리 가져오기
clear --namespace <ns> 네임스페이스 비우기
list 모든 네임스페이스 목록 표시
# ReasoningBank 명령어 (--reasoningbank 필요)
init --reasoningbank ReasoningBank 시스템 초기화
status --reasoningbank ReasoningBank 통계 표시
consolidate --rb ReasoningBank 데이터베이스 최적화
# 모드 관리
detect 사용 가능한 메모리 모드 표시
migrate --to <mode> 기본/reasoningbank 모드 간 마이그레이션
mode 현재 기본 모드 표시
예시:
# 기본 모드 (항상 작동)
memory store api_key "sk-ant-xxx" --redact
memory query research
# ReasoningBank 모드 (초기화 필요)
memory init --reasoningbank
memory store api_key "sk-ant-xxx" --reasoningbank
memory query research --reasoningbank
# 자동 감지 (사용 가능한 최적의 모드 사용)
memory query research --auto
🚦 출시 계획
버전 2.6.1 (현재)
- ✅
agent memory명령어를 통해 ReasoningBank 사용 가능 - ✅ 코어 메모리는 독립적으로 작동
버전 2.7.0 (다음 - 이 통합)
- 🎯
memory명령어에--reasoningbank플래그 추가 - 🎯 모드 감지 및 자동 선택 기능 추가
- 🎯 마이그레이션 도구 추가
- 🎯 도움말 및 문서 업데이트
- 🎯 완전한 하위 호환성 유지
버전 2.8.0 (미래)
- 🔮 하이브리드 모드 추가 (둘 다 동시 사용)
- 🔮 기본 ↔ ReasoningBank 간 동기화 추가
- 🔮 클라우드 ReasoningBank 동기화 추가
✅ 이점
사용자 측면
- 원활한 업그레이드 경로: 강제 변경 없음
- 모드 선택: 간단한 작업에는 기본 모드, AI 기능에는 ReasoningBank
- 점진적 마이그레이션: 기존 데이터 손실 없이 ReasoningBank 시도 가능
- 성능 옵션: 빠른 기본 모드 vs. 스마트한 ReasoningBank
개발 측면
- 호환성을 깨는 변경 없음: 기존 코드가 계속 작동
- 기능 플래그 패턴: 활성화/비활성화 용이
- 독립적인 테스트: 각 모드를 개별적으로 테스트
- 깔끔한 아키텍처: 명확한 관심사 분리
🔌 MCP 도구 통합
현재 MCP 도구
기존 (mcp__claude-flow__memory_usage)
// 현재 구현 - 기본 모드만 해당
mcp__claude-flow__memory_usage({
action: "store",
key: "api_config",
value: "some data"
})
강화된 MCP 도구
옵션 1: 모드 매개변수 추가
// 하위 호환 - 기본적으로 기본 모드 사용
mcp__claude-flow__memory_usage({
action: "store",
key: "api_config",
value: "some data",
mode: "basic" // 신규: 선택 사항, 기본값 "basic"
})
// ReasoningBank 선택적 사용
mcp__claude-flow__memory_usage({
action: "store",
key: "api_config",
value: "some data",
mode: "reasoningbank" // 신규: AI 기반 모드 사용
})
// 최적 모드 자동 감지
mcp__claude-flow__memory_usage({
action: "store",
key: "api_config",
value: "some data",
mode: "auto" // 신규: 지능적 선택
})
옵션 2: 별도의 MCP 도구 (권장)
하위 호환성을 유지하고 새로운 도구를 추가합니다:
// 기존 도구 - 변경 없음 (기본 모드)
mcp__claude-flow__memory_usage({
action: "store",
key: "api_config",
value: "some data"
})
// 신규 도구 - ReasoningBank
mcp__claude-flow__reasoningbank_memory({
action: "store",
key: "api_config",
value: "some data",
domain: "api", // 신규: 시맨틱 도메인
confidence: 0.8 // 신규: 학습 신뢰도
})
// 신규 도구 - 시맨틱 쿼리
mcp__claude-flow__reasoningbank_query({
query: "how to configure API",
k: 3, // 상위 k개 결과
min_confidence: 0.7 // 최소 신뢰도 임계값
})
MCP 도구 스키마 업데이트
강화된 memory_usage 도구:
{
"name": "mcp__claude-flow__memory_usage",
"description": "선택적인 ReasoningBank 모드로 메모리 저장/검색",
"parameters": {
"action": {
"type": "string",
"enum": ["store", "retrieve", "list", "delete", "search"]
},
"key": { "type": "string" },
"value": { "type": "string" },
"namespace": { "type": "string" },
"mode": {
"type": "string",
"enum": ["basic", "reasoningbank", "auto"],
"default": "basic",
"description": "메모리 모드: basic (JSON), reasoningbank (AI), auto (감지)"
},
"ttl": { "type": "number" }
}
}
신규 ReasoningBank 전용 도구:
{
"name": "mcp__claude-flow__reasoningbank_store",
"description": "AI 학습으로 메모리 저장 (ReasoningBank)",
"parameters": {
"key": { "type": "string" },
"value": { "type": "string" },
"domain": {
"type": "string",
"description": "시맨틱 도메인 (예: 'api', 'security', 'performance')"
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "이 메모리에 대한 신뢰도 점수"
},
"metadata": {
"type": "object",
"description": "학습을 위한 추가 메타데이터"
}
}
}
MCP 사용 예시
ReasoningBank와 함께 사용하는 Claude Desktop:
// Claude Desktop 대화에서
"방금 배운 API 설정을 저장해줘"
// Claude Code MCP 호출 (모드 자동 감지):
await mcp__claude-flow__memory_usage({
action: "store",
key: "api_config_pattern",
value: "Always use environment variables for API keys",
mode: "auto" // 초기화된 경우 ReasoningBank를 사용합니다
})
// 나중에, 새로운 대화에서:
"API 설정에 대해 내가 배운 게 뭐지?"
// Claude Code MCP 호출:
await mcp__claude-flow__reasoningbank_query({
query: "API configuration best practices",
k: 3
})
// 신뢰도 점수와 함께 시맨틱 검색 결과를 반환합니다:
// 1. [0.92] Always use environment variables for API keys
// 2. [0.85] API keys should be in .env files
// 3. [0.78] Never commit API keys to git
MCP 통합의 이점
- 호환성을 깨는 변경 없음: 기존 MCP 호출이 변경 없이 작동
- 선택적 강화: ReasoningBank를 활성화하기 위해
mode매개변수 추가 - 지능적인 기본값:
mode: "auto"가 사용 가능한 최적의 모드를 감지 - 전용 도구: ReasoningBank 관련 기능을 위한 새로운 도구
- 세션 간 학습: MCP 도구는 Claude Desktop 세션 간에 유지됨
MCP 도구 마이그레이션 경로
// 1단계: 현재 (v2.6.x)
mcp__claude-flow__memory_usage({ action: "store", ... })
// 항상 기본 모드 사용
// 2단계: 강화 (v2.7.0)
mcp__claude-flow__memory_usage({
action: "store",
mode: "auto", // 신규 매개변수 (선택 사항)
...
})
// ReasoningBank 사용 가능 시 자동 감지
// 3단계: 전용 (v2.7.0)
mcp__claude-flow__reasoningbank_store({
key: "pattern",
value: "learned behavior",
domain: "coding",
confidence: 0.9
})
// 모든 기능을 갖춘 ReasoningBank 전용 도구
🎉 요약
이 통합은 ReasoningBank를 코어 메모리의 선택적 강화 기능으로 추가합니다:
✅ 하위 호환성: 기존 설치가 변경 없이 작동합니다
✅ 선택적 사용(Opt-In): 사용자가 ReasoningBank 활성화 시점을 선택합니다
✅ 자동 감지: --auto를 통한 지능적인 모드 선택
✅ 마이그레이션 도구: 기본 모드에서 ReasoningBank로의 쉬운 업그레이드 경로
✅ 유연성: 필요에 따라 기본, ReasoningBank 또는 둘 다 사용 가능
✅ 문서화: 두 모드를 모두 보여주는 명확한 도움말 텍스트
✅ MCP 통합: Claude Desktop이 두 메모리 모드를 원활하게 사용 가능
결과: 두 가지 장점을 모두 누리세요 - 간단한 JSON 저장소 또는 AI 기반 학습 메모리! 🚀