결론부터: Opus 5.5는 모델 문자열만 바꾸면 끝나는 일이 아니다.2026년 9월 22일, Anthropic이 Claude Opus 5.5(claude-opus-5-5)를 냈다. 가격표는 보기 좋다: 입력 / 출력 $4 / $20, Opus 5보다 20% 낮다; 캐시 읽기 $0.20, 60% 내렸다. 공식은 전형 워크로드가 대략 40% 싸다고 한다. 같은 날 OpenAI는 GPT-6 Sol과 Luna를 대략 반값으로 잘랐다. 생산을 깨는 것은 네 곳의 하드 실패다: thinking을 끌 수 없다; tool_choice의 any / tool은 400을 낸다; thinking 블록은 모델과 대화에 묶인다; Claude API와 Google Cloud는 computer_20251124를 거절한다. 강제 도구 호출로 JSON 객체를 보장하던 파이프라인은 이제 auto + strict: true와 JSON Schema로 가야 한다 — 또는 Structured Output.
이 글은 2026년 9월 24일 기준. Anthropic이 그날에도 유효한 모델 페이지와 「What's new」를 따른다. 본 사이트는 이미 《Tool Calling은 왜 JSON Schema에 의존하는가》《Structured Output이란 무엇인가》《Agents API 이후 왜 JSON이 더 필요한가》를 다뤘다. 이 글은 5.5로 옮긴 뒤 JSON 계약의 어느 층을 바꿔야 하는지만 답한다.
9월 22일에 나온 것
Claude Opus 5.5는 Claude 5.5 가족의 첫 모델이다. 공식 포지션: 장시간 Agent 코딩과 지식 작업. 모델 ID는 Claude API, Google Cloud, Microsoft Foundry에서 claude-opus-5-5; Bedrock은 anthropic.claude-opus-5-5. 지원 종료는 2027년 9월 22일보다 이르지 않다. Sonnet 5.5와 Haiku 5.5는 「앞으로 몇 주」에 온다.
가격(백만 token당): 입력 $4, 출력 $20, 5분 캐시 쓰기 $5, 1시간 캐시 쓰기 $8, 캐시 읽기 $0.20. 배치는 반값. Fast mode는 Claude API만: speed: "fast"에 fast-mode-2026-02-01, 입력 / 출력 $8 / $40, 공식은 최대 약 2.5배 속도. 기본 effort는 medium — Opus 5 기본은 high. effort를 빼면 행동이 바뀐다. 조용히 호환되는 것이 아니다.
발표 표는 Terminal-Bench 4.0을 66.4%로 적는다(GPT-6 Astra의 57.9% 대비). Anthropic 스스로도 말한다: 이 능력대에서는 점수 차가 실제 과제보다 약하다; Fable 5.1과의 체감 차는 표보다 좁다. 이 글은 리더보드로 모델을 고르지 않는다.
네 곳의 하드 실패, 표 한 장
문서는 「5.5로 바꾸면 400」이 되는 요청을 분명히 적는다. 앞 세 줄은 Fable 5.1에도 같다:
| 옛 요청 | 5.5에서 | 대신 보낼 것 |
|---|---|---|
thinking: {"type": "disabled"} 또는 enabled + budget_tokens | 400 invalid_request_error | thinking을 생략하거나 {"type": "adaptive"}를 보내라; 깊이는 effort로 |
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은 옛 도구를 계속 받는다 |
한 곳 더: 요청은 실패하지 않지만 조용해진다. 도구 호출 사이의 짧은 설명이 이제 thinking 블록으로 온다. 기본 display: "omitted"면 텍스트가 비다. 그 문장을 진행 표시로 스트리밍하던 UI는 갑자기 말이 없다. 진행이 필요하면 thinking.display를 설정하라.
tool_choice로 JSON을 더 이상 강제할 수 없는 이유
2024–2025의 흔한 패치는 이랬다: 「추출」 도구를 정의하고, tool_choice를 any로 두거나 그 도구를 지목하면, 모델은 input_schema에 맞는 객체를 낼 수밖에 없었다. 프로그램은 tool arguments를 읽고, 채팅 산문에 JSON.parse를 치지 않았다. 5.5에서 이 길은 바로 400이다:
tool_choice: type "tool" and "any" are not supported for this model.
공식 대체는 「JSON을 출력하라」를 다시 쓰는 것이 아니다. tool_choice는 auto로 두고, 도구에 strict: true를 켜고, JSON Schema로 파라미터를 고정하라. 최종 답이 고정 모양이어야 하면 Schema를 Structured Output에 올려라. 모델이 산문으로 답하지 않고 도구를 치게 하려면, 「언제 칠지」를 프롬프트에 적어라. 프롬프트는 auto가 어느 도구를 고를지에 영향을 준다. Schema를 대체하지 않는다.
그러니 5.5가 JSON을 덜 중요하게 만든 것이 아니다. 「강제 호출」이라는 지팡이를 치웠다. 지팡이가 빠지면 계약이 스스로 서야 한다. 《Tool Calling은 왜 JSON Schema에 의존하는가》를 보라.
auto + strict + JSON Schema
이전 뒤의 최소 모양은:
{
"model": "claude-opus-5-5",
"tool_choice": { "type": "auto" },
"tools": [
{
"name": "extract_order",
"description": "Extract a confirmed order. Call when the user has named a sku and a quantity.",
"strict": true,
"input_schema": {
"type": "object",
"properties": {
"sku": { "type": "string" },
"qty": { "type": "integer", "minimum": 1 }
},
"required": ["sku", "qty"],
"additionalProperties": false
}
}
]
}
strict: true는 디코드 단계에서 Schema로 파라미터를 받는다. 빠진 필드, 틀린 타입, 여분 키는 이 층에서 막혀야 한다 — 「강제 호출이면 객체를 내겠지」에 걸지 마라. 최종 답도 프로그램에 들어가면 Structured Output을 써라. assistant 문장을 파싱하지 마라. 《Structured Output이란 무엇인가》《JSON.parse가 실패하는 이유》를 보라.
대화 중간에 도구 Schema를 바꾸려면, 5.5는 inline-tools-2026-09-15로 중간 system 메시지에 전체 정의를 실을 수 있다. 요청 최상위 tools는 건드리지 않는다 — thinking 블록이 접두에 묶이는 것과 한 세트다: 이력은 추가만 하고, 이미 나간 계약 스냅샷은 고치지 마라.
Thinking은 꺼지지 않고, 회수도 고칠 수 없다
5.5에서 adaptive thinking은 항상 켜져 있다. disabled나 수동 budget_tokens는 400이다. 깊이, 지연, 비용은 effort로 간다: low / medium / high / xhigh / max. 예전에 thinking을 꺼서 token을 아끼던 곳은 effort를 내려라. 같은 effort에서 5.5는 Opus 5보다 턴마다 더 생각하는 편이다. 특히 xhigh와 max. max_tokens에 thinking 자리를 남겨라.
thinking 블록마다 어느 모델이 썼는지 적힌다. 5.5는 Opus 5와 더 이른 Opus / Sonnet / Haiku 블록을 읽을 수 있다. Fable / Mythos는 읽지 않는다. 반대: Claude API의 Fable 5.1과 Mythos 5.1은 5.5 블록을 읽을 수 있다; 다른 모델은 안 된다. 읽을 수 없는 블록은 모델에 가기 전에 인터페이스가 버린다. 요청은 여전히 200이다; 버린 블록은 청구하지 않는다. 이번에 무엇을 버렸는지 보려면 thinking-binding-controls-2026-08-01을 보내고, 최상위 input_transformations를 보라.
더 센 것은 접두 바인딩이다. 2026년 8월 31일 00:00 UTC 이후 개설 계정은, thinking 블록 앞의 system, tools, 더 이른 메시지가 바뀌었는지 기본으로 검사한다. 바꾸고 회수하면 400. Fable 5.1이 가져온 preserved thinking이다. 이력을 되돌아가 도구 Schema를 고쳐 「계약을 고친다」고 하지 마라 — 그 구간의 thinking이 무효가 된다. 새 도구는 중간 system 메시지로 더하라. 회수할 때 thinking 블록은 그대로 돌려보내라.
computer_20251124와 조용해진 진행 표시
Claude API와 Google Cloud에서 5.5는 computer_toolset_20260801만 받는다. computer-use-2025-11-24 베타 헤더와 옛 도구 타입을 그대로 두면 400. Bedrock은 computer_20251124를 계속 받는다. 브라우저 도구, 이미 toolset을 쓰는 연동은 바꿀 필요 없다. 루프 쪽은 멤버 tool_use 블록, 배치 동작, 결과의 toolset_name을 처리해야 한다.
도구 호출 사이의 짧은 문장은 더 이상 text 블록이 아니다. display를 생략하면 진행 스트림이 죽고, 오류도 없다. Schema 문제가 아니다. 블록을 type이 아니라 위치로 읽은 것이다. 먼저 타입으로 갈라라. 그다음 thinking.display를 켤지 정하라.
가격표 옆에 서 있는 Sol / Luna
같은 날 OpenAI는 GPT-6 Sol(gpt-6-sol, $2 / $10)과 GPT-6 Luna(gpt-6-luna, $0.10 / $0.50)를 냈다. GPT-5.6 동급의 대략 절반. Astra는 $10 / $50에 남는다. Luna의 공식 장면은 고트래픽, 목표가 분명한 추출과 요약 — JSON 파이프라인이 좋아하는 그 레인이다. 값이 싸다고 Schema를 느슨하게 해도 되는 것은 아니다.
선정은 표 가격만 보지 마라. Opus 5.5의 전형 40% 절약은 절반이 캐시와 「과제당 token이 더 적다」이지, 가격표의 20%가 아니다. 기본 effort가 high에서 medium으로 내려가면 청구서와 지연이 같이 움직인다. 라우팅을 바꾸기 전에 같은 Schema로 추출을 한 바퀴 돌려라. GPT-5.5는 계획대로 10월 14일에 ChatGPT / Work / Codex에서 빠진다(API는 이번 지원 종료 밖). 다른 제품 라인이다. 5.5의 breaking change와 「전부 업그레이드」 티켓 하나로 섞지 마라.
모델 문자열을 바꾸기 전에 확인할 네 가지
tool_choice를 검색하라.any/ 지목tool은 모두auto로 바꿔라. 안정 JSON이 필요하면strict를 켜고input_schema를 조여라.thinking을 검색하라.disabled와budget_tokens를 지워라.effort를 명시하라. 블록은type으로 읽어라. thinking은 그대로 회수하라.computer_20251124를 검색하라. Claude API / Google Cloud는 toolset으로 바꿔라. Bedrock은 잠시 둬도 된다.- 회수와 캐시. 8월 31일 이후 계정은 이력의 tools / system을 고치지 마라. 중간 Schema 변경은 추가 메시지로. compaction(
compact-2026-09-04)은 thinking을 유효하게 둔 채 요약 블록을 갈아끼울 수 있다. 조건은 공식 Compaction 페이지.
로컬 JSON 도구로 Schema를 보라
모델 ID를 claude-opus-5-5로 바꾸기 전에, 브라우저에서 텍스트 세 장을 펼쳐라: 옛 input_schema, 예전에 tool_choice로 억지로 뽑은 arguments 한 장, strict로 바꿀 그 Schema.
- JSON 검증기 — 문법이 적법한가; Schema가 있으면 필수와 여분 키를 같이 검사하라.
- JSON 포맷터 — 한 줄로 눌린 도구 정의를 펼쳐,
additionalProperties가 적혀 있는지 보라. - JSON Diff — 「강제 호출 때의 샘플」과 「strict Schema가 허용하는 최소 객체」를 비교하라.
데이터는 브라우저를 떠나지 않는다. 계약이 안정되면, 그때 모델 문자열을 바꿔라. 5.5는 effort를 바꾸고, 더 생각하고, 옛 tool_choice를 거절한다. 필드 이름과 required는 같이 느슨해지면 안 된다.
FAQ
model만 claude-opus-5-5로 바꿔서 올릴 수 있나?
기본값으로 쓰면 안 된다. 요청에 아직 thinking.disabled, budget_tokens, tool_choice의 any/tool, 또는 Claude API의 computer_20251124가 있으면 400이다.
강제 도구 없이 JSON을 어떻게 보장하나?
tool_choice는 auto, 도구에 strict를 켜고, required를 채우고 additionalProperties를 꺼라. 최종 답은 Structured Output. 채팅 본문을 JSON.parse하지 마라.
thinking을 끌 수 없으면 청구서가 반드시 더 비싸나?
반드시 그렇지는 않다. 가격표는 더 낮고, 캐시 읽기는 더 싸며, 공식은 전형 부하에서 대략 40% 절약을 말한다. 기본 effort는 medium. 깊이는 effort로 바꿔라. disabled로 청구서를 바꾸지 마라.
Fable 5.1도 같이 고쳐야 하나?
thinking 상시, 강제 도구 금지, thinking 블록 바인딩은 Fable 5.1에 이미 있다. computer_20251124 이 줄은 주로 Claude API / Google Cloud의 5.5를 친다. Bedrock은 옛 컴퓨터 도구를 계속 받는다.
진행 표시가 갑자기 왜 없나?
도구 사이의 짧은 문장이 thinking 블록으로 옮겼고, 기본 display는 텍스트를 생략한다. 블록은 type으로 읽고, 진행이 필요하면 thinking.display를 설정하라. Schema 검증 실패가 아니다.
10월 14일 GPT-5.5 지원 종료와 같은 일인가?
아니다. GPT-5.5가 빠지는 것은 ChatGPT / Work / Codex다. API는 그 지원 종료 밖. Opus 5.5는 다른 벤더의 새 모델 더하기 breaking change다. 두 라인은 따로 옮겨라.
요약
Opus 5.5는 「강제 도구 호출」을 합법 지팡이에서 400으로 거둬들였다.가격표와 전형 40% 절약은 네 곳의 하드 실패를 덮지 못한다. 안정 JSON이 필요하면 auto + strict + JSON Schema, 또는 Structured Output. thinking은 항상 켜지고, 블록은 대화에 묶이며, 옛 컴퓨터 도구는 일부 플랫폼에서 죽는다 — 문자열을 바꾸기 전의 체크리스트이지, 올린 뒤의 관찰이 아니다.
먼저 로컬 검증 도구에서 Schema, 샘플 arguments, strict 계약을 평평하게 보고, 그다음 claude-opus-5-5로 바꿔라. 모델은 바뀐다. effort는 움직인다. 필드 계약은 같이 느슨해지면 안 된다.