Opus 5.5, 뭐가 달라졌나

claudeopusllm

안녕하세요! 재니미입니다.

이 글은 Anthropic 공식 문서 Claude Opus 5.5의 새로운 기능을 읽고 정리한 것입니다.

Claude Opus 5.5가 나왔습니다. 장시간 실행되는 에이전트 코딩과 지식 작업을 위해 만들어졌고, 가격은 입력 100만 토큰당 4달러, 출력 100만 토큰당 20달러로 Opus 5(5달러/25달러)보다 낮아졌습니다.

얼마 전 이 모델을 더 효율적으로 쓰는 프롬프팅 팁을 정리했습니다. effort를 다시 재보정하고, 무인 에이전트가 중간에 멈추지 않게 하고, 진행 상황을 사용자에게 보여주는 식의 내용이었습니다. 전부 코드를 안 깨뜨리는 개선 사항이었습니다.

거기에 더해서 추가적인 사항을 정리했습니다. 모델 ID만 claude-opus-5-5로 바꾸고 나머지 코드를 그대로 두면, 그 프롬프팅 팁과 상관없이 실제로 요청이 실패하는 네 가지 변경 사항이 있습니다. 이것부터 먼저 확인하고 나서 프롬프팅을 다듬는 게 순서에 맞습니다.

1. 사고를 끌 수 없다

Opus 5에서는 thinking: {"type": "disabled"}로 사고를 껐습니다. Opus 5.5에서는 사고가 항상 켜져 있어서, 이 설정을 보내면 400 오류가 납니다. thinking.type.enabled로 수동 예산을 주는 것도 마찬가지입니다.

"thinking.type.disabled" is not supported for this model.
Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

thinking 필드를 아예 생략하거나 {"type": "adaptive"}를 보내고, 사고 깊이는 effort 파라미터로 조절하면 됩니다.

2. 강제 도구 사용이 안 된다

tool_choice를 {"type": "any"}나 {"type": "tool", "name": "..."}로 특정 도구 호출을 강제했다면, 이제 400 오류가 납니다. {"type": "auto"}(기본값)만 지원됩니다. 스키마에 맞는 JSON이 필요하면 auto를 유지한 채 엄격한 도구 사용(strict: true)을 쓰거나 구조화된 출력으로 옮기고, 모델이 도구를 호출하게 하고 싶으면 프롬프트에서 언제 그 도구를 써야 하는지 명시해야 합니다.

3. 사고 블록이 모델과 대화에 묶인다

모든 사고 블록에는 그걸 만든 모델이 기록되고, 각 모델은 자기 블록과 일부 다른 모델의 블록만 읽을 수 있습니다. Opus 5.5는 Opus 5를 포함한 이전 모델들의 사고 블록은 읽지만, 특정 신규 모델들의 사고 블록은 읽지 못합니다. 대상 모델이 못 읽는 블록이 섞여 있으면 API가 알아서 제거하고 요청은 성공하지만(제거된 블록에는 요금이 안 붙습니다), 대화를 중간에 편집해서 시스템 프롬프트나 도구 목록을 바꾸면 사고 블록 자체가 무효화될 수 있습니다. 대화는 되도록 추가 전용으로 유지하고, 지시나 도구를 바꿔야 한다면 편집 대신 대화 중 시스템 메시지를 쓰는 게 안전합니다.

4. 옛 컴퓨터 사용 도구가 안 먹힌다

Claude API와 Google Cloud에서 Opus 5.5는 예전 computer_20251124 도구를 안 받습니다. computer_toolset_20260801 도구 세트로 바꿔야 합니다. (Amazon Bedrock에서는 옛 도구가 그대로 작동하니 신경 쓸 필요가 없습니다.)

코드는 안 깨지지만 동작이 달라지는 것들

여기서부터는 요청이 실패하진 않지만 결과물이 달라질 수 있는 부분입니다.

  • 기본 effort: high에서 medium으로 바뀌었습니다. effort를 명시하지 않은 요청은 코드를 하나도 안 건드렸는데 실행 방식이 조용히 바뀝니다. 같은 이름의 effort 단계라도 모델마다 사고량이 다르니, Opus 5에서 쓰던 값을 그대로 옮기지 말고 다시 스윕해서 재보정해야 합니다. 이 부분은 프롬프팅 팁 1번에서 더 자세히 다뤘습니다.
  • 같은 effort에서의 사고량: 턴당 더 많이 사고하는 경향이 있고, 특히 xhigh와 max에서 두드러집니다. max_tokens를 사고 토큰까지 감안해서 넉넉하게 잡아두지 않으면 사고가 늘어난 만큼 응답이 잘릴 수 있습니다.
  • 도구 호출 사이의 메모: text가 아니라 thinking 블록으로 옵니다. 기본 설정에서는 이 블록의 내용이 비어 있어서, 이런 메모를 그대로 스트리밍하던 화면은 긴 작업 도중 조용해질 수 있습니다. display: "updates"를 켜면 요약을 받을 수 있습니다.
  • 안전장치 카테고리: 기존 사이버 보안 분류기에 생물학 안전 분류기가 추가됐고, 모델의 내부 추론 과정을 응답 텍스트에 그대로 재현하도록 유도하는 요청은 reasoning_extraction이라는 새 카테고리로 거부될 수 있습니다. 사고를 대신해 응답에 추론 과정을 적으라고 시켰던 프롬프트가 있다면 이 부분에서 걸릴 수 있습니다.
  • 시각 자료 인식: 차트·다이어그램·스크린샷을 더 정확히 읽습니다. Anthropic 테스트에서는 가장 낮은 effort로도 Opus 5의 가장 높은 effort보다 밀도 높은 차트를 더 정확히 읽었고, 출력 토큰은 훨씬 적게 썼습니다. 화살표가 어느 상자를 잇는지처럼 위치 자체에 의미가 있는 자료도 더 잘 읽어서, 이전 모델을 위해 만들어둔 시각 자료 우회 방법이 더는 필요 없을 수 있습니다.

다음 편에서는 안전장치 거부와 시각 입력, 마이그레이션에서 유의할 점을 정리하겠습니다.

감사합니다.


참고 자료