slowlp
← 블로그
방법 2026.07.12 · 3분 읽기

서브에이전트는 백지다

todo 한 줄과 상세 블록이 곧 전부일 때 생기는 함정, 140턴까지 가본 이야기

방법

todo 한 줄과 상세 블록이 곧 전부일 때 생기는 함정


todo에 모델을 나눠 박고 dispatch로 위임하면 토큰을 아낄 수 있다. 그 이야기는 todo에 모델을 박아 두는 이유에 따로 썼다. 여기는 그 이면이다.

강제 호출은 조심히 써야 한다. 자세히 안 보면 잘 모르는 함정이 있다.


1. 백지에서 시작한다

서브에이전트는 부모 대화를 상속하지 않는다. 프롬프트가 전부다. fork형만 부모 쪽을 이어 받는다. dispatch가 위임할 때 넘기는 건 todo.md 한 줄과 상세 블록, 그리고 dossier 정도다.

메인 세션에서 “아 그건 저번에 이렇게 하기로 했지” 했던 말은 안 넘어간다. Todoist description에 적어 둔 것도 dispatch는 안 읽는다. 레포 todo에 없는 건 없는 것이다.

그래서 모델만 싸게 골라도 일이 안 된다. 맥락이 비어 있으면 싼 모델이든 비싼 모델이든 수색만 한다. 새 세션마다 백지인 LLM 이야기와도 같은 축이다. 위임 단위에서도 그 원리가 그대로 적용된다.


2. 프롬프트를 충분히 넘겨야 한다

핀에 적어 둔 표가 이거다.

넣을 곳넣을 것
todo 한 줄목표·범위 한 문장
상세 블록재현 문장(입력→기대→실제), 금지 사항, 파일 힌트
dossier합격 기준·결정·검증 스모크

“검색 안 됨” 한 줄만 넘기면 에이전트는 재현도 못 하고 턴만 태운다. todo가 길어 보이는 이유가 여기 있다. 문맥을 넣어 주려고 상세가 길어진다. 군더더기가 아니라 위임 계약이다.

dispatch 쪽에는 실행 전 검증도 있다. description이 없거나 모호하면 실행 금지. What·How·Output이 안 보이면 구체화 필요로 돌린다. 그 게이트를 건너뛰고 위임하면 아래 140턴이 나온다.


3. 종료조건이 없으면 140턴

2026-07-06, 화면 버그로 서브에이전트를 강제 위임하다 140턴을 태웠다. 코드 수정은 0에 가깝고, 재현 실패 루프였다. 정리해 보니 코드 버그가 아니라 빈 쿼리 UX 요구사항 결함 쪽이었다. 재현 문장이 제대로 있었으면 0턴에 가까웠을 이야기.

dispatch 공통 계약에 지금은 이렇게 박혀 있다. 버그 태스크는 재현을 3회 이내에 판정한다. 재현 불가면 요구사항 결함으로 즉시 반환. 추가 가설 소거·git 고고학 금지. 재현 문장이 아예 없으면 시도하지 말고 반려.

에이전트는 되물을 수 없다. 절차만 주면 하위 목표에 갇혀 무한정 판다. 탈출 조건을 계약으로 줘야 한다. 핀 원칙 한 줄이 이거다. 해석·결정은 살아있는 세션에, 컴파일된 실행은 소멸하는 에이전트에. 끝엔 사람 눈.


위임 전에 볼 것

  1. 목표·범위가 한 문장으로 있는가
  2. 재현 문장(입력→기대→실제)이 있는가. 없으면 버그 위임 금지
  3. 금지 사항·파일 힌트가 상세에 있는가
  4. 성공/실패·검증 스모크가 보이는가
  5. Todoist에만 있고 todo.md에 없는 단서를 믿고 있지 않은가

네 가지가 없으면 위임하지 않는다. 모델 고르는 법, todo에 model: 달아 토큰 나누는 법은 페어 글 쪽에 있다.

강제 호출은 토큰에 이득이 있다. 다만 백지인 상대에게 일을 던지는 일이라는 걸 매번 기억해야 한다.

댓글