Claude Haiku 5.5 마이그레이션 시 400 에러 대책 및 Managed Agents 동적 워크플로우
요약
Anthropic의 Claude Haiku 5.5 업데이트와 Managed Agents에 '동적 워크플로우' 기능이 추가되었습니다. 특히, Haiku 4.5 코드를 모델명만 변경하여 사용하면 `temperature`, `top_p` 등 여러 파라미터 지정 및 프리필 과정에서 400 에러가 발생할 수 있어 코드 수정이 필수입니다.
핵심 포인트
- Haiku 5.5 마이그레이션 시, 기존 코드는 400 에러 위험 높음.
- 파라미터(temperature, top_p 등) 지정 및 프리필은 피해야 함.
- 출력 형식 제어는 프롬프트 지시로 변경하는 것이 안전함.
- Managed Agents에 동적 워크플로우 기능이 추가됨 (베타).
Anthropic에서 두 가지 주요 업데이트가 있었습니다.
Claude Managed Agents에 '동적 워크플로우'(베타)가 추가되었습니다. 에이전트가 스스로 워크플로우를 작성하고 실행할 수 있습니다. -
Claude Haiku 5.5로 마이그레이션 시 주의사항이 크게 늘어났습니다. Haiku 4.5용으로 작성된 코드를 모델 이름만 교체하여 사용하면, 400 에러가 발생하여 작동하지 않을 가능성이 있습니다.
특히 2번은 Critical합니다. 이전까지 명시되었던 주의사항은 '수동 확장 사고 (budget_tokens)'가 400 에러가 되는 것뿐이었습니다. 이번에는 다음 항목들이 추가되었습니다.
- 샘플링 파라미터 (
temperature/top_p/top_k) - 어시스턴트 메시지의 프리필 (prefill)
- Computer Use 툴 (
computer_20250124) - thinking 블록을 반환할 때의 제약
- Amazon Bedrock에서의 구조화 출력 제한
- 사고(thinking) 텍스트가 기본적으로 생략되는 동작
📌 영향을 받는 사람
- Haiku 4.5를 사용하고 있으며, Haiku 5.5로 전환을 고려하는 사람
temperature고정 또는 프리필로 출력을 제어하는 사람 - Computer Use를 멀티클라우드 환경에서 운영하는 사람
- Bedrock을 통해 구조화 출력을 사용하는 사람
- 수백 건 규모의 문서 검토 등, 대량의 세부 작업을 에이전트에게 맡기고 싶은 사람
| ID | 유형 | 중요도 | 내용 | 대응 필수 |
|---|---|---|---|---|
| change-001 | 신기능 | high | Managed Agents의 동적 워크플로우 (베타) | 불필요 |
| ... | computer_20250124가 400 에러 발생 | 필요 | ||
| change-004 | 파괴적 변경 | critical | thinking 블록 반환 시 제약 | 필수 |
| change-005 | 파괴적 변경 | high | Bedrock에서 구조화 출력이 사용 불가 | 필수 |
| change-006 | 파괴적 변경 | high | 사고 텍스트가 기본적으로 생략됨 | 필수 |
⚠️ Breaking Change
Haiku 4.5용으로 작성된 코드는 모델을 Haiku 5.5로 전환하면 작동하지 않을 수 있습니다. 다음 중 하나라도 해당되는 경우, 전환 전에 반드시 수정해야 합니다.
temperature
top_ptop_k의 지정과 어시스턴트 메시지의 프리필은 각각 400 에러가 발생할 가능성이 있습니다. 기존의budget_tokens와 함께, Haiku 5.5에서는 다음 5가지 사용을 피하는 것이 안전합니다.
thinking.budget_tokens
temperature
top_p
top_k
- 어시스턴트 메시지의 프리필
'JSON의 {부터 프리필하여 형식을 강제하는', 'temperature: 0으로 출력을 안정화시키는' 등의 구현은 전형적인 영향 대상입니다. 출력 형식 제어는 프롬프트 측의 지시로 옮겨야 합니다.
computer_20250124는 Haiku 5.5에서 400 에러를 반환합니다. 대신 사용할 툴은 제공처에 따라 다릅니다.
| 제공처 | 사용하는 툴 |
|---|---|
| Claude API | computer_toolset_20260801 |
| ... | computer_20250124는 400 에러 |
멀티클라우드 환경에서 구현하는 경우, 제공처별 분기 처리가 필요합니다.
다중 턴 대화나 에이전트 루프에서는 이전 응답의 thinking 블록을 다음 요청에 포함시키는 경우가 있습니다. 이때 system, tools, 과거 턴 중 어느 것을 수정하면 400 에러로 거부될 가능성이 있습니다.
대화 도중에 system 프롬프트나 툴 정의를 동적으로 교체하는 구현은 재검토가 필요합니다. 예를 들어 다음과 같은 구현이 있습니다.
- 턴마다 툴 목록을 줄이는 것
- 상황에 따라 system 프롬프트를 수정하는 것
- 과거 턴을 요약이나 압축으로 대체하는 것
Amazon Bedrock 상의 Haiku 5.5에서는 구조화 출력 (structured outputs)을 사용할 수 없습니다. 구조화 출력을 기반으로 구현된 방식은 그대로 작동하지 않습니다. 데이터에서 파악할 수 있는 대응책은 다음 두 가지입니다.
- 프롬프트로 출력 형식을 지정하여 파싱하기
- 제공처 변경 고려하기
Haiku 5.5에서는 적응형 사고(adaptive thinking)가 기본적으로 활성화되어 있습니다. 따라서 응답이 thinking 블록으로 시작하는 경우가 있습니다. 다만, 블록의 본문은 thinking.display를 "summarized"로 설정하지 않는 한 생략됩니다.
사고 내용을 로그에 남기거나 UI에 표시하도록 구현한 경우, 설정을 추가해야 합니다. 또한, 같은 텍스트라도 소비되는 토큰 수가 많아질 수 있다는 점은 계속 주의가 필요합니다.
에이전트가 워크플로우를 직접 작성하고 실행할 수 있게 되었습니다. 워크플로우란 여러 에이전트를 단계별로 구동하여 그 결과를 종합하는 프로그램입니다.
적합한 작업은 수백 건의 문서 리뷰처럼, 세밀한 작업이 대량으로 존재하는 경우입니다. 에이전트가 작성한 워크플로우는 서버 측에서 백그라운드 "workflow run"으로 실행됩니다.
활성화에 필요한 것은 다음 세 가지입니다.
| 항목 | 내용 |
|---|---|
| 베타 헤더 | managed-agents-2026-04-01 |
| 에이전트 설정 | multiagent 필드에 {"type": "multiagent_20261001", "workflows": {"type": "enabled"}} |
| 시작 시점 | 에이전트의 시스템 프롬프트로 지시하기 |
진행 상황은 세션의 이벤트 스트림에 흐르는 workflow_run.* 이벤트를 통해 추적할 수 있습니다. 자세한 내용은 공식 문서의 "Workflow runs"를 참조해 주십시오.
temperature
/top_p
/top_k 지정 삭제 - 어시스턴트 메시지의 프리필(prefill)을 중단하고, 프롬프트에서의 형식 지시로 대체함
thinking.budget_tokens미사용 - Computer Use 툴 제공처를 변경에 맞게 전환함- thinking 블록 반환 경로에서 system・tools・과거 턴 수정하지 않음
- Bedrock 사용 시, 구조화 출력 의존성 제거
- 사고 텍스트 표시/저장 위치에
thinking.display: "summarized"설정 - 사고로 인한 토큰 소비 증가를 비용 산정에 반영함
💡 Tips
변경 사항별 대응은 공식 마이그레이션 가이드에 정리되어 있습니다. 바로 프로덕션 환경으로 전환하기보다는, 먼저 400 에러가 발생하는 부분을 스테이징 환경에서 파악하는 것이 좋습니다.
- 베타 기능이므로, 작은 배치 처리부터 시도하기
- 시작 시점은 시스템 프롬프트로 명확하게 지시하기
workflow_run.*이벤트를 모니터링하는 시스템을 먼저 준비하기
팀에서 CLAUDE.md를 운영하고 있다면, 다음 내용을 추가하여 사고를 방지할 수 있습니다.
- Haiku 5.5에서는
budget_tokens,temperature,top_p,top_k사용하지 않기 - Haiku 5.5의 Computer Use 툴 대응표 - thinking 반환 시 system・tools・과거 턴 변경하지 않기
- Bedrock 상의 Haiku 5.5에서는 구조화 출력이 사용 불가
- 적응형 사고가 기본적으로 활성화되어 있어, 본문 표시를 위해서는
thinking.display: "summarized"필요 - 동적 워크플로우 활성화 방법 (managed-agents-2026-04-01베타 헤더,multiagent설정)
# Before (Haiku 4.5용): Haiku 5.5에서는 400 에러가 발생할 수 있음
response = client.messages.create(
model="claude-haiku-4-5",
...
Haiku 5.5용 변경 사항: 샘플링 지정과 프리필을 제거하고, 형식은 프롬프트로 지시합니다.
response = client.messages.create(model="claude-haiku-5-5", ...)
thinking의 본문을 받고 싶다면 display를 지정합니다.
thinking={"display": "summarized"}
thinking
다른 필드는 사용 중인 기존 설정에 맞게 조정해 주세요. 여기서는 display 지정만 보여드립니다.
Haiku 5.5용 Computer Use 도구 이름 (computer_20250124는 400 에러)
COMPUTER_TOOL_BY_PROVIDER = {
"claude_api": "computer_toolset_20260801",
...
}
{
"multiagent": {
"type": "multiagent_20261001",
...
}
}
요청에는 베타 헤더 managed-agents-2026-04-01가 필요합니다.
Haiku 5.5로의 전환은 모델명만 바꾸는 것만으로는 충분하지 않습니다. 샘플링 파라미터, 프리필, computer_20250124, thinking 반환 시 변경 사항이 400 에러의 원인이 될 수 있습니다. -
Computer Use의 도구는 제공처별로 다릅니다. Claude API와 Google Cloud는 computer_toolset_20260801이고, Bedrock은 computer_20251124입니다. Bedrock의 Haiku 5.5에서는 구조화 출력을 사용할 수 없습니다.-
사고(thinking) 텍스트는 기본적으로 생략됩니다. 표시하려면 thinking.display: "summarized"가 필요합니다. -
동적 워크플로우(Dynamic Workflow, 베타)는 대량의 세부 작업을 병렬로 처리할 수 있는 새로운 선택지입니다. managed-agents-2026-04-01 헤더와 multiagent 설정으로 활성화할 수 있습니다.
Haiku 4.5를 사용하고 있다면, 전환하기 전에 위의 체크리스트로 확인해 주세요. 대규모 처리를 다루고 있다면, 동적 워크플로우를 작게 테스트해 볼 가치가 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기