TL;DR
- AI Circuit Breaker는 에이전트의 도구 호출 무한 반복과 API 지출 한도 초과를 막는 역방향 프록시로, 35ms 미만 오버헤드와 페이로드 미보존을 목표로 함.
- 요청 본문을 저장하지 않고 휘발성 메모리에서 프롬프트 해시를 검사하며, 반복 감지 시 요청을 차단함.
- 시간당 2달러, 하루 10달러의 지출 상한을 설정하고, 업스트림 전송 전에 요청을 점검함.
- 동일한 도구 계획이 반복되는 사례에서 슬라이딩 덱이 세 번째 시도에 반복을 감지하는 시뮬레이션을 제시함.
- Python과
FastAPI로 구축됐으며, 기존 SDK 설정에서 기본 URL을 바꾸는 방식으로 연결함.
게이트웨이 사양
- API 예산을 소진할 수 있는 에이전트의 반복 실행을 차단하는 드롭인 역방향 프록시임.
- 휘발성 RAM에서 강제 지출 한도를 적용하며, 페이로드를 보존하지 않는 구조임.
- 프록시 오버헤드는 35ms 미만을 목표로 하며, 성능은 배포 환경·네트워크 상태·요청 유형에 따라 달라짐.
- 무료 프록시 키와 API 문서를 제공한다고 안내함.
- 라이브 터미널 테스트 주소: https://circuit-breaker-api.onrender.com/health
- 프랑크푸르트(eu-central-1)에서 표시된 프록시 지연 시간은 32ms이며, HTTP/2 SSE가 활성화된 것으로 제시됨.
- 예시 요청 추적은 프롬프트 해시 일치 여부와 지출 한도를 확인한 뒤 업스트림 응답을 전달하는 흐름임. 표시 값은 시뮬레이션 예시임.
대화형 요청 시뮬레이션
- 요청 시뮬레이션은 프로토콜 참조와
gateway-simulation.log를 제공함. - 예시 에이전트가 주문 삽입 작업에서 변경되지 않은 재시도 후에도 동일한 데이터베이스 쓰기를 반복하는 상황을 보여줌.
- 화면에는 다음 요청 실행 및 초기화 기능과 요청 상태
POST /v1/chat/completions 200 OK가 표시됨.
클라이언트 설정
- SDK는 유지하고 기본 URL만
https://circuit-breaker-api.onrender.com/v1로 바꾸는 구성이 제시됨. - Python 예시는
openai클라이언트에 새 기본 URL과cb_live_...형식의 API 키를 설정함. - 페이지에는 Python, TypeScript, cURL 설정 탭이 표시됨.
아키텍처와 요청 처리
- 요청 흐름: HTTP/2와 SSE를 지원하며, 휘발성 메모리에서 요청을 검사함.
- 차단 응답: 반복이 감지되면 HTTP 400과 함께
circuit_breaker_loop_detected유형,infinite_loop_killed코드를 반환함. - 휘발성 메모리: RAM 해시 실행 목표는 15ms 미만, 지문 방식은 SHA-256, 디스크 쓰기는 0, 페이로드 저장은 없음으로 제시됨.
- 마이크로달러 단위 회계: 시간별·일별 계정 한도를 기준으로 업스트림에 보내기 전에 요청을 점검함. 한도 위반 응답 코드는
429 BUDGET_LIMIT_BREACHED임. - 시간당 상한은 2달러, 일일 상한은 10달러임. 표시 막대는 한도 구간을 나타내며 실시간 계정 사용량은 보여주지 않음.
- 성능 수치는 엔지니어링 목표이며 배포 환경, 네트워크 조건, 요청 프로필에 따라 달라짐.
장애 분석: 초과 지출 예시
- 처리되지 않은 SQL 오류로 에이전트가 동일한 도구 호출을 분당 120회 재시도하는 상황을 가정함.
- 이 예시에서는 슬라이딩 덱이 세 번째 시도에서 반복을 인식하고 나머지 요청이 전송되기 전에 사이클을 중단함.
- 45분 동안 680달러 이상이라는 비용은 모델링된 시나리오이며 실제 고객 지출 측정치가 아님.
- 회피 추정 지출은 차단된 사고 한 건당 35달러를 가정함.
- 시나리오 순서는 SQL 쓰기 실패, 변경되지 않은 도구 계획의 분당 120회 재시도, 세 번째 시도에서 프롬프트 지문 반복 기준 초과, 루프 중단 및 예시상 680달러 이상의 노출액 회피임.
제작 배경
- Circuit Breaker는 노르웨이의 Roan de Jager(@roandejager)가 구축함.
- 자율 에이전트가 재귀적인 도구 재시도 루프에 갇혀 하룻밤 사이 수백 달러 상당의 API 크레딧을 소진한 뒤 이 제품을 만들었다고 설명함.
- Python과
FastAPI로 구축했으며, 35ms 미만의 원시 성능과 페이로드 미보존을 내세움. - GitHub 저장소 링크와 Roan에게 이메일을 보내는 항목을 제공함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요