Dreaming(실험적)
Dreaming은memory-core의 백그라운드 메모리 통합 단계입니다.
이를 “dreaming”이라고 부르는 이유는 시스템이 하루 동안 떠올랐던 내용을 다시 살펴보고
무엇을 지속적인 컨텍스트로 남길 가치가 있는지 판단하기 때문입니다.
Dreaming은 실험적이며, opt-in이고, 기본적으로 비활성화되어 있습니다.
Dreaming이 하는 일
memory/YYYY-MM-DD.md에서memory_search적중으로부터 단기 회상 이벤트를 추적합니다.- 가중 신호를 사용해 해당 회상 후보에 점수를 매깁니다.
- 자격을 충족한 후보만
MEMORY.md로 승격합니다.
승격 신호
Dreaming은 네 가지 신호를 결합합니다:- 빈도: 동일한 후보가 얼마나 자주 회상되었는지
- 관련성: 검색되었을 때 회상 점수가 얼마나 높았는지
- 쿼리 다양성: 서로 다른 쿼리 의도가 몇 개나 이를 드러냈는지
- 최신성: 최근 회상에 대한 시간 가중치
신호 가중치
| 신호 | 가중치 | 설명 |
|---|---|---|
| 빈도 | 0.35 | 동일한 항목이 얼마나 자주 회상되었는지 |
| 관련성 | 0.35 | 검색되었을 때의 평균 회상 점수 |
| 다양성 | 0.15 | 이를 드러낸 서로 다른 쿼리 의도의 수 |
| 최신성 | 0.15 | 시간 감쇠(14일 반감기) |
동작 방식
- 회상 추적 — 모든
memory_search적중은 회상 횟수, 점수, 쿼리 해시와 함께memory/.dreams/short-term-recall.json에 기록됩니다. - 예약된 점수 계산 — 구성된 주기에 따라 후보를 가중 신호로 순위화합니다. 모든 임계값 게이트를 동시에 통과해야 합니다.
- 승격 — 자격을 충족한 항목은 승격 타임스탬프와 함께
MEMORY.md에 추가됩니다. - 정리 — 이미 승격된 항목은 이후 주기에서 제외됩니다. 파일 잠금으로 동시 실행을 방지합니다.
모드
dreaming.mode는 주기와 기본 임계값을 제어합니다:
| 모드 | 주기 | minScore | minRecallCount | minUniqueQueries |
|---|---|---|---|---|
off | 비활성화 | — | — | — |
core | 매일 오전 3시 | 0.75 | 3 | 2 |
rem | 6시간마다 | 0.85 | 4 | 3 |
deep | 12시간마다 | 0.80 | 3 | 3 |
스케줄링 모델
Dreaming이 활성화되면memory-core가 반복 일정을 자동으로 관리합니다. 이 기능을 위해 cron 작업을 수동으로 만들 필요는 없습니다.
다음과 같은 명시적 재정의로 동작을 조정할 수는 있습니다:
dreaming.frequency(cron 식)dreaming.timezonedreaming.limitdreaming.minScoredreaming.minRecallCountdreaming.minUniqueQueries