콘텐츠로 이동

예산 & 안전

스쿼드에는 토큰 과다 소비를 방지하고 예측 가능한 리소스 사용을 보장하는 내장 예산 제어 및 안전 제한이 포함되어 있습니다.

예산 구성

스쿼드 모니터링 대시보드에서 예산 설정 패널을 열어 스쿼드의 제한을 설정합니다.

제한은 설정을 저장한 스쿼드에만, 그리고 설정을 저장한 뒤에 제출한 실행에만 적용됩니다. 예산 설정을 한 번도 저장하지 않은 스쿼드는 제한 없이 실행됩니다. 이미 제한이 적용된 실행은 각 태스크를 시작하기 전에 저장된 설정을 다시 읽으므로, 변경 사항은 다음 태스크부터 반영됩니다.

토큰 제한

토큰 제한은 인프로세스 에이전트에 대해 모델 서버가 보고한 프롬프트 토큰과 완성 토큰을 합산하며, 플래너 호출도 포함합니다. 컨테이너 모드 에이전트는 컨테이너가 끝났을 때 러너가 보고한 사용량을 합산합니다. 번들 에이전트 러너는 Anthropic 캐시 쓰기와 캐시 읽기 토큰을 프롬프트 토큰으로 셉니다. 사용량을 보고하지 않는 사용자 지정 이미지에는 토큰 제한이 적용되지 않습니다. 해당 태스크는 그대로 실행되며, 실행 로그에 토큰 제한이 적용되지 않았다고 기록됩니다.

설정 기본값 설명
최대 총 토큰 100,000 전체 실행에서의 최대 토큰 수
에이전트당 최대 30,000 단일 에이전트가 소비할 수 있는 최대 토큰 수
작업당 최대 10,000 단일 태스크 실행의 최대 토큰 수

실행 제한

설정 기본값 설명
계획당 최대 작업 20 플래너가 생성할 수 있는 최대 태스크 수. 이보다 많은 태스크로 편집한 플랜은 승인 시 거부됩니다
최대 재계획 시도 3 플랜이 거부된 뒤 다시 계획할 수 있는 최대 횟수. 한도를 넘는 거부는 받아들여지지 않습니다
최대 에이전트 턴 20 태스크의 도구 호출 라운드를 이 값과 에이전트 자체 한도 중 작은 값으로 제한하며, 이후 에이전트는 최종 답변을 냅니다. 한도에 도달해도 실행은 일시정지되지 않습니다

시간 제한

설정 기본값 설명
실행 타임아웃 1,800초 (30분) 실행 시작부터의 최대 실행 시간입니다. 일시정지된 시간과, 앱 재시작부터 중단된 실행을 재개하기까지의 시간은 포함하지 않습니다
작업 타임아웃 300초 (5분) 단일 태스크의 최대 시간이며, 모델 응답을 받을 때마다 확인합니다. 컨테이너 태스크는 컨테이너가 끝나고 토큰 사용량을 보고했을 때 확인하며, 컨테이너를 시작하는 데 걸린 시간도 포함합니다

경고 임계값

경고 기준 (기본값: 80%)은 토큰 사용량 또는 실행 경과 시간이 해당 제한의 지정된 비율에 도달하면 실행마다 한 번 squad:budget-warning을 발생시킵니다. 이를 통해 제한에 도달하기 전에 개입할 시간을 확보할 수 있습니다.

실시간 예산 추적

예산 미터는 현재 실행의 소비량을 저장된 제한과 비교하여 보여 줍니다:

  • 전체 토큰 사용량 vs. 예산 제한
  • 경과한 실행 시간 vs. 실행 타임아웃. 실행이 일시정지된 동안에는 시계가 멈춥니다
  • 플랜의 태스크 수 vs. 제한

안전 이벤트

예산 경고

토큰 사용량 또는 경과 시간이 경고 임계값에 도달하면 squad:budget-warning 이벤트가 발생합니다. 모니터링 대시보드에서 예산 미터가 주황색으로 강조되어 제한에 근접하고 있음을 알립니다.

예산 초과

토큰 또는 시간 제한에 도달하면 실행이 일시정지됩니다:

  • 실행 중인 태스크는 현재 모델 응답 이후 중단되고 실패로 표시됩니다. 도구 호출 라운드를 모두 쓴 에이전트가 내는 최종 답변도 여기에 포함됩니다. 컨테이너 태스크는 컨테이너가 끝났을 때 확인합니다. 이후 태스크가 이 태스크에 의존한다면 재개하기 전에 다시 시도하세요
  • 새로운 태스크는 시작되지 않습니다
  • squad:execution-paused와 squad:budget-exceeded가 발생하며, 이벤트의 사유에 도달한 제한이 명시됩니다
  • 재개는 제한을 다시 확인하므로 먼저 제한을 높이세요. 여전히 제한을 넘는 실행은 다시 일시정지됩니다. 기록된 사용량이 10,000,000 토큰 이상이면 예산이 허용하는 최대 제한에 도달한 것이므로 제한을 높여도 실행을 재개할 수 없습니다. 남은 태스크를 건너뛰어 실행을 완료하거나 취소하세요

태스크 수와 재계획 제한은 일시정지 대신 해당 동작을 거부합니다. 플래너는 더 많은 태스크를 만들 수 없고, 태스크가 너무 많은 승인은 거부되며, 재계획 한도를 넘는 거부는 받아들여지지 않고 플랜은 승인 대기 상태로 남습니다.

긴급 중지

긴급 중지는 운영자가 직접 실행합니다. 예산 미터의 긴급 중지, POST /api/v1/squads/{id}/emergency-stop, 또는 aigo squad emergency-stop을 사용하세요. 스쿼드의 실행 중인 모든 실행을 즉시 중지합니다:

  • 실행 중인 태스크가 즉시 중단되고, 컨테이너 태스크의 컨테이너도 함께 중지됩니다. 정지 시점에 실행 중이던 도구 호출은 이미 반영되었을 수 있습니다. 태스크가 컨테이너가 아닌 앱 안에서 실행된 경우 이런 호출은 중단되었다는 오류와 함께 실패한 호출로 기록되므로, 반영되었을 수 있는 부작용을 감사 로그의 도구 실행 탭과 실행 이벤트에서 확인할 수 있습니다
  • 대기 중인 태스크가 취소됩니다
  • 각 실행의 상태가 실패로 변경됩니다
  • squad:emergency-stopped 이벤트가 사유와 함께 발생합니다

모범 사례

  • 보수적으로 시작: 기본 제한으로 시작하고 스쿼드의 사용 패턴을 이해한 후 증가시키세요.

  • 에이전트별 제한 활용: 특정 에이전트가 장황한 경향이 있다면 전체 예산을 올리기보다 에이전트별 토큰 제한을 낮추세요.

  • 첫 실행 모니터링: 첫 실행 시 예산 미터를 주의 깊게 관찰하여 제한을 보정하세요.

  • 태스크 타임아웃 설정: 개별 태스크 타임아웃이 전체 예산을 소진하기 전에 멈춘 에이전트를 잡아냅니다.

예산 제한은 정확하지 않습니다

제한은 모델 응답을 받을 때마다 확인하므로, 실행이 일시정지되기 전에 한 번의 응답으로 제한을 넘을 수 있습니다. 컨테이너 태스크는 컨테이너가 끝났을 때만 확인합니다. 토큰 사용량을 보고하지 않는 모델 서버나 컨테이너 이미지에는 토큰 제한을 적용할 수 없습니다. 항상 작은 안전 마진을 두고 제한을 설정하세요.