Scratchpads, Working Memory & External State

이 문서는 CCAF Domain 5를 이해하기 위한 개념 설명용 노트다.
여기서는 장기 실행의 일반론보다, 세션 내부 기억만으로 버티지 않고 외부 상태 구조를 함께 운영하는 방법을 다룬다. 즉 scratchpad, progress file, manifest 같은 장치를 state externalization architecture로 이해하는 데 초점을 둔다.

왜 외부 상태가 필요한가

짧은 작업은 현재 문맥 창 안에서 충분히 다룰 수 있다.
하지만 긴 조사, 다단계 편집, 장기 실행 에이전트에서는 문제가 달라진다.

시간이 길어질수록 이전 결정이 잊히고, 중간 산출물이 묻히고, 작업 목표가 드리프트하고, stale한 기억과 최신 상태가 섞인다.

즉 모델 내부 문맥만으로 모든 상태를 들고 가려 하면, 결국 신뢰성이 흔들리기 쉽다.

그래서 중요한 것은:

기억을 더 오래 붙잡는 것이 아니라, 어떤 상태를 외부에 분리해 안정적으로 관리할 것인가

다.


working memory와 external state는 어떻게 다른가

working memory

현재 세션 안에서 바로 쓰는 살아 있는 문맥이다.

예:

  • 지금 방금 읽은 파일 내용
  • 방금 나온 tool result
  • 현재 단계의 임시 판단
  • 직전의 대화 흐름

이건 빠르고 유연하지만, 길게 유지되기엔 불안정하다.

external state

세션 바깥에 더 지속적으로 남기는 상태다.

예:

  • progress file
  • task manifest
  • checkpoint note
  • scratchpad
  • handoff memo

이건 즉시성은 떨어질 수 있지만, 장기 작업에서 더 안정적인 기준점이 된다.

즉 핵심은:

working memory는 빠르지만 휘발적이고, external state는 느릴 수 있지만 더 지속적이다

는 점이다.


scratchpad는 무엇을 위한 것인가

scratchpad는 완성된 문서가 아니다.
보통 아래 같은 것을 담는다.

  • 현재 작업 목표
  • 중간 판단
  • 아직 해결되지 않은 질문
  • 다음 단계 후보
  • 임시 분류나 메모
  • 이후 확인할 포인트

즉 scratchpad는 최종 산출물이 아니라,

작업 중간의 사고와 상태를 잃지 않기 위한 임시 외부 기억

에 가깝다.

중요한 점은 scratchpad가 장황한 로그여야 한다는 게 아니라, 계속 이어갈 수 있는 최소한의 작업 기준점이 되어야 한다는 것이다.


progress file이나 manifest는 왜 유용한가

장기 작업에서는 단순 메모보다 조금 더 구조화된 외부 상태가 유용하다.

예:

  • 무엇을 이미 끝냈는지
  • 무엇이 아직 미완인지
  • 어떤 결정이 내려졌는지
  • 어떤 파일이나 문서를 확인했는지
  • 다음 세션이 어디서 다시 시작해야 하는지

이런 것을 manifest나 progress file에 남기면, 다음 세션이나 다른 에이전트가 작업을 이어받기 쉬워진다.

즉 external state의 핵심은 저장 자체보다,

작업 연속성을 복구 가능하게 만드는 것

이다.


external state에는 무엇을 저장해야 하는가

모든 것을 다 저장할 필요는 없다.
보통 가치가 큰 것은 다음과 같다.

  • 현재 목표
  • 핵심 결정
  • open question
  • 남은 TODO
  • 중요한 source pointer
  • 최신 상태를 반영하는 checkpoint
  • handoff 시 바로 필요한 사실

반대로 굳이 그대로 저장할 필요가 적은 것은:

  • 장황한 원본 transcript 전체
  • 이미 폐기된 시도
  • 현재 작업과 무관한 세부 탐색 흔적

즉 external state는 로그 저장소가 아니라,

작업을 이어가기 위한 핵심 상태 저장소

여야 한다.


왜 이게 reliability 문제인가

외부 상태가 없으면, 세션이 길어질수록 에이전트는 점점 더 많은 것을 문맥 창 안에서만 기억하려고 한다.

그 결과:

  • 중요한 상태를 잃고
  • 이미 한 일을 반복하고
  • stale한 결정을 다시 쓰고
  • 작업 연속성이 약해진다

즉 scratchpad나 progress file은 편의 기능이 아니라,

장기 실행에서 작업 연속성과 기준점을 지키는 reliability 장치

다.


흔한 오해

“외부 상태는 모델이 기억을 못해서 쓰는 보조수단이다”

그보다 넓다. 긴 작업의 신뢰성을 높이는 운영 구조다.

“scratchpad는 장황할수록 좋다”

아니다. 이어서 작업할 수 있을 만큼만 핵심이 살아 있으면 된다.

“문맥 창이 충분히 크면 외부 상태는 필요 없다”

그렇지 않다. 길이보다 상태의 정리와 재접지가 더 중요할 수 있다.


한 문장 요약

긴 작업의 신뢰성은 모델 내부 문맥만이 아니라, scratchpad·progress file·manifest 같은 external state를 어떻게 관리하느냐에 크게 좌우된다.