Exit Condition First 규칙: AI 에이전트가 첫 번째 툴 호출 전에 Done-State가 필요한 이유

발행: (2026년 3월 9일 AM 03:57 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

The Loop Trap

여기에 종료 조건이 없을 때 일어나는 일은 다음과 같습니다:

  • 에이전트가 작업을 시작함
  • 에이전트가 진행함
  • 에이전트가 명확한 다음 단계가 없어짐
  • 에이전트가 루프에 빠짐 — 정제, 재검사, 재시도
  • 작업이 끝나는 경우: 토큰 제한에 도달, 타임아웃 발생, 혹은 누군가 수동으로 중지할 때

이 중 어느 것도 완료가 아닙니다. 모두 중단된 것입니다.

중단된 에이전트는 신뢰할 수 없습니다. 비용이 많이 들고 예측 불가능합니다.

Write the Done‑State First

단일 툴 호출이나 시스템 프롬프트를 작성하기 전에, 다음 세 가지 질문에 답하십시오:

  1. 성공은 어떤 모습인가?
    모호하지 않아야 합니다. 관찰 가능해야 합니다. “output/report.json에 파일이 쓰이고 상태가: complete” 라는 것은 관찰 가능하지만, “작업이 완료됨”은 그렇지 않습니다.

  2. 최소 허용 출력은 무엇인가?
    이것은 완벽주의 루프를 방지합니다. 에이전트는 최소 기준에 도달하면 멈춰야 하며, 이론적인 최대치를 향해 계속 반복해서는 안 됩니다.

  3. 언제 멈추고 대신 질문해야 하는가?
    모호함과 되돌릴 수 없음이 결합될 때는 반드시 일시 중지해야 합니다. 에이전트가 어떤 경로를 선택해야 할지 판단할 수 없고 그 행동을 되돌릴 수 없을 경우, 모호함을 outbox.json에 기록하고 멈춰야 합니다.

The Done‑State Pattern

current-task.json에 다음을 추가하십시오:

{
  "task": "Generate weekly performance report",
  "done_when": "report.json exists and contains status: complete",
  "stop_if": "data source unavailable after 3 retries",
  "minimum_viable_output": "report.json with at least 3 of 5 sections populated",
  "max_iterations": 10
}

에이전트는 매 행동 후 done_when을 확인합니다. true이면 멈춥니다. stop_if가 트리거되면 outbox.json에 기록하고 대기합니다. max_iterations에 도달했지만 완료되지 않으면, 수행한 작업을 로그에 남기고 깔끔하게 종료합니다.

Why This Changes Everything

정의된 완료 상태가 있으면:

  • 비용이 예측 가능해집니다. 루프가 종료됩니다. 작업에 필요한 툴 호출 수를 대략 알 수 있습니다.
  • 실패가 가시화됩니다. 에이전트가 done_when에 도달하지 못하고 max_iterations에 도달하면, 이는 신호가 됩니다 — 조용히 폭주하는 것이 아닙니다.
  • 복구가 가능해집니다. 부분 출력과 함께 깔끔히 종료되면 복구가 가능합니다. 루프 중에 충돌하면 복구가 어렵습니다.

제가 함께 일하는 한 팀은 작업 파일에 max_iterationsdone_when을 추가하기만 해도 작업당 비용을 34 % 절감했습니다. 동일한 모델, 동일한 툴, 더 나은 중지 로직.

The Audit Question

현재 실행 중인 모든 에이전트에 대해 다음 질문을 하세요: “이 작업을 6시간 동안 실행한다면 스스로 멈출까요?”

답이 아니거나 확신이 서지 않는다면, 종료 조건이 없습니다. 희망에 불과합니다.

다른 최적화를 시도하기 전에 이를 수정하십시오.

The Library at has real current-task.json templates with done‑states built in — for cron agents, multi‑agent teams, and single‑task automations. Updated from production configs, not theory.

0 조회
Back to Blog

관련 글

더 보기 »