TodoWrite & Task System — 계획 없는 에이전트는 표류한다
이전 이야기에서: 지민은 Skills로 /commit, /deploy 같은 워크플로우를 패키징했다. 반복이 사라졌다. 하지만 결제 시스템처럼 10단계짜리 작업을 시키자 Claude가 5단계에서 길을 잃기 시작했다...
Harness = Tools + Knowledge + Context + Permissions
Task System은 Context를 외부화해서 계획이 살아남게 한다. "An agent without a plan drifts"
"어디까지 했어?"
소연이 슬랙에 메시지를 보냈다.
소연: 스프린트 리뷰 때 결제 시스템 데모 가능해? 2주 후야.
지민이 결제 시스템 구현을 요청했다.
지민: OAuth 2.0 + Stripe 결제 연동을 구현해줘
Claude가 작업을 시작했다. 1시간이 지났다.
지민: 어디까지 했어?
Claude: 음... 여러 작업을 진행했는데요...
DB 스키마를 수정했고... 아, API 라우트도 만들었고...
테스트도 좀 작성한 것 같은데... 정확히 어디까지인지는...
1시간 동안 일했는데 진행 상황을 모른다.
지민이 직접 파일을 확인해봤다. 1-3단계까지는 깔끔했다. 하지만 4단계부터 이상했다. 이미 완성한 DB 스키마를 다시 수정하고 있었다. 마치 길을 잃은 것처럼.
단순한 작업은 Skills로 충분했다. /commit, /plan — 몇 단계로 끝나는 것들.
하지만 실제 개발은 달랐다:
나: OAuth 2.0 로그인 시스템 구현해줘
Claude: 먼저 Google Developer Console에서 앱 등록...
(1단계 완료)
다음으로 NextAuth 설치...
(2단계 완료)
...
(30분 후)
나: 어디까지 했어?
Claude: 음... Google 앱은 등록했고, NextAuth도 설치했는데
세션 미들웨어는 했는지 기억이 잘...
10단계짜리 작업에서 에이전트는 길을 잃는다.
핵심 통찰:
"On multi-step tasks, the model loses track. It repeats work, skips steps, or wanders off. A 10-step refactoring might complete steps 1-3, then the model starts improvising because it forgot steps 4-10."
이유는 Agent Loop의 구조에 있다. 작업이 진행될수록 메시지 배열이 커진다. 초반에 세운 계획이 수십 개의 도구 결과 뒤로 밀려나면서 희미해진다.
해결책: 계획을 외부 도구로 만든다
핵심 통찰은 단순했다.
계획을 Claude의 머릿속에 넣지 말고, 별도의 도구로 외부화한다.
Agent Loop에 todo 도구를 추가하면:
메시지 배열 (계속 커짐):
"이전 대화들..."
"파일 읽기 결과들..."
→ 계획이 여기 묻혀있다면 잊혀진다
외부 TodoManager (항상 참조 가능):
[ ] Google OAuth 앱 등록
[>] NextAuth 설치 (현재 진행 중)
[ ] 세션 미들웨어 구성
[ ] 로그인 페이지 UI
[ ] 테스트 작성
→ 몇 개의 결과가 쌓여도 이 목록은 사라지지 않는다