
로안 데 야거는 자율 에이전트가 도구 호출을 재귀적으로 재시도하다 API 크레딧 수백 달러를 쓴 경험을 바탕으로 Circuit Breaker를 만들었다. 이 도구는 반복 호출을 감지하고 시간별·일별 지출 한도를 적용하는 역방향 프록시(reverse proxy)다. 기존 SDK 설정에서 기본 주소를 바꾸려는 팀이 시뮬레이터와 설정 예시를 살펴볼 수 있다.
이 도구는 무엇을 하나
역방향 프록시는 클라이언트와 API 서버 사이에서 요청을 받아 전달하는 중간 서버다. 교통 관제소에 빗대면 쉽다. Circuit Breaker는 요청을 전달하기 전에 반복 여부와 지출 한도를 확인하고, 조건에 걸리면 호출을 중단한다.
시뮬레이터에서 무엇을 볼 수 있나
페이지에는 에이전트가 주문을 입력하는 작업 중 같은 데이터베이스 쓰기를 반복하는 요청 시뮬레이션이 있다. 시뮬레이션은 반복 감지 추적을 보여주며, 요청 실행과 초기화를 조작할 수 있다. 화면의 추적은 시뮬레이션이며 예시 값이다.
요청 흐름 예시는 프롬프트 해시가 3회 중 1회 일치하고, 지출이 설정된 한도 안에 있을 때 상위 API 응답을 통과시키는 상황을 보여준다. 게이트웨이는 HTTP/2와 서버 전송 이벤트(SSE)를 지원한다고 소개한다. 서비스 상태는 다음 명령으로 확인하도록 안내한다.
curl -I https://circuit-breaker-api.onrender.com/health
설정과 차단 응답은 어떤가
페이지의 Python 예시는 OpenAI SDK의 기본 주소를 프록시 주소로 바꾸는 방식이다. API 키는 cb_live_...로 표시돼 있다.
from openai import OpenAI
client = OpenAI(
base_url="https://circuit-breaker-api.onrender.com/v1",
api_key="cb_live_...",
)
반복 호출이 감지되면 HTTP 400 응답으로 요청을 차단하는 예시를 제시한다.
{
"error": {
"message": "Request blocked by Circuit Breaker",
"type": "circuit_breaker_loop_detected",
"code": "infinite_loop_killed"
}
}
서버는 메모리에서 요청을 검사하고, SHA-256 해시로 지문을 만든다고 설명한다. 요청 내용을 디스크에 기록하지 않고 페이로드도 저장하지 않는다는 것이 제작자의 설명이다. 시간당 2달러, 하루 10달러의 계정 한도 예시가 있지만, 페이지는 이를 실제 사용량이 아닌 한도 기준의 예시라고 명시한다. 한도를 넘는 요청은 상위 API로 보내기 전에 확인하며, 예시 응답은 429 BUDGET_LIMIT_BREACHED다.
비용과 성능 수치는 어디까지 확인됐나
SQL 재시도 시나리오에서는 오류가 난 뒤 에이전트가 분당 120회 같은 도구 계획을 반복하고, 세 번째 시도에서 반복을 감지해 나머지 요청을 보내기 전에 멈춘다고 설명한다. 45분 동안 680달러 이상이 들 수 있다는 비용은 실제 고객 지출 측정치가 아니라 모델링한 시나리오다. 차단으로 절감한 비용 추정치는 가로막은 사건당 35달러를 가정한다.
제작자는 원시 처리 성능을 35밀리초 미만으로 제시하고, 메모리 실행 목표는 15밀리초 미만으로 표시한다. 성능 수치는 배포 환경, 네트워크 조건, 요청 유형에 따라 달라지는 엔지니어링 목표다. 페이지에는 프랑크푸르트에서 프록시 지연 32밀리초라는 표시도 있지만, 이를 뒷받침하는 측정 방법은 제시하지 않는다.
써 보려면 프록시 기본 주소와 API 키 설정을 확인하고, 지출 한도를 정해야 한다. 원문은 무료 키를 안내하지만 가격과 지원 범위, 실제 환경에서의 성능 측정 결과는 밝히지 않는다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요