운영 환경의 Claude Tool Loop에 필요한 5가지 중지 조건
요약
운영 환경에서 Claude 에이전트 루프는 모델의 판단에 의존할 수 없으며, 코드가 명확한 중지 조건을 정의해야 합니다. 애플리케이션은 스키마 검증, 권한 확인, 비즈니스 규칙 준수 등 5가지 핵심 단계를 거쳐 도구 호출을 신뢰성 있게 처리해야 합니다.
핵심 포인트
- 도구 호출의 실행 여부는 모델이 아닌 코드가 결정해야 함.
- 스키마, 권한, 비즈니스 규칙 등을 통해 요청을 다층적으로 검증해야 함.
- 오류는 복구 가능(Recoverable)과 종료적(Terminal)으로 분리하여 처리해야 함.
- 완료, 대기, 거부 등 5가지 명확한 중지 조건을 코드로 구현해야 함.
데모 에이전트 루프는 모델이 완료되었다고 말할 때까지 실행됩니다. 하지만 운영(production) 루프는 그렇게 작동할 수 없습니다. 각 도구 호출은 무언가를 변경하라는 요청이며, 루프를 언제 멈출지는 모델이 아니라 코드가 결정해야 합니다.
모든 도구 호출을 신뢰할 수 없는 요청으로 취급하라
Claude는 구조화된 tool-use 블록(도구 이름과 인자)을 반환합니다. 어떤 작업이 실행되기 전에 애플리케이션은 다섯 가지를 확인합니다:
- 스키마 (Schema): 인자가 올바른 형태인지 확인합니다. 엄격한 스키마는 잘못된 호출을 포착합니다.
- 신원 및 권한 (Identity and permission): 요청자가 이 작업을 위해 이 도구를 사용할 수 있는지 확인합니다.
- 비즈니스 규칙 (Business rules): 실제 기록이 올바른 상태인지, 금액이 일치하는지, 제한 사항을 준수하는지 확인합니다.
- 승인 (Approval): 특정 임계값 이상의 작업은 사람의 승인을 기다립니다.
- 멱등성 (Idempotency): 재시도(retry)가 두 번째 결제, 주문 또는 메시지를 생성하지 못하도록 합니다.
유효한 JSON이지만 잘못된 작업을 요청하는 경우에도 여전히 유효하지 않습니다. 스키마는 형태를 확인하고, 비즈니스 검증은 의미를 확인합니다.
타입이 지정된 결과를 반환하라
모델이 안전하게 사용할 수 있는 필드를 포함하여 타입이 지정된 성공 또는 오류를 반환해야 합니다. 두 가지 종류의 오류를 분리하세요:
- 복구 가능 (Recoverable): 예를 들어 기록된 금액과 함께
AMOUNT_MISMATCH와 같은 경우입니다. Claude는 요청을 한 번 복구할 수 있습니다. - 종료적 (Terminal): 권한 실패, 정책 거부 또는 안전하지 않은 콘텐츠와 같습니다. 즉시 중단해야 합니다.
자유 텍스트 오류를 반환하는 루프는 무분별한 재시도와 지어낸 수정(invented fixes)을 초래합니다.
다섯 가지 중지 조건
이것들을 코드로 작성하세요:
- 완료 (Done): 정의된 비즈니스 결과가 완료되었을 때.
- 대기 (Waiting): 필요한 인간의 승인이 누락되었을 때. 추측하지 말고 일시 중지합니다.
- 거부 (Refused): 권한 실패, 정책 거부 또는 안전하지 않은 콘텐츠와 같을 때.
- 재시도 사용 완료 (Retries used up): 일시적이거나 복구 가능한 오류에 대한 작고 고정된 횟수의 재시도입니다.
- 예산 소진 (Budget exhausted): 최대 턴(turns), 도구 호출, 경과 시간, 토큰 또는 비용이 한계에 달했을 때.
작업에 필요하지 않은 도구는 제외하라
작업에 필요하지 않은 도구는 제외하라
가장 간단한 제어 방법은 에이전트에게 절대 제공하지 않는 도구를 사용하는 것입니다. 송장 승인을 요청할 수 있는 매입채무(accounts-payable) 에이전트는 결제 도구가 필요하지 않습니다. 결제가 허용 목록에 없다면, 어떤 프롬프트도 루프를 해제하도록 만들 수 없습니다.
모든 실행을 추적하라
모델 버전, 입력값, 도구 호출, 결과 및 승인 사항을 각 실행마다 기록해야 합니다. 누군가 에이전트가 왜 특정 행동을 했는지 물어볼 때, 이 추적 기록(trace)이 답변이 됩니다.
더 나아가라
- 작동하는 송장 예시와 제어 테이블이 포함된 전체 가이드: production Claude tool loop on Timo Labs.
- 시험 보기: CCAR-F 학습 가이드의 task statement 1.1: agentic loops를 참고하세요.
- 무료 CCAR-F 실습 시험으로 루프 설계 추론 능력을 테스트해 보세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기