--- tags: [ideas, context, memory, compaction, OpenClaw, recent_conversations] --- # OpenClaw 스타일 컨텍스트·compaction 아이디어 **작성일**: 2026-03-17 ## 상위 원칙 - [writing-principles](../../../../0_VALUE/20_Governance/writing-principles.md) - [헌장](../../../../0_VALUE/00_Foundations/헌장.md) ## 문제 인식 - 로빙은 `recent_conversations`를 DB에서 **최근 300개(24시간)** raw 그대로 로드해 context에 넣음. - 토큰 제한·품질 관리 없이 전달 → "그래", "무슨 말이야?" 같은 짧은 발화가 직전 대화와 결합되어 오분류될 수 있음. - 300개 raw는 LLM context window를 쉽게 초과하고, 중요한 맥락이 묻힐 수 있음. ## 아이디어 (OpenClaw 벤치마킹) — 추적 방향 **이 방식으로 따라간다.** OpenClaw 방식을 참고하여 다음 방향을 따른다. 1. **Short-term (세션 대화)**: 토큰 한도 초과 시 이전 대화를 **요약**해 한 블록으로 압축(compaction). raw N개 그대로가 아님. 2. **Medium-term (일별 로그)**: 대화 종료 시 `session-memory` 훅으로 **요약**을 생성해 날짜별 daily log에 append. DB 대신 또는 DB와 병행. 3. **Long-term (MEMORY.md)**: 사용자·로빙이 유지하는 영구 메모리. 매 대화 시작 시 로드. ## 기대 효과 - 토큰 예측 가능, 오분류 감소(맥락 품질 향상). - "그래", "무슨 말이야?" 같은 짧은 발화가 직전 raw 대화에 과도하게 묶이지 않음. - 중장기 기억 구조로 "로빙이 나를 안다" 체감 향상. ## 검증이 필요한 이유 - 현재 `get_recent_conversations` → `create_execution_plan` 경로가 여러 곳에서 사용됨. - compaction·session-memory 도입 시 DB 스키마, 저장 경로, 훅 시점 등 영향 범위 파악 필요. - OpenClaw는 단일 에이전트 세션, 로빙은 멀티유저·채널 구조라 직접 이식 불가. ## 이 문서를 닫기 위해 필요한 질문 - compaction 적용 단위: user_id·channel별 세션? 전역? - daily log 저장소: 파일 vs DB vs 둘 다? - MEMORY.md 대응: 로빙에 user별 MEMORY 개념이 있는가, 없다면 도입 범위는? ## 이 문서에서 아직 확정하지 않는 것 - 구체적 compaction 알고리즘(요약 모델, 토큰 예산). - session-memory 훅 트리거 시점(대화 종료 정의). - 기존 `conversation_log`와의 관계(대체 vs 병행). ## 관련 문서 - [OpenClaw 컨텍스트·메모리 리서치](../research/260317_OpenClaw_컨텍스트_메모리_리서치.md) - [journey README](../README.md)