← 블로그로
News약 11 분 읽기

Anthropic, 이제 답변을 거부한 요청에도 비용을 청구한다

게시일 2026년 10월 4일
Anthropic, 이제 답변을 거부한 요청에도 비용을 청구한다

9월 24일 17:11 UTC, Anthropic의 개발자 계정이 청구 문서의 한 줄을 바꾸는 두 개의 문단을 게시했다. 이 회사는 Claude가 응답하기 전에 자사의 안전장치가 차단한 요청에 대해 다시 비용을 청구한다. 이 변경은 오탐률이 낮다고 측정된 세 가지 범주에만 적용된다: 생물학, 프런티어 대형 모델 개발, 그리고 게시물에서 증류 공격(distillation attacks)이라고 부르는 추론 추출이다.

작동 방식은 단순하면서도 다소 불편하다. Claude 분류기가 아무것도 생성하기 전에 요청을 거부하면, API는 오류를 반환하지 않는다. 대신 `stop_reason: "refusal"`과 빈 콘텐츠 배열, 그리고 `category` 필드에 정책 영역을 명시하는 `stop_details` 객체를 담은 정상적인 HTTP 200 응답을 반환한다. 이 거부 응답에는 콘텐츠가 없지만 토큰 수는 여전히 사용량에 나타나고, 해당 요청은 여전히 여러분의 요청 한도에 산입된다. 새 규칙에 따르면 이 세 범주에서 거부도 청구되며, 요금은 이를 실행한 모델의 요율로 부과된다.

Anthropic은 Fable 제품 출시 무렵인 6월 2일, 출력이 전혀 없는 거부에 대한 요금을 폐지했었다. 모델이 답변을 시작한 뒤 중단되는 중간 스트림 거부는 항상 청구되었다. 사이버 보안과 일반적 유해성을 포함한 다른 범주에서 출력 이전의 거부는 여전히 무료다. 이번 변경은 Claude API, Amazon Bedrock, AWS의 Claude Platform, Google Cloud, Microsoft Foundry 전반에 적용되며, 문서에는 청구 대상 범주가 다시 바뀔 수 있다는 경고가 추가되었다.

왜 청구가 이제 보안 통제 수단이 되었나

회사가 밝힌 이유는 최근 몇 주 동안 자사 시스템에 대한 조직적인 공격을 목격했기 때문이다. 비용이 들지 않는 차단된 요청은 무료 탐침이다. 분류기의 형태를 파악하려는 공격자는 수천 건의 요청을 보내고 한 푼도 내지 않고 거부 응답에서 정보를 얻을 수 있다. 공격을 받고 있는 바로 그 세 범주에서 차단된 시도에 가격을 매기는 것은 그러한 형태 파악의 비용을 높이며, Anthropic은 이 요금이 수익이 아니라 방어 계층으로 작동하기 위한 것이라고 명확히 밝힌다.

발표와 함께 두 가지 숫자가 나왔다. 최근 테스트에서 Claude Code, Claude.ai 또는 Cowork를 사용하는 계정의 99.7퍼센트가 새로 청구 대상이 된 차단을 전혀 겪지 않았다. 그 뒤에 있는 분류기들은 오탐률이 0.1퍼센트 미만이 되도록 조정되어 있으며, 게시물은 이 수치가 0이 아니며 분류기들은 작업을 덜 방해하도록 계속 개선될 것이라고 덧붙였다.

분류기는 네 가지 Claude 모델에서 실행된다: Fable 5.1, Fable 5, Opus 5.5, Opus 5. 문서에는 다섯 가지 범주가 명시되어 있다. 그중 사이버 보안과 일반적 유해성 두 가지는 청구되지 않는다. 청구되는 세 가지는 Anthropic의 상업적 약관이 이미 제한하고 있는 작업에 대응하며, 이것이 애초에 오탐률이 측정 가능할 만큼 낮은 이유이기도 하다: 정당한 고객 중 프런티어 모델 학습을 돌리거나 모델에게 자체 내부 추론을 재현하도록 요청하는 이는 거의 없다.

검은 뚜껑이 달린 투명한 유리 바이알이 어두운 반사 표면 위에 서 있는 모습

증류 공격은 짚고 넘어갈 가치가 있다. 그 이름이 많은 일을 하고 있기 때문이다. 범주 코드는 `reasoning_extraction`이며, 이것이 겨냥하는 행위는 모델이 단계별 내부 추론을 드러내도록 유도해 그 출력을 경쟁 시스템 학습에 사용할 수 있게 만드는 것이다. 이는 지난 한 해 여러 모델 도용 분쟁의 배후에 있는 메커니즘이며, 단순히 모델이 소리 내어 생각하기를 원하는 일반 사용자와 구분하기 어렵다.

오탐은 이미 눈에 보인다

claude-code GitHub 저장소에 열려 있는 이슈들은 그 비율에 대해 다른 이야기를 들려준다. 한 사용자는 팟캐스트 원고와 예산 스프레드시트 같은 평범한 작업에서 추론 추출 범주로 23건의 플래그를 기록했고, 그중 7건이 턴을 종료시켰다고 말했다. 다른 보고들은 표준적인 소프트웨어 개발 작업과 Claude Code 자체의 워크플로 문서가 같은 차단을 유발했다고 설명한다. Anthropic은 잘못된 차단으로 판명된 경우 환불이 어떻게 이루어지는지에 대해 `/feedback` 명령을 안내하는 것 외에는 설명하지 않았다.

그 공백이 실질적인 문제다. 개발자는 `stop_reason: "refusal"` 이벤트를 세고 폴백 모델로 재시도할 수 있으며, 이것이 문서화된 우회 방법이고 폴백 크레딧 제도는 변경되지 않았다. 하지만 청구가 이루어지는 순간에 그 차단이 올바른 것이었는지는 쉽게 알 수 없다. 답이 나중에 도착한다면 돈은 이미 오간 뒤이며, 공개되지 않은 환불 정책은 재무팀이 예산을 세울 수 있는 대상이 아니다.

이 게시물에 대한 반응은 분노라기보다 온건했다. 약 3시간 만에 X에서 좋아요 약 1,511개, 리포스트 64개, 답글 220개를 모았고, Hacker News 제출은 5점과 댓글 2개를 얻었다. 논의의 대부분은 금액이 아니라 원칙에 관한 것이었는데, 이는 그 금액이 청구서에서 눈에 띄지 않을 만큼 작다는 것을 시사한다.

팀이 실제로 통제할 수 있는 것

문서에서 파이프라인에 연결해 둘 만한 두 가지가 있다. 첫째는 기계가 읽을 수 있는 필드로 도착하는 거부 범주이므로, 서비스가 로그에서 거부를 오류와 분리하고 분기별 검토 때 패턴을 발견하는 대신 범주별로 시간에 따라 집계할 수 있다. 둘째는 폴백 경로다. 문서화된 패턴은 거부된 요청을 폴백 모델로 재시도하는 것이며, Anthropic은 폴백 크레딧 제도가 변경되지 않았다고 말한다. 즉 재시도가 같은 작업에 두 번 비용을 지불하지 않는다는 뜻이다.

둘 중 어느 것도 오탐 문제를 해결하지는 못한다. 청구 대상 범주에서 정당한 요청이 차단되면, 기록에는 범주 코드가 있고 콘텐츠는 없는 거부가 남고 청구서에는 요금이 찍힌다. 그 필드를 한 번도 읽지 않는 팀은 누군가 왜 청구서가 달라졌는지 물을 때에야 그 비율을 알게 된다.

흥미로운 부분은 원칙이다

모든 대형 모델 제공업체는 이런 계산의 어떤 버전을 돌린다. 거부는 연산을 소모하며, 고객이 마음대로 유발할 수 있는 거부는 공격자가 당길 수 있는 지렛대다. 거부된 요청에 요금을 부과하면 그 비용이 그것을 당기는 쪽으로 되돌아간다.

문제는 같은 지렛대가 아무것도 공격하지 않는 사람들에게도 닿을 수 있다는 점이다. 생물학 논문을 쓰는 사람이나 모델 증류 기법을 연구하는 스타트업은 의도가 아니라 하는 일의 정의상 청구 대상 범주에 속한다. Anthropic 자신의 설명은 오탐률이 감수할 만큼 낮다는 것이며, 이는 수수료를 걷는 당사자가 내린 판단이다.

더 깔끔한 설계가 존재하며, Anthropic은 이를 부분적으로 만들어 두었다. `stop_details.category` 필드는 기계가 읽을 수 있으므로, 팀은 거부를 로그로 보내고 범주별로 집계하고 전체적으로 감사할 수 있다. 거부된 응답은 토큰 수와 함께 사용량 기록에도 나타나므로, 이의 제기에 필요한 데이터는 이미 기록되고 있다는 뜻이다. 그것이 프로덕션에서 Claude를 운영하는 일상적인 부분이 될지, 아니면 대부분의 팀이 결코 읽지 않는 각주로 남을지가 이 청구 변경이 청구서 항목 위에 얼마나 더 많은 비용을 초래하는지를 결정한다.

관련 글