◉CLAUDE LABEN
●2.1.282 — Claude Code が9月24日に 2.1.282 へ。会話を再開したときに以前の推論が落ちる不具合や、redacted_thinking の API エラーへの修正がまとめて入りました●OPUS5.5 — 既定の Opus になった Claude Opus 5.5 は、100万トークンあたり入力4ドル・出力20ドル、キャッシュ読み込みは0.20ドルです●10/07 — Claude Desktop / Cowork の管理構成キー旧綴りは10月7日 12:00 PT で受付終了です。残り12日です●ALIAS — 子エージェントに「opus」と書いたのに旧世代のモデルで動いていた、という報告が出ています。別名の行き先は実行前に確かめておくと安心です●NEW — Cowork の定期タスクは、来週の土曜にも動きますか●RESUME — 長い作業を途中から再開するときは、履歴を書き換えずに続けられる形で残しておくと、それまでの推論を失わずに済みます●2.1.282 — Claude Code が9月24日に 2.1.282 へ。会話を再開したときに以前の推論が落ちる不具合や、redacted_thinking の API エラーへの修正がまとめて入りました●OPUS5.5 — 既定の Opus になった Claude Opus 5.5 は、100万トークンあたり入力4ドル・出力20ドル、キャッシュ読み込みは0.20ドルです●10/07 — Claude Desktop / Cowork の管理構成キー旧綴りは10月7日 12:00 PT で受付終了です。残り12日です●ALIAS — 子エージェントに「opus」と書いたのに旧世代のモデルで動いていた、という報告が出ています。別名の行き先は実行前に確かめておくと安心です●NEW — Cowork の定期タスクは、来週の土曜にも動きますか●RESUME — 長い作業を途中から再開するときは、履歴を書き換えずに続けられる形で残しておくと、それまでの推論を失わずに済みます
記事一覧/Claude Code
⟐ Claude Code/2026-09-25初級

既定の Opus が 5.5 に変わった週、別名のまま残していた3箇所を数えました

Claude Code 2.1.280 で Opus 5.5 が既定になり、Pro の既定モデルも Sonnet から Opus へ変わりました。設定を触る前に確かめた3点(別名の解決先・/effort の引き継ぎ・キャッシュ読み $0.20 の見込み)を、手元で使った確認スクリプトと一緒に書き残します。

Claude Code258Opus 5.5モデル選択5サブエージェント17プロンプトキャッシュ3コスト

更新を当てた翌朝、/status の一行目に、私が一度も選んだ覚えのないモデル名が並んでおりました。Opus 5.5 です。前の晩に設定を書き換えた記憶はなく、.claude/settings.json を開いても model の行は空のままでした。

壁紙アプリの保守で使っているリポジトリには、.claude/agents/ に小さなエージェントを何本か置いています。ストアの説明文を多言語に揃える係、Kotlin 側の警告を拾う係、そしてレビュー返信の下書きを整える係です。そのうちの何本かが model: "opus" という別名で書かれていたことに気づいたのは、/status の一行目を読み終えたあとでした。

最初にお伝えしたいのは、この週に私が設定を一行も書き換えなかった、ということです。書き換える前に、何がどこまで引き継がれているのかを数えたかったのです。

何が変わったのかを、設定を触る前に確かめる

changelog の本文で確かめた範囲を、そのまま書き残します。2.1.280 で claude-opus-5-5 が追加され、これが既定の Opus モデルになりました。1M のコンテキスト、入力 $4・出力 $20 per Mtok、そしてキャッシュ読みが $0.20 per Mtok です。同じ版で、Pro と Team Standard の既定モデルが Sonnet から Opus へ変わっています。

つまり私の朝の /status は、不具合ではなく仕様どおりの姿でした。Pro の既定が Opus に寄り、Opus の別名が 5.5 を指すようになった——その二段が重なって、私は何も選ばずに 5.5 の上に立っていたのです。

項目2.1.280 より前2.1.280 以降
Pro の既定モデルSonnetOpus
別名 opus の解決先その時点の既定 OpusOpus 5.5(claude-opus-5-5)
Opus 5.5 の単価—入力 $4 / 出力 $20 / キャッシュ読み $0.20(per Mtok)
保存済みの /effortモデル単位で保持新しいモデルには適用されない

/status と claude doctor は、この確認に向いています。2.1.282 からは、無視されているテレメトリ系の環境変数も起動時と /status に出るようになりましたので、「書いたのに効いていない設定」を同じ画面で拾えるのです。

既定が動いた朝は、設定を直す前に、いま何が効いているかを一画面で読みます。 この順番だけは、急いでいる日でも崩さないようにしています。

別名が指す先を、自分の手で読む

別名で書かれたエージェントが、更新後にどのモデルへ解決されているのか。私はこれを、公式の一覧ではなく手元の実行結果で確かめることにしました。model: "opus" と書いたエージェントが旧世代を選んでいた、という報告が Issue に上がっていたためです。報告のとおりかどうかは環境次第かもしれませんが、確かめる価値だけは確かにありました。

最初の一手は、エージェント定義に散らばった model: の値を一覧にすることです。固定 ID か別名かを分けて並べるだけの、短いシェルスクリプトです。

#!/usr/bin/env bash
# .claude/agents/*.md の frontmatter から model: を拾い、別名と固定 ID に分けて並べる
set -euo pipefail
DIR="${1:-.claude/agents}"
for f in "$DIR"/*.md; do
  m=$(awk 'BEGIN{fm=0} /^---$/{fm++; next} fm==1 && /^model:/{sub(/^model:[ \t]*/,""); gsub(/["'"'"']/,""); print; exit}' "$f")
  case "${m:-inherit}" in
    opus|sonnet|haiku|inherit) kind="alias" ;;
    claude-*)                  kind="fixed" ;;
    *)                         kind="other" ;;
  esac
  printf '%-6s %-24s %s\n' "$kind" "${m:-inherit}" "$(basename "$f")"
done | sort

私の手元では 6 本のうち 3 本が opus、1 本が inherit、2 本が固定 ID でした。数えるまで、比率をこんなに別名側へ寄せていた自覚はありませんでした。

次に、別名が実際にどの ID へ解決されるかを一回だけ走らせて読みます。ヘッドレスで短い応答を求め、結果 JSON の modelUsage に並ぶキーを見るのがいちばん手早い方法です。

claude -p "reply with ok" --model opus --output-format json \
  | python3 -c 'import json,sys; r=json.load(sys.stdin); print(list(r.get("modelUsage",{}).keys()))'

ここに claude-opus-5-5 が出れば、別名は新しい既定を指しています。別の ID が出たなら、そのリポジトリでは別名を信じない、という判断が要ります。なぜ一覧だけで済ませずに一回走らせるのかと言えば、別名の解決は CLI の版が実行時に決めるものであり、エージェント定義のファイルにはその結果が一行も残らないからです。

/effort は引き継がれない

もう一つ、私が「引き継がれているはず」と思い込んでいたものがありました。/effort の保存値です。2.1.280 の本文には、/effort がモデル単位になる前に保存した努力度は Opus 5.5 のような新しいモデルには適用されない、と明記されています。

私は以前、翻訳係のエージェントに合わせて努力度を一段下げて保存しておりました。訳文の揺れを抑えるためというより、応答が長くなりすぎないようにするためです。既定が 5.5 に移った瞬間に、その保存値は 5.5 には効いていなかったことになります。

確かめ方は簡単で、対話セッションで /effort を打って現在値を読むだけです。効いていなければ、5.5 用に一度だけ設定し直します。切った thinking と高い effort を組み合わせたときに黙って一段落ちる挙動については、thinking を切ったまま effort xhigh を指定した設定が、いま黙って high で走っていますに書き残しています。

キャッシュ読み $0.20 で、月の見込みを引き直す

単価の話は、数字そのものよりも比率に手が止まりました。私はこれまで「キャッシュ読みは入力単価の1割」という当てはめで月の見込みを立てておりました。入力 $4 なら $0.40 になるはずのところ、changelog の表記は $0.20 です。この差は、キャッシュに乗せている前置きが長い係ほど大きく効きます。

そこで、係ごとの月間トークン量から見込みを引き直す小さなスクリプトを書きました。いま使っている単価は引数で渡し、Opus 5.5 の値だけを本文どおりに置いています。

#!/usr/bin/env python3
"""係ごとの月間トークン量から、現行単価と Opus 5.5 の月額を並べて見る。
使い方: python3 estimate.py <入力Mtok> <キャッシュ読み比率 0-1> <出力Mtok> <現行 入力$> <現行 出力$> <現行 キャッシュ読み$>
"""
import sys
 
OPUS_5_5 = {"input": 4.0, "output": 20.0, "cache_read": 0.20}  # 2.1.280 changelog 本文の値(per Mtok)
 
 
def monthly(price: dict, in_mtok: float, cached: float, out_mtok: float) -> float:
    fresh = in_mtok * (1 - cached) * price["input"]
    hit = in_mtok * cached * price["cache_read"]
    return fresh + hit + out_mtok * price["output"]
 
 
def main() -> None:
    if len(sys.argv) != 7:
        print(__doc__)
        sys.exit(2)
    in_mtok, cached, out_mtok = map(float, sys.argv[1:4])
    current = dict(zip(("input", "output", "cache_read"), map(float, sys.argv[4:7])))
    if not 0 <= cached <= 1:
        sys.exit("キャッシュ読み比率は 0〜1 で指定してください")
    now = monthly(current, in_mtok, cached, out_mtok)
    new = monthly(OPUS_5_5, in_mtok, cached, out_mtok)
    print(f"現行     : ${now:8.2f}")
    print(f"Opus 5.5 : ${new:8.2f}  (差 {new - now:+.2f})")
    # 移行初日はキャッシュが温まっていないため、比率 0 の値も並べて置く
    cold = monthly(OPUS_5_5, in_mtok, 0.0, out_mtok)
    print(f"初日相当 : ${cold:8.2f}  (キャッシュ読み比率 0 の場合)")
 
 
if __name__ == "__main__":
    main()

三行目の「初日相当」を残したのには理由があります。プロンプトキャッシュはモデルごとに分かれますので、切り替えた初日は温まっていない状態から始まるのです。月の見込みだけを見て安心すると、初日の請求で一度胃が痛くなります。個人開発の予算は月単位で引いていますが、切り替えの週だけは日単位で見るようにしています。

固定するか、追従するか

数え終えたあとで、私は三つの線引きをしました。

  • ストアの説明文を揃える係は、固定 ID へ書き換えました。訳文の調子が月をまたいで揺れないことのほうが、新しいモデルの賢さより大切だからです
  • 警告を拾う係と下書きを整える係は、別名のまま残しました。この二つは結果を私が必ず読み直す係で、モデルが進んだ恩恵をそのまま受けたい係でもあります
  • inherit の一本は、親セッションの /status を読めば済むので、そのままにしました

固定と追従のどちらが正しいかではなく、結果を人が読み直す係は追従させ、成果物がそのまま外へ出る係は固定する、という分け方に落ち着いています。別名は便利ですが、便利さの代わりに「いつ何が変わったか」をファイルに残さないのです。

環境変数側での指定がどう効くかは、ANTHROPIC_MODEL を消さないまま ANTHROPIC_DEFAULT_MODEL を足しても、始まるモデルは変わりませんで整理しています。無人実行の途中でモデルが切り替わったことをフックで記録し、約束していない切り替えだけを止める構成は、モデル切り替えの記録と歯止めを、フック2本で作るにまとめました。今回の数え直しが済んだあとに、次に置くものとしてちょうどよい一本だと思います。

まずは今日の作業を始める前に /status を一度だけ打って、一行目のモデル名を手元のメモに写していただければと思います。私もそこから始めました。読んでくださって、ありがとうございます。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⟐ Claude Code2026-09-22
消えたことになっている作業ツリーの棚卸しと、隔離の任せどころ
サブエージェントに任せた隔離作業ツリーが畳まれずに残っていました。git 2.34.1 で実測した remove の可否、消しても残るブランチ、1 ツリーあたり 12 MB の差から、棚卸しの手順と隔離の任せどころをお伝えします。
⟐ Claude Code2026-08-21
ANTHROPIC_MODEL を消さないまま ANTHROPIC_DEFAULT_MODEL を足しても、始まるモデルは変わりません
v2.1.236 で追加された ANTHROPIC_DEFAULT_MODEL は ANTHROPIC_MODEL の後継ではありません。二つの効き方の違いと、モデル指定の散らばりを一覧する Python スクリプトをまとめました。
⟐ Claude Code2026-08-17
フォーク既定のサブエージェントで、レビュー役だけは名前で呼ぶという線引き
サブエージェントのフォークが既定になり、親の会話をそのまま引き継ぐようになりました。作業は継承させ、判定は継承させない。その境界をリポジトリに宣言し、ずれを機械的に見つけるまでの設計です。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます