Claude Sonnet 5.5
Claude Sonnet 5.5 Messages API 참조 문서입니다. 공식 파라미터, 적응형 사고와 도구 호출 사이의 사고, 프롬프트 캐시 사용량, 응답 필드, 실측한 호환성 제한을 설명합니다.
Anthropic Messages 형식으로 claude-sonnet-5-5를 호출합니다. 이 문서는 공식 요청 규격과 호환성 테스트에서 관찰한 동작을 구분합니다. 일부 고급 옵션은 아직 규격대로 작동하지 않으므로, 사용하기 전에 제한 사항을 확인해야 합니다.
현재 입력, 출력 및 캐시 요금은 모델 페이지에서 확인할 수 있습니다.
빠른 시작
curl https://api.seedrouter.ai/v1/messages \
-H "x-api-key: $SEEDROUTER_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Explain how a rainbow forms in three sentences."}]
}'POST /v1/messages는 x-api-key 또는 Bearer 인증과 anthropic-version: 2023-06-01을 사용합니다. 공식 문서에서 beta 헤더를 요구하는 기능에는 anthropic-beta를 전송합니다. 인증 정보는 서버 측 코드에서 관리해야 합니다.
이 모델은 기본적인 OpenAI Chat Completions(POST /v1/chat/completions) 및 Responses(POST /v1/responses) 요청도 받습니다. 아래의 네이티브 파라미터를 사용하려면 Messages 형식을 사용합니다. OpenAI 형식 변환이 Anthropic의 모든 기능을 제공하는 것은 아닙니다.
공식 파라미터 규격
Sonnet 5.5의 컨텍스트 윈도우는 1M 토큰이며, 동기 요청의 출력 한도는 128000 토큰입니다. Batch 전용 출력 한도는 이 엔드포인트에 적용되지 않습니다. 표에 명시된 경우를 제외하면 애플리케이션은 선택적 속성의 기본값을 지정하지 않습니다.
| 파라미터 | 타입 / 필수 여부 | 공식 제약 조건 및 기본값 |
|---|---|---|
model | string, 필수 | claude-sonnet-5-5입니다. |
max_tokens | integer, 필수 | 0–128000이며 사고 토큰을 포함합니다. 공식 규격에서 0은 출력을 생성하지 않고 프롬프트 캐시를 채웁니다. 현재 제한 사항은 아래에서 설명합니다. |
messages | object 배열, 필수 | 대화 메시지는 최소 한 개, 최대 100000개입니다. 각 메시지는 role과 content를 포함하며, content는 문자열 또는 콘텐츠 블록 배열입니다. 일반 대화 턴은 user/assistant를 사용합니다. 대화 중간의 system 메시지는 공식 배치 규칙을 따라야 합니다. |
system | string 또는 텍스트 블록 배열 | 최상위 지시 사항입니다. 텍스트 블록에 캐시 중단점을 포함할 수 있습니다. |
thinking | object | 기본값은 {"type":"adaptive"}입니다. 지원하는 다른 모드는 {"type":"between_tools"}입니다. 수동 사고 예산과 disabled는 거부됩니다. |
thinking.display | enum | 적응형 모드에서만 사용합니다. omitted(기본값) 또는 summarized입니다. 요약이 생략되어도 사고가 비활성화된 것은 아닙니다. |
thinking.block_binding | object, beta | 적응형 모드에서만 사용합니다. thinking-binding-controls-2026-08-01이 필요하며, 공식 사고 보존 규격을 따라야 합니다. |
output_config.effort | enum 또는 null | low, medium, high, xhigh, max이며 기본값은 high입니다. Null은 기본 동작을 유지합니다. |
output_config.format | object 또는 null | 구조화된 JSON 출력입니다. {"type":"json_schema","schema":{...}}를 지정하며, 지원되는 JSON Schema 하위 집합을 사용합니다. |
stream | boolean | 기본값은 false이며, true는 SSE 이벤트를 반환합니다. |
stop_sequences | string 배열 | 공식 규격에서는 일치하는 문자열에서 생성을 중단합니다. 현재 호환성 테스트에서는 이 동작이 적용되지 않았습니다. |
temperature | number 또는 null | 호환성을 위해 1만 허용하므로 생략해야 합니다. null이 아닌 다른 값은 거부됩니다. |
top_p | number 또는 null | 호환성을 위해 0.99–1만 허용하므로 생략해야 합니다. |
top_k | null이 아닌 값은 허용하지 않음 | 샘플링 설정을 지원하지 않으므로 이 속성을 생략해야 합니다. |
tools | object 배열 | 클라이언트 도구에는 name, input_schema와 선택적인 설명 및 엄격 모드 설정이 있습니다. 서버 도구는 버전이 지정된 공식 정의를 사용합니다. |
tool_choice | object | auto(기본값) 또는 none입니다. any와 이름을 지정해 강제하는 tool은 거부됩니다. auto에는 disable_parallel_tool_use를 포함할 수 있습니다. |
metadata.user_id | string 또는 null | 최대 512자이며, 불투명한 식별자를 사용해야 합니다. |
cache_control | object 또는 null | type: "ephemeral"과 ttl: "5m"(기본값) 또는 "1h"를 지정합니다. Sonnet 5.5에는 최소 512개의 캐시 가능한 토큰이 필요합니다. 공식 API는 블록 수준의 캐시 중단점도 지원합니다. |
diagnostics | object 또는 null | previous_message_id는 최대 256자의 문자열 또는 null입니다. 캐시 불일치 진단을 요청합니다. |
service_tier | enum | auto(기본값) 또는 standard_only입니다. |
speed | enum 또는 null | 생략하거나 standard / null을 사용합니다. Sonnet 5.5는 fast를 지원하지 않습니다. |
inference_geo | string 또는 null | 공식 기본값은 계정 설정에서 가져옵니다. 요청이 수락되었다는 사실만으로 지정 지역에서 처리되었음을 확인할 수는 없습니다. |
fallbacks | string, object 배열 또는 null, beta | "default" 또는 최대 세 개의 폴백 항목입니다. 각 항목에는 model이 필요하며, 선택적으로 재정의할 수 있는 값은 max_tokens, thinking, output_config, speed입니다. 아래의 폴백 규칙을 참조합니다. |
fallback_credit_token | string, object 또는 null | 이전 거부 응답에서 받은 토큰 또는 {"token":"...","mode":"strict"}입니다. 객체 형식에는 fallback-credit-2026-07-01이 필요하며, mode는 strict(기본값) 또는 best_effort입니다. null이 아닌 fallbacks 값과 함께 사용할 수 없습니다. |
container | string, object 또는 null | 컨테이너 ID 또는 선택적인 id와 skills(최대 20개)를 포함하는 컨테이너 설정입니다. Skills는 공식 타입, 식별자 및 버전 필드를 사용합니다. |
context_management | object 또는 null | edits를 포함하는 공식 컨텍스트 편집 설정이며, null은 설정을 생략합니다. 모델별 편집 호환성 조건은 그대로 적용됩니다. |
mcp_servers | object 배열 | 공식 MCP 서버 정의이며, 필요한 beta 버전과 서버 인증 요건을 충족해야 합니다. 빈 배열을 사용한 테스트로는 원격 MCP 실행을 검증할 수 없습니다. |
compaction | object 또는 null, beta | {"type":"summarize"}를 compact-2026-09-04와 함께 사용하며, null은 압축을 생략합니다. 압축을 활성화하면 null이 아닌 context_management, 중단 시퀀스 또는 구조화된 출력 형식과 함께 사용할 수 없습니다. 서명된 압축 동작은 현재 테스트를 통과하지 못했습니다. |
messages[].output_config.effort | enum, beta | system 메시지에서 메시지별 노력 수준을 설정하며, mid-conversation-output-config-2026-07-01이 필요합니다. 노력 수준만 지정한 system 메시지는 어느 위치에나 올 수 있습니다. 본문을 포함하는 system 메시지 그룹은 공식 배치 규칙을 따라야 합니다. between_tools 모드에서는 이 설정으로 노력 수준을 바꿀 수 없습니다. |
between_tools는 자체 type 속성만 허용하며, 노력 수준은 low, medium, high만 허용합니다. display, budget_tokens, block_binding을 함께 보내면 안 됩니다. 예제는 다음과 같습니다.
{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"thinking": {"type": "between_tools"},
"output_config": {"effort": "medium"},
"messages": [{"role": "user", "content": "Explain this concept briefly."}]
}assistant 사전 채우기는 지원하지 않습니다. pause_turn을 이어가려면 반환된 서버 도구의 assistant 콘텐츠를 변경 없이 다시 전송해야 합니다. 압축은 기존 기록을 요약하는 동작이며 assistant 사전 채우기가 아닙니다. 사고 블록과 서명은 정확히 보존해야 합니다. 공식 바인딩 규칙을 따르지 않은 채 모델 간에 옮기거나 이전 기록을 편집해서는 안 됩니다.
네이티브 Claude API에서 컴퓨터 사용 기능에는 computer_toolset_20260801이 필요하며, computer_20251124는 거부됩니다. 이 실행 모델은 claude-opus-4-8, claude-opus-4-7, claude-sonnet-5를 사용하는 Advisor 설정도 거부합니다.
폴백 요청 필드
공식 fallbacks beta는 자격 요건에 맞는 분류기 거부에 대해 재시도합니다. 요청 속도 제한, 과부하 또는 서버 오류에는 재시도하지 않으며, 재시도 후에도 거부가 해소되지 않을 수 있습니다. server-side-fallback-2026-07-01을 보내면 "default" 또는 명시적 목록을 사용할 수 있습니다. server-side-fallback-2026-06-01은 목록만 지원합니다. 다른 날짜 버전은 거부됩니다.
명시적 목록에는 서로 다른 모델을 최대 세 개까지 지정할 수 있으며, 모두 요청 모델과 달라야 합니다. 허용되는 대상 모델은 beta Models API의 allowed_fallback_models에서 가져옵니다. 항목마다 허용되는 필드는 model, max_tokens, thinking, output_config, speed뿐이며, 재정의한 값은 해당 대상 모델에서 유효해야 합니다. 해당 폴백이 발생하면 칠월 beta는 Sonnet 5.5의 between_tools를 Sonnet 5의 disabled로 변환하고 display를 생략합니다. 유월 beta에서는 Sonnet 5의 사고 설정 재정의를 직접 제공해야 합니다.
fallback_credit_token은 거부 후 별도로 수행하는 재시도에 사용합니다. 문자열 형식은 엄격한 크레딧 적용을 선택하며, 객체 형식은 mode를 추가할 수 있습니다. strict 모드에서는 크레딧 적용에 실패하면 재시도가 거부됩니다. best_effort 모드에서는 토큰 처리 계층에서 실패하더라도 정상 요금으로 진행할 수 있으며, 해당 내용은 usage.fallback_credit에 기록됩니다. 다만 잘못된 형식의 토큰이나 크레딧과 fallbacks의 동시 사용은 여전히 실패합니다. 크레딧 적용에는 공식 크레딧 가이드에 설명된 요청 자격, 계정, 워크스페이스, 플랫폼 및 오 분의 유효기간 조건도 적용됩니다.
유해하지 않은 요청에 fallbacks: "default", 칠월 beta 헤더 및 speed: "standard"를 지정했을 때 예상한 텍스트가 반환되었습니다. 이는 요청 수락만 확인한 결과입니다. 폴백 실행과 크레딧 적용은 여기서 종단 간 검증을 완료하지 않았습니다.
미디어 및 도구 입력
이미지는 사용자 메시지의 image 블록을 사용하고, PDF는 document 블록을 사용합니다. 공식 소스 타입에는 공개 URL과 해당 MIME 타입이 지정된 base64가 포함됩니다. 호환성 검사에는 base64 PNG와 한 페이지의 base64 PDF를 사용했으며, 답변 내용도 확인했습니다. 모든 URL, 파일 크기, 이미지 해상도 또는 PDF 페이지 수의 경계 조건을 테스트한 것은 아닙니다.
클라이언트 측 도구는 표준 tool_use → tool_result 교환 방식을 사용합니다. 도구 사용 ID를 그대로 유지하고 사용자 메시지로 결과를 반환해야 합니다. 엄격 모드 도구 예제의 성공은 해당 예제의 인수만 검증하며, 지원되는 모든 JSON Schema 키워드를 검증하지는 않습니다.
응답
비스트리밍 응답에는 id, type: "message", role: "assistant", model, content, stop_reason, stop_sequence, usage가 포함됩니다. 그 밖에 container, diagnostics, context_management, stop_details 및 beta 응답 필드와 같은 선택적 공식 필드가 포함될 수 있습니다. 콘텐츠에는 텍스트, 사고, 도구 호출, 도구 결과 또는 기타 공식 블록 타입이 들어갈 수 있으므로, 첫 번째 블록이 텍스트라고 가정하면 안 됩니다.
스트리밍에서는 message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop을 처리해야 합니다. 스트림 안에서도 오류가 발생할 수 있습니다. 사용량에는 일반 입력/출력 토큰, 사고 토큰 세부 정보, 캐시 읽기, 각각 집계되는 5분 / 1시간 캐시 생성 토큰 수가 포함될 수 있습니다.
공식 분류기 거부는 HTTP 오류가 아니라 stop_reason: "refusal"과 stop_details가 포함된 정상 응답입니다. 폴백 응답에서는 model이 실제 응답한 모델을 나타내고, fallback 콘텐츠 블록이 전환을 표시하며, usage.iterations가 각 시도를 설명합니다. 요청한 모델이 응답했다고 가정하지 말고 이 필드들을 확인해야 합니다. 이러한 응답 동작은 여기서 아직 검증하지 않았습니다.
Messages 오류는 {"type":"error","error":{"type":"...","message":"..."}} 형식을 사용합니다. 실패한 요청에는 요금이 부과되지 않습니다.
호환성 검증: 2026-10-01
| 결과 | 확인한 동작 |
|---|---|
| 작동 확인 | 기본 텍스트, 일반적인 다중 턴 대화의 이전 내용 회상, 충돌하지 않는 문자열/블록 형식의 시스템 지시, 스트리밍, 적응형 및 도구 호출 사이의 사고 요청, JSON 출력, auto/none 도구, 엄격 모드 도구 호출 한 사례, 도구 결과 재전송, base64 이미지/PDF 입력, 5m/1h 캐시 쓰기/읽기 사용량을 확인했습니다. |
| 모델 규격에 따라 거부 | 잘못된 출력 토큰 예산, 제거된 샘플링 설정, 수동/비활성화 사고, 잘못된 between-tools 조합, 강제 도구 호출, assistant 사전 채우기, 이전 버전 컴퓨터 도구, 너무 긴 metadata ID가 거부되었습니다. |
| 수락되었지만 효과는 미확인 | 다섯 단계의 노력 수준 전체, 사고 요약, 바인딩 설정, metadata, 서비스 티어, 지역 선택, 진단, 빈 컨텍스트 편집 목록, null 컨테이너, 빈 MCP 목록 및 컴퓨터 도구 세트 선언에 대한 요청 수락을 확인했습니다. 도구 세트 선언이 수락되었다고 해서 컴퓨터 사용에 성공한 것은 아닙니다. |
| 알려진 불일치 | max_tokens: 0은 400을 반환했습니다. 중단 시퀀스 요청은 중단 문자열과 그 뒤의 텍스트를 반환했습니다. 온디맨드 압축은 서명된 압축 블록이 아닌 일반 텍스트를 반환했습니다. |
| 추가 조사가 필요한 동작 | 메시지별 노력 수준을 지정한 요청에서 이전 값을 회상하지 못했습니다. 시스템/사용자 지시가 충돌하는 테스트에서는 사용자 지시를 따랐습니다. 이 결과만으로 모든 시스템 프롬프트나 다중 턴 요청이 실패한다고 판단할 수는 없습니다. |
Beta 도구 실행, 실제 MCP 연결, Files API 참조, 지리적 데이터 레지던시, 사고 서명 재전송, 전체 컨텍스트/출력 상한, 미디어 경계 조건 및 거부/폴백 동작은 종단 간 검증을 완료하지 않았습니다. HTTP 200과 반환된 모델 이름만으로는 실제로 어떤 모델이 실행되었는지 인증할 수 없으며, 전달한 모든 옵션이 적용되었다고 증명할 수도 없습니다.
