The HTTP Code Your AI Agent Doesn't Handle Yet: 402

개요

HTTP 402 Payment Required 응답 코드는 AI 에이전트가 아직 처리하지 못하는 새로운 결제 요구 사항을 나타내며, Cloudflare의 Pay-Per-Crawl 서비스는 이를 활용하여 콘텐츠 접근에 대한 비용을 청구합니다.

주요 내용

* HTTP 402의 등장: 기존 HTTP 응답 코드 200 (성공) 및 403 (접근 금지) 외에, 402 Payment Required가 Cloudflare의 Pay-Per-Crawl 서비스에서 도입되었습니다. 이 코드는 특정 비용을 나타내는 헤더와 함께 제공됩니다.
* 402의 작동 방식: 402 응답은 단순한 요금이 아니라 견적이며, 에이전트가 재요청 시 crawler-exact-price 헤더를 포함하면 송장이 됩니다. HTTP 클라이언트는 기본적으로 이에 대한 브레이크가 없어 예기치 않은 비용이 발생할 수 있습니다.
* 비용 관리의 중요성:
* NAIVE 에이전트: 402를 단순히 "결제 후 진행"으로 처리하면 예산을 초과하고 의도치 않은 비용을 지출하게 됩니다. 예시에서 NAIVE 에이전트는 $0.10 예산으로 $0.9658을 지출했습니다.
* BUDGETED 에이전트: 무료 API/대체 소스 확인, 페이지당 최대 가격(cap) 설정, 실행당 예산(run budget) 관리와 같은 정책을 구현해야 합니다. 예시에서 BUDGETED 에이전트는 $0.0600으로 예산 내에서 작동했습니다.
* 비용 절감을 위한 정책:
* 무료/저렴한 대체 소스 확인: API, sitemap, 공개 데이터 덤프 등을 먼저 확인합니다.
* 페이지당 최대 가격 설정: 개별 페이지에 대해 지불할 수 있는 최대 금액을 설정하여 과도한 지출을 방지합니다.
* 실행당 예산 관리: 전체 작업에서 지출할 수 있는 총 예산을 설정하고, 작업이 진행됨에 따라 차감하여 예산을 초과하지 않도록 합니다.
* 기존 워크플로우의 확장: 402 코드는 기존의 200 (파싱), 403 (차단), 429 (속도 제한) 결정 트리에 새로운 분기로 추가되며, 단순히 "열려있지 않음"을 의미하는 403과 달리 "무료가 아님"을 명확히 합니다.
* 프로덕션 환경에서의 고려사항:
* 내구적인 예산 관리: 예산은 메모리가 아닌 데이터베이스나 Redis와 같은 영구 저장소에 저장되어야 합니다.
* 동시성 처리: 여러 워커가 동시에 예산에 접근할 때 원자적(atomic)으로 예산을 감소시켜야 합니다.
* 실제 결제 프로세스: crawler-exact-price 헤더 전송, 200 응답 수신, 실제 금액 지불 등 실제 프로토콜 처리가 필요합니다.
* 결정의 주체: 402는 프로그래밍 문제라기보다는 런타임 정책 결정의 문제입니다. 클라이언트 라이브러리가 아닌 개발자가 정책을 설정해야 합니다.

시사점

402 Payment Required 응답 코드는 AI 에이전트가 콘텐츠 접근에 대한 비용을 직접 관리하고 정책 기반의 의사결정을 내리도록 요구하며, 개발자는 예산, 가격 제한, 대체 소스 확보 등 명확한 결제 정책을 수립하고 구현해야 합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions