100만 토큰 컨텍스트가 흔해졌습니다. 그런데 이상합니다. 그렇게 많이 기억한다면서, 어제 하던 일을 오늘 물어보면 에이전트는 모릅니다.

당연합니다. 컨텍스트와 기억은 다른 것입니다. 100만 토큰 글과 RAG 대체 논쟁에서 컨텍스트를 다뤘으니, 이번에는 기억 쪽을 정리합니다. 3층으로 나누면 헷갈리지 않습니다.

3층 구조부터 보세요

┌ 3층 영속 기억 ── 세션이 끝나도 남는 것
│   예: MEMORY.md(교훈 기록), 프로젝트 규칙, 사용자 선호
│   저장: 파일·DB·벡터 저장소 / 수명: 반영구
├ 2층 세션 기억 ── 한 작업 묶음이 이어지는 동안 유지
│   예: WORKLOG(목표·완료·다음 단계), 대화 요약, 중간 산출물
│   저장: 세션 상태·요약 노트 / 수명: 작업 단위
└ 1층 컨텍스트 ── 이번 추론에 들어가는 텍스트 범위
    예: 1M 토큰 윈도우, 이번에 읽은 파일들
    저장: 모델 입력 / 수명: 한 번의 호출

헷갈리는 지점이 여기입니다. 1층이 크다고 3층이 해결되지 않습니다. 컨텍스트는 "이번에" 보는 범위이고, 기억은 "다음에도" 꺼내는 구조입니다. Muse Spark 글에서 장기 작업을 상태 관리 문제라고 한 것도 같은 맥락입니다. 상태는 저절로 유지되지 않습니다.

1층 컨텍스트: 넓어졌지만 휘발성이다

Opus·Sonnet 5.5, Astra, Argon까지 1M이 기본값처럼 됐습니다. 긴 문서를 한 번에 넣고 추론하는 데는 확실히 좋습니다.

하지만 한계가 있습니다.

- 세션이 끝나면 사라진다 (어제 대화는 오늘 입력에 없음)
- 많이 넣을수록 비용·시간이 는다 (토큰 = 돈 = 시간)
- 중간에 잊은 것을 눈치채기 어렵다 (조용히 길을 잃음)

그래서 컨텍스트는 "넓은 작업대"로 쓰고, 중요한 것은 아래층에 적어두는 구조가 됩니다. 작업대는 넓을수록 좋지만, 작업대 위에 둔 메모는 퇴근하면 치워진다고 생각하세요.

2층 세션: WORKLOG가 곧 세션 기억이다

한 작업을 여러 턴에 걸쳐 할 때 필요한 것이 세션 기억입니다. 목표, 제약, 완료, 다음 단계, 모르는 것. Muse Spark 글에서 소개한 WORKLOG 형식이 바로 이것입니다.

## WORKLOG 예시
- Goal: 로그인 폼 validation 버그 수정
- Constraints: 인증 모듈 손대지 않기, 기존 테스트 유지
- Done: 원인 확인 (periods.py 경계 오류), 테스트 1개 추가
- Next: 회귀 테스트 실행 후 리뷰 요청
- Unknowns: 배포 스케줄 (사람에게 확인할 것)
- Verify: 전체 테스트 통과 + diff 읽기

세션 기억의 적은 초기화입니다. 세션이 끊기면 2층이 날아갑니다. 대책은 두 가지입니다.

대책 1: 큰 단계마다 WORKLOG를 파일로 저장 (사람이 읽을 수 있게)
대책 2: 재개할 때 파일을 먼저 읽게 하기 (이어하기 명령 표준화)

이어하기 프롬프트 예:
"WORKLOG.md를 먼저 읽고 Done까지 확인할 수 있는 것부터 검증한 뒤,
 Next 한 단계만 진행해. Unknowns가 있으면 멈추고 물어봐."

Qwen 서브에이전트 글에서 본 위임 구조에서도 같은 원리가 통합니다. 넘길 때 상태를 함께 넘겨야 일을 이어갑니다.

3층 영속: AGENTS.md·SKILLS.md·MEMORY.md

프로젝트가 길어지면 세션을 넘어 남을 것이 필요합니다. 요즘 정착 중인 3종 문서입니다.

문서 역할 적는 것
AGENTS.md 조직도·행동 정책 누가 뭘 맡는지, 건드리면 안 되는 곳, 승인 규칙
SKILLS.md 기술 세계관 선호 스택, 금지 패턴, 코드 스타일, UI 방향
MEMORY.md 장기 교훈 겪었던 오류와 해결책, 설계 의도, 반복 금지 사항

MCP 비교 글과 보안 4층 글의 권한 파일 이야기가 여기와 이어집니다. AGENTS.md에 권한을 적으면 3층 기억이 곧 안전 장치가 됩니다.

MEMORY.md에 적기 좋은 것 (예시):
- 2026-09: 결제 모듈은 테스트 없이 머지 금지 (장애 이력)
- 기간 경계는 half-open interval로만 처리 (버그 이력)
- 외부 API 추가 시 캐시·재시도 정책을 함께 적을 것 (리뷰 코멘트 반복)

적지 말 것:
- 일회성 작업 내용 (2층 WORKLOG의 자리)
- 민감 정보·비밀키 (기억이 아니라 금고의 자리)

CodeBridge Mini Lab: 3층을 한 프로젝트에 깔기

① AGENTS.md 1장 (30분):
   - 역할 3개 정의 (탐색·구현·검토)
   - 금지 경로 5개 + 승인 필요 명령 목록

② SKILLS.md 반 장 (20분):
   - 스택·스타일·금지 패턴 10줄 이내

③ MEMORY.md 시작 (10분):
   - 지금까지 겪은 실수 3개만 적기
   - 규칙: 같은 실수 2번 하면 1줄 추가

④ 세션 루틴 고정:
   - 시작: WORKLOG 읽기 → 검증 → 진행
   - 종료: WORKLOG 갱신 + 교훈 있으면 MEMORY에 1줄

실제 프로젝트 붙이기와 하네스 글의 검증 루프에 기억층을 얹는 것입니다. 거창하게 시작하지 마세요. 파일 3개와 루틴 2개면 됩니다.

결론: 기억은 저절로 안 쌓인다

마지막으로 한 줄입니다.

컨텍스트는 작업대, 세션은 진행판, 영속은 교훈집. 세 개를 따로 설계하세요.

어제 일을 기억 못 하는 에이전트를 탓하기 전에 물어보세요. 어제 일을 적어둘 곳을 줬는가. 기억 3층은 거창한 시스템이 아니라 파일 3개와 루틴 2개에서 시작합니다. 오늘 WORKLOG 1장 쓰는 것부터가 3층의 2층째입니다.

함께 읽으면 좋은 글

참고 자료

이 주제를 직접 따라가며 배우고 싶다면

기억 구조를 포함한 에이전트 실행 구조를 설계해보고 싶다면, 하네스·루프·그래프를 순서대로 쌓는 과정이 이 글의 3층 구조와 바로 이어집니다.