---
tags: [ideas, context, memory, compaction, OpenClaw, recent_conversations]
---

# OpenClaw 스타일 컨텍스트·compaction 아이디어

**작성일**: 2026-03-17

## 상위 원칙

- [writing-principles](../../../../0_VALUE/02_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)
