결론부터: Sonnet 5.5는 가격표의 한 줄도 건드리지 않고, 요청 계약을 바꿨다.2026년 9월 28일, Anthropic이 Claude Sonnet 5.5(claude-sonnet-5-5)를 냈다. 입력 / 출력은 그대로 $2 / $10; 캐시 읽기는 $0.20. 공식은 출력이 30% 이상 빠르고, 대부분 과제가 대략 30% 싸다고 한다 — 아끼는 것은 과제당 token이지, 표 가격이 아니다. 생산을 깨는 것은 Sonnet 5에서 베껴 온 옛 스위치다: thinking: {"type": "disabled"}는 400; tool_choice의 any와 tool도 400; 기본이 아닌 temperature, top_p, top_k도 400. 더 조용한 함정은 JSON 추출이다: 도구가 없는 요청에서 between_tools는 모델이 먼저 생각하지 않는다는 뜻이고, Structured Output도 비뚤어진다. Anthropic 프롬프트 페이지는 이 경우를 「Reasoning tasks with JSON output」으로 따로 적는다.
이 글은 2026년 9월 29일 기준. 그날에도 유효한 모델 페이지, What's new, 마이그레이션 가이드를 따른다. 본 사이트는 이미 9월 24일에 《Opus 5.5는 왜 더 이상 tool_choice로 JSON을 강제할 수 없는가》를 냈다. 이 글은 그 네 곳의 실패를 다시 쓰지 않는다. Sonnet 5에서 5.5로 옮긴 JSON 파이프라인이 그 위에 무엇을 더 바꿔야 하는지만 답한다. Haiku 5.5는 아직 「앞으로 몇 주」다. 이 글은 그 날짜를 빌려 쓰지 않는다.
9월 28일에 나온 것
Claude Sonnet 5.5는 Claude 5.5 가족의 두 번째 모델이다. 공식 포지션: 속도와 지능의 중간; 일상 코딩, 버그 수정, 문서와 스프레드시트. 모델 ID는 Claude API, Google Cloud, Microsoft Foundry, Claude Platform on AWS에서 claude-sonnet-5-5; Bedrock은 anthropic.claude-sonnet-5-5. 지원 종료는 2027년 9월 28일보다 이르지 않다. 토크나이저는 Sonnet 5와 같아서, 같은 텍스트는 같은 token 수를 낸다.
가격(백만 token당): 입력 $2, 출력 $10, 5분 캐시 쓰기 $2.50, 1시간 캐시 쓰기 $4, 캐시 읽기 $0.20. 배치는 반값. 컨텍스트는 1M; 동기 최대 출력은 128K. Message Batches는 output-300k-2026-03-24로 300K까지 갈 수 있다. 캐시 가능한 프롬프트 하한은 Sonnet 5의 1,024 token에서 512로 내려간다. 기본 effort는 high — Opus 5.5 기본은 medium. effort를 빼면 요청은 high로 돈다. Sonnet 5와의 조용한 호환이 아니다.
발표는 Sonnet 5.5를 Opus 5.5의 더 빠르고 싼 보완 단으로 적는다. 이 글은 리더보드로 모델을 고르지 않는다. 중요한 것은 가격표는 그대로인데 thinking, tool_choice, JSON 추출 계약이 움직였다는 점이다.
다섯 곳의 하드 실패, 표 한 장
문서는 「5.5로 바꾸면 400」이 되는 요청을 분명히 적는다. 앞 세 줄은 Opus 5.5와 Fable 5.1과 뿌리가 같다. 첫 줄의 대체 쓰기는 다르다:
| 옛 요청 (Sonnet 5) | 5.5에서 | 대신 보낼 것 |
|---|---|---|
thinking: {"type": "disabled"} 또는 enabled + budget_tokens | 400 invalid_request_error, between_tools를 가리킨다 | 선행 thinking은 {"type": "between_tools"}로 꺼라; 추론이 필요하면 thinking을 생략하거나 adaptive를 보내라 |
tool_choice: {"type": "any"} 또는 {"type": "tool", "name": "..."} | 400; token 집계 엔드포인트도 같은 검사를 한다 | auto(또는 none) + strict: true, 또는 Structured Output |
| system / tools / 더 이른 메시지를 고친 뒤 thinking 블록을 회수 | 2026년 8월 31일 이후 개설 계정은 기본 400 | 대화는 추가만 하라; 지시 변경은 중간 system 메시지로 |
Claude API / Google Cloud의 computer_20251124 | 400 | computer_toolset_20260801; Bedrock은 옛 도구를 계속 받는다 |
| Opus 4.8 / 4.7 또는 Sonnet 5로 지정한 advisor | 400 | 5.5가 받는 advisor를 써라(Opus 5.5, Fable / Mythos 5.1, 또는 5.5 자신 포함) |
한 곳 더: 요청은 실패하지 않지만 조용해진다. 도구 호출 사이의 긴 설명이 이제 thinking 블록으로 온다. 기본 display: "omitted"면 텍스트가 비다. 그 문장을 진행 표시로 스트리밍하던 UI는 갑자기 말이 없다. adaptive thinking에서 진행이 필요하면 thinking.display를 설정하라(updates는 베타 헤더가 필요하다). between_tools는 요약 텍스트를 돌려주고, 이 타입은 display 필드를 거절한다.
샘플링은 더 이상 손잡이가 아니다. 기본이 아닌 temperature, top_p, top_k는 400이다. 온도를 낮춰 「JSON을 안정화」하던 요청은 이제 Schema를 안정화해야 한다.
disabled는 사라졌다; between_tools가 최저 단이다
Sonnet 5는 thinking을 disabled로 껐다. 5.5에서 그 줄은 400이고, 메시지는 between_tools를 가리킨다. 최저 설정은 이렇게 생긴다:
{
"model": "claude-sonnet-5-5",
"thinking": { "type": "between_tools" },
"output_config": { "effort": "high" }
}
between_tools는 베타 헤더가 필요 없고, 모델을 제공하는 모든 플랫폼이 받는다. 끄는 것은 선행 thinking뿐이다. 도구 호출 사이의 긴 진행 설명은 여전히 thinking 블록으로 돌아온다. 수정 없이 그대로 돌려보내라; 모델이 받는 것은 전체 노트이지, 요약이 아니다. 도구가 없으면 응답은 보통 텍스트만이다 — 옛 disabled 모양.
한도는 빡빡하다. low / medium / high만 받는다. xhigh나 max와 짝을 맞추면 400. display, budget_tokens, block_binding을 더해도 400. 대화 중간에 output_config.effort를 바꾸면 또 400 — 턴마다 effort를 바꾸려면 adaptive thinking이 필요하다. 서버 측 fallback이 Sonnet 5로 떨어지면, 그쪽에서 between_tools는 disabled로 번역된다.
그러니 5.5가 thinking을 항상 끝까지 켜 두라고 하는 것이 아니다. 옛 disabled 스위치를 치웠다. 스위치가 빠지면, thinking을 끄려는 사람은 새 타입을 보내야 한다. 안정 JSON이 필요한 사람은 대개 끄면 안 된다 — 다음 절을 보라.
도구 없는 JSON 추출에서는 thinking을 끄지 마라
Anthropic 프롬프트 페이지는 이 경우를 따로 적는다: Sonnet 5.5에 몇 단계가 필요한 JSON 과제(합계, 규칙, 순위)를 주면, low / medium에서 먼저 생각하지 않고 답하는 일이 잦다. Structured Output이 있으면 보이는 본문은 JSON뿐이어야 하므로, 계산은 thinking 안에서만 일어날 수 있다. thinking을 건너뛰면 정확도가 떨어진다.
문서가 적은 순서는:
- 될 수 있으면 Structured Output을 써라. 본문은 그때 Schema에 맞는 객체다. 채팅 산문을
JSON.parse하지 마라. 《Structured Output이란 무엇인가》를 보라. - adaptive thinking을 쓰고,
between_tools는 쓰지 마라. 도구가 없는 요청에서between_tools는 먼저 생각하지 않는다는 뜻이다. 프롬프트에 「답하기 전에 생각하라」를 넣어도 효과가 없다. 「답, 그다음 JSON」을 두 요청으로 나누면 테스트 점수는 좋았고, 지연과 token 비용이 기본값으로 쓰기엔 너무 컸다. - 시스템 프롬프트 끝에
Think the problem through before you answer.를 붙여라.high에서 정확도는xhigh에 가깝고, 출력 token은 조금 더 든다.low/medium에서도 오르지만, token 비용이 더 크다. max_tokens에 thinking 자리를 남겨라. Structured Output을low/medium에 두면, 모델이 가끔 한도까지 생각한다.stop_reason이max_tokens인 응답은 본문이 적법한 JSON이어도 실패로 보고 재시도하라.
Structured Output이 없으면, 모델은 종종 산문에서 계산하고 JSON을 맨 뒤에 둔다. 답 전체를 파싱하면 실패한다. 문서가 적은 폴백: text 블록만 읽고, 각 { 또는 [에서 파싱을 시도한 뒤, 마지막 완전한 값을 남겨라. 첫 {부터 마지막 }까지의 구간을 취하지 마라 — 가운데에 초안이 끼어 있을 수 있다. 《JSON.parse가 실패하는 이유》를 보라. 폴백이지, 계약이 아니다.
강제 도구는 400, Opus 5.5와 같다
5.5 가족은 같은 오류를 공유한다:
tool_choice: type "tool" and "any" are not supported for this model.
대체는 여전히: tool_choice는 auto로 두고, 도구에 strict: true를 켜고, JSON Schema로 파라미터를 고정하라. 최종 답은 Structured Output에 올려라. 모델이 산문으로 답하지 않고 도구를 치게 하려면, 「언제 칠지」를 프롬프트에 적어라. 프롬프트는 auto가 어느 도구를 고를지에 영향을 준다. Schema를 대체하지 않는다. 긴 설명은 《Opus 5.5는 왜 더 이상 tool_choice로 JSON을 강제할 수 없는가》《Tool Calling은 왜 JSON Schema에 의존하는가》에 있다.
5.5는 관용 한 줄을 더한다: 가끔 대소문자를 틀린 채 도구를 치거나, 파라미터 이름이 조금 다르다. 치명으로 보지 마라. 매칭이 유일하면 받고, 아니면 is_error: true와 정확한 이름을 돌려보내라. Schema는 엄하게 둬라. 이름 매칭은 한 단 느슨해도 된다.
가격표는 안 움직였다; 기본 effort는 high
표 가격은 Sonnet 5와 같다. 공식 「대략 30% 싸다」는 과제당 token이 더 적다는 것이지, 메뉴가 아니다. 독립 평가는 이미 반대쪽을 적는다: 과제가 스스로 출력을 제한하지 않으면, 새 모델이 더 비쌀 수 있다. 라우팅을 바꾸기 전에 같은 Schema로 추출을 한 바퀴 돌려라.
effort 단은 다시 맞춰졌다. 같은 high라도 Sonnet 5와 생각하는 양이 다르다. 문서는 일상 작업은 high에서 시작하고; 명세가 분명한 Agent 코딩과 도구 루프는 medium; 채팅과 지연에 민감한 작업은 medium 또는 low에서 시작한다. 최상위 effort를 바꾸면 프롬프트 캐시가 깨진다. 턴마다 바꾸려면 adaptive thinking 아래의 per-message effort(베타)가 필요하다. between_tools는 대화 중간에 effort를 움직이지 못하게 한다.
Opus 5.5와 기본값을 섞지 마라: 그쪽 기본은 medium; Sonnet 5.5 기본은 high. 모델 문자열만 바꾸면 청구서와 지연이 같이 뛴다. thinking 블록도 자유롭게 다니지 않는다. 5.5는 Sonnet 5, Opus 4.8, Haiku 4.5, 그리고 더 이른 모델의 블록을 읽을 수 있다. Opus 5, Opus 5.5, Fable, Mythos는 읽지 않는다. 다른 모델도 Sonnet 5.5 블록을 읽지 않는다. 대화를 Opus 5.5에서 Sonnet 5.5로 옮기면 API가 추론을 버린다. 요청은 여전히 200이다; 버린 블록은 청구하지 않는다.
온도, 캐시, 컴퓨터 도구, advisor
기본이 아닌 temperature / top_p / top_k는 400이다. 샘플링으로 「JSON을 조이던」 파이프라인은 이제 Schema를 조여야 한다. 캐시 하한은 512 token이라, 짧은 시스템 프롬프트가 더 쉽게 캐시된다. 최상위 effort를 바꾸면 그 캐시는 여전히 무효가 된다.
Claude API와 Google Cloud에서 컴퓨터 도구는 computer_toolset_20260801만 받는다. Bedrock은 computer_20251124를 계속 받는다. advisor 도구(베타)는 5.5 실행기가 Opus 4.8 / 4.7 또는 Sonnet 5와 짝을 이루지 못하게 한다. 5.5가 받는 advisor는 암호화된 advisor_redacted_result 블록을 돌려주고, 클라이언트는 조언 본문을 읽을 수 없다.
대화 중간에 도구 Schema를 바꾸려면, inline-tools-2026-09-15가 중간 system 메시지에 전체 정의를 실을 수 있다. 최상위 tools 배열은 건드리지 않는다. thinking 블록이 접두에 묶이는 것과 한 세트다: 이력은 추가만 하라. compaction(compact-2026-09-04)은 thinking을 유효하게 둔 채 서명된 요약 블록을 갈아끼울 수 있다. 조건은 Anthropic Compaction 페이지.
모델 문자열을 바꾸기 전에 확인할 다섯 가지
thinking을 검색하라.disabled와budget_tokens를 지워라. 선행 thinking을 끄려면between_tools를 보내고, effort는high이하로. JSON 추론 과제는 adaptive thinking을 써라.tool_choice를 검색하라.any/ 지목tool은 모두auto로 바꿔라.strict를 켜고input_schema를 조여라.temperature/top_p/top_k를 검색하라. 기본이 아닌 값은 지워라. JSON 안정은 Schema로, 샘플링으로 하지 마라.effort를 명시하라. 기본 high를 물려받지 마라. Opus 5.5와 라우팅을 같이 쓰면 기본값이 둘이다.- 회수와 캐시. 8월 31일 이후 계정은 이력의 tools / system을 고치지 마라. Opus 5.5에서 오면 thinking 블록이 버려질 각오를 하라.
로컬 JSON 도구로 Schema를 보라
모델 ID를 claude-sonnet-5-5로 바꾸기 전에, 브라우저에서 텍스트 세 장을 펼쳐라: 옛 input_schema, 예전에 disabled나 강제 tool_choice로 뽑은 arguments 한 장, Structured Output에 올릴 Schema.
- JSON 검증기 — 문법이 적법한가; Schema가 있으면 필수와 여분 키를 같이 검사하라.
- JSON 포맷터 — 한 줄로 눌린 도구 정의를 펼쳐,
additionalProperties가 적혀 있는지 보라. - JSON Diff — 「thinking을 끈 샘플」과 「strict Schema가 허용하는 최소 객체」를 비교하라.
데이터는 브라우저를 떠나지 않는다. 계약이 안정되면, 그때 모델 문자열을 바꿔라. 5.5는 effort를 바꾸고, disabled와 옛 tool_choice를 거절한다. 필드 이름과 required는 같이 느슨해지면 안 된다.
FAQ
model만 claude-sonnet-5-5로 바꿔서 올릴 수 있나?
기본값으로 쓰면 안 된다. 요청에 아직 thinking.disabled, budget_tokens, tool_choice의 any/tool, 기본이 아닌 온도, 또는 Claude API의 computer_20251124가 있으면 400이다.
between_tools가 새로운 disabled인가?
도구가 없는 요청에서만 그렇게 보인다. 도구가 있으면 진행은 여전히 thinking 블록으로 온다. display / budget_tokens / 대화 중간 effort 변경을 거절하고, xhigh나 max와 짝을 맞출 수 없다. JSON 추론 과제에는 쓰지 마라.
가격표가 안 움직였는데 청구서는 왜 움직이나?
기본 effort는 high이고, 단이 다시 맞춰졌다. 공식 30% 절약은 과제당 token이지, 표 가격이 아니다. 과제가 출력을 제한하지 않으면, 독립 평가는 더 비싼 청구서를 봤다. 같은 Schema로 직접 돌려라.
9월 22일의 Opus 5.5와 같은 일인가?
강제 도구, thinking 블록 바인딩, 옛 컴퓨터 도구는 뿌리가 같다. Sonnet 5.5가 더하는 것은 disabled→between_tools, 기본 effort high, 잠긴 샘플링, advisor 짝짓기, 그리고 「도구 없는 JSON에서는 thinking을 끄지 마라」다. 두 라인은 따로 옮겨라.
Structured Output 없이 JSON을 어떻게 모으나?
text 블록만 읽고, 마지막 완전한 JSON 값을 파싱하라. 답 전체를 파싱하지 마라. stop_reason이 max_tokens면 재시도하라. 폴백이다. 될 수 있으면 Schema를 써라.
Haiku 5.5는 나왔나?
2026년 9월 29일 기준, 공식은 아직 「앞으로 몇 주」다. 아직 나오지 않은 단에 이 breaking change를 미리 얹지 마라.
요약
Sonnet 5.5는 가격표를 붙잡아 두고, disabled를 400으로 거둬들였다.Sonnet 5 요청을 베끼면 thinking, tool_choice, 온도에서 하드 실패한다. 선행 thinking을 끄려면 between_tools를 보내라. 안정 JSON은 adaptive thinking + Structured Output, 또는 auto + strict + JSON Schema. 도구 없는 추론 과제에서 thinking을 끄면, 공식은 이미 정확도가 떨어진다고 쟀다.
먼저 로컬 검증 도구에서 Schema, 샘플 arguments, strict 계약을 평평하게 보고, 그다음 claude-sonnet-5-5로 바꿔라. 표 가격은 그대로일 수 있다. 필드 계약은 같이 느슨해지면 안 된다.