- 홈
- Documentation
- 세션
- 자율 메모리
자율 메모리
활성화하면, 에이전트가 과거 세션에서 지속적인 지식을 자동으로 추출하고 각 새 세션에 압축된 요약을 주입합니다. 시간이 지남에 따라 프로젝트 범위의 메모리 저장소 — 기술적 결정, 반복 워크플로, 주의사항 — 를 구축하여 수동 작업 없이 다음 세션으로 이어집니다.
기본적으로 비활성화되어 있습니다. /settings 또는 config.yml을 통해 활성화하세요:
memories: enabled: true사용법
섹션 제목: “사용법”주입되는 내용
섹션 제목: “주입되는 내용”세션 시작 시, 현재 프로젝트에 대한 메모리 요약이 존재하면 시스템 프롬프트에 Memory Guidance 블록으로 주입됩니다. 에이전트는 다음과 같이 지시받습니다:
- 메모리를 휴리스틱 컨텍스트로 취급 — 프로세스와 이전 결정에는 유용하지만, 현재 저장소 상태에 대해 권위적이지 않음.
- 메모리가 계획을 변경할 때 메모리 아티팩트 경로를 인용하고, 행동하기 전에 현재 저장소 증거와 함께 확인.
- 저장소 상태와 사용자 지시가 메모리와 충돌할 때 이를 우선시하며, 충돌하는 메모리는 오래된 것으로 취급.
메모리 아티팩트 읽기
섹션 제목: “메모리 아티팩트 읽기”에이전트는 read 도구와 함께 memory:// URL을 사용하여 메모리 파일을 직접 읽을 수 있습니다:
| URL | 내용 |
|---|---|
memory://root | 시작 시 주입되는 압축 요약 |
memory://root/MEMORY.md | 전체 장기 메모리 문서 |
memory://root/skills/<name>/SKILL.md | 생성된 스킬 플레이북 |
/memory 슬래시 명령어
섹션 제목: “/memory 슬래시 명령어”| 하위 명령어 | 효과 |
|---|---|
view | 현재 메모리 주입 페이로드 표시 |
clear / reset | 모든 메모리 데이터 및 생성된 아티팩트 삭제 |
enqueue / rebuild | 다음 시작 시 통합 실행 강제 |
작동 방식
섹션 제목: “작동 방식”메모리는 시작 시 또는 슬래시 명령어를 통해 수동으로 트리거되는 백그라운드 파이프라인에 의해 구축됩니다.
1단계 — 세션별 추출: 마지막 처리 이후 변경된 각 과거 세션에 대해, 모델이 세션 기록을 읽고 지속적인 신호를 추출합니다: 기술적 결정, 제약 조건, 해결된 실패, 반복 워크플로. 너무 최근이거나, 너무 오래되었거나, 현재 활성 상태인 세션은 건너뜁니다. 각 추출은 해당 세션에 대한 원시 메모리 블록과 짧은 요약을 생성합니다.
2단계 — 통합: 추출 후, 두 번째 모델 패스가 모든 세션별 추출을 읽고 디스크에 기록되는 세 가지 출력을 생성합니다:
MEMORY.md— 큐레이션된 장기 메모리 문서memory_summary.md— 세션 시작 시 주입되는 압축 텍스트skills/— 재사용 가능한 절차적 플레이북, 각각 자체 하위 디렉터리에 저장
2단계는 여러 프로세스가 동시에 시작될 때 중복 실행을 방지하기 위해 리스를 사용합니다. 이전 실행의 오래된 스킬 디렉터리는 자동으로 정리됩니다.
모든 출력은 디스크에 기록되기 전에 시크릿 스캔을 거칩니다.
추출 동작
섹션 제목: “추출 동작”메모리 추출 및 통합 동작은 전적으로 src/prompts/memories/의 정적 프롬프트 파일에 의해 구동됩니다.
| 파일 | 용도 | 변수 |
|---|---|---|
stage_one_system.md | 세션별 추출을 위한 시스템 프롬프트 | — |
stage_one_input.md | 세션 콘텐츠를 래핑하는 사용자 턴 템플릿 | {{thread_id}}, {{response_items_json}} |
consolidation.md | 세션 간 통합을 위한 프롬프트 | {{raw_memories}}, {{rollout_summaries}} |
read_path.md | 라이브 세션에 주입되는 메모리 가이던스 | {{memory_summary}} |
모델 선택
섹션 제목: “모델 선택”메모리는 모델 역할 시스템을 활용합니다.
| 단계 | 역할 | 용도 |
|---|---|---|
| 1단계 (추출) | default | 세션별 지식 추출 |
| 2단계 (통합) | smol | 세션 간 합성 |
smol이 구성되지 않은 경우, 2단계는 default 역할로 폴백합니다.
| 설정 | 기본값 | 설명 |
|---|---|---|
memories.enabled | false | 마스터 스위치 |
memories.maxRolloutAgeDays | 30 | 이보다 오래된 세션은 처리되지 않음 |
memories.minRolloutIdleHours | 12 | 이보다 최근에 활성화된 세션은 건너뜀 |
memories.maxRolloutsPerStartup | 64 | 단일 시작 시 처리되는 세션 수 상한 |
memories.summaryInjectionTokenLimit | 5000 | 시스템 프롬프트에 주입되는 요약의 최대 토큰 수 |
추가 튜닝 옵션(동시성, 리스 기간, 토큰 예산)은 고급 사용을 위해 config에서 사용할 수 있습니다.
주요 파일
섹션 제목: “주요 파일”src/memories/index.ts— 파이프라인 오케스트레이션, 주입, 슬래시 명령어 처리src/memories/storage.ts— SQLite 기반 작업 큐 및 스레드 레지스트리src/prompts/memories/— 메모리 프롬프트 템플릿src/internal-urls/memory-protocol.ts—memory://URL 핸들러