CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/API & SDK
API & SDK/2026-06-03上級

Claude API のモデル抽象レイヤー設計 — 世代交代に業務ロジックを巻き込まない内部アーキテクチャ

モデル文字列を業務コードに直書きすると、世代交代のたびに本番が静かに壊れます。論理ロールと物理モデルIDを切り離す anti-corruption layer を、TypeScript と Python の動くコード・移行コスト・実運用の判断軸とあわせて設計します。

claude-api81architecture7anti-corruption-layermodel-migration4production87design

プレミアム記事

2026 年の春、Haiku 3 系の旧モデル文字列が廃止予定に入ったというメールを受け取ったとき、私がまず開いたのは API の管理画面ではなく、自分のアプリ群のソースコードを横断検索する grep でした。claude-3-haiku という文字列が、壁紙アプリのレビュー要約、引き寄せ系アプリの日次プッシュ文面、個人ブログの自動下書き生成と、合計 12 箇所にそのまま埋まっていたのです。どれも数年前に「とりあえず動かす」つもりで書いたコードが、そのまま本番に残り続けていました。

私は 2014 年から Dolice という屋号で個人開発を続けて 12 年、累計 5,000万ダウンロードを超えるアプリ事業を運営してきました。AdMob 経由の収益が立つ規模になると、機能が静かに壊れることが一番こわい。エラーで落ちてくれれば気づけますが、モデル廃止は「ある日から徐々に応答が変わる/ある締切日を境に 400 が返り始める」という顔をしてやってきます。このとき痛感したのは、モデル名という「外部ベンダーの都合で変わる識別子」を、自分の業務ロジックの内側に持ち込んでいたことそのものが設計の負債だった、という事実でした。

本稿でまとめるのは、この負債を返済するための anti-corruption layer(腐敗防止層)の設計です。ドメイン駆動設計の文脈で語られるこのパターンを Claude API に当てはめ、論理ロールと物理モデル ID を切り離す具体的な実装を、TypeScript と Python の動くコードで示します。

直書きが生む「静かな腐敗」の正体

モデル名を業務コードに直書きすることの本当の問題は、grep で 12 箇所ヒットすること自体ではありません。それなら一括置換で済みます。本質的な問題は、各呼び出し箇所が「そのモデルの暗黙の前提」も一緒に抱え込んでいる点にあります。

たとえばレビュー要約のコードは「Haiku は速いが長文の指示追従が弱いので、プロンプトを短く保つ」という前提で書かれていました。一方ブログ下書きのコードは「多少遅くても品質を優先したいので max_tokens を大きめに取る」という前提でした。同じ claude-3-haiku という文字列でも、その背後にある期待値は呼び出し箇所ごとにバラバラだったのです。

この状態で単純置換をすると、速度前提のコードに高品質モデルを差し込んでレイテンシ予算を超過させたり、逆に品質前提のコードに軽量モデルを差し込んで出力が劣化したりします。つまり「モデル文字列」は単なる識別子ではなく、速度・品質・コスト・コンテキスト長という複数の非機能要件を圧縮した記号だったわけです。腐敗防止層が隔離すべきは、この圧縮された前提のほうです。

論理ロールという「翻訳語彙」を設計する

腐敗防止層の中心になるのは、業務側の語彙と API 側の語彙を翻訳する辞書です。私は業務側の語彙を「論理ロール」と呼んでいます。アプリのコードは物理モデル名を一切知らず、自分が欲しい性質だけをロールとして要求します。

私のアプリ群では、次の 3 つのロールに集約すると過不足がありませんでした。

  1. fast — ユーザーの操作に同期して走る軽量タスク。レイテンシ最優先。レビュー要約のプレビュー、入力補助など。
  2. balanced — 非同期で走るがその日のうちに品質を見られるタスク。プッシュ文面の生成、タグ付けなど。
  3. deep — 人間が後で必ず目を通す前提の高品質タスク。ブログ下書き、長文の構成案など。

重要なのは、このロール名が「速い/賢い」のような性能の優劣ではなく、ユースケースの性質で切られている点です。「fast はいつか deep に格上げしたくなる」ことは起きません。fast はあくまで「同期処理で待たせたくない場面」を意味し続けます。物理モデルがどれだけ賢くなっても、この境界は安定します。長期運用で抽象が壊れないのは、抽象の軸を性能ではなく要件に置いたからでした。

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

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
論理ロール(fast / balanced / deep)と物理モデルIDを切り離す ModelRegistry を TypeScript と Python の両方で実装し、モデル廃止時の変更を 1 ファイル 3 行に閉じ込める設計
Haiku 3 廃止と Sonnet 4.5 の 1M context 移行で、累計 5,000万DL のアプリ群を 12 箇所の直書きから救出した実体験と、移行コストを 80% 削減した抽象化の判断軸
世代交代を検知する契約テスト(capability contract test)と、フォールバックを跨いだトークン単価の自動再計算ロジック一式
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

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

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

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

関連記事

API & SDK2026-06-15
モデルが予告なく使えなくなる日に備える — 引退・撤回・過負荷を一つのステートマシンで扱うルーター設計
あるモデルが、技術的な障害ではなく外部都合で短時間のうちに使えなくなる。引退・撤回・一時的な過負荷という三種の「使えない」を一つの可用性ステートマシンで扱い、自動運用を止めないルーターを TypeScript と Python の動くコードで設計します。
API & SDK2026-05-22
Claude API の 200K コンテキストをどう割り振るか — システム・ツール・メモリ・履歴の予算枠を実運用で決めた話
Claude API の 200K コンテキストを「無制限の置き場」ではなく予算として扱い、システム・ツール定義・メモリ・履歴・回答ヘッドルームに枠を切る設計を、TypeScript の実装コードと壁紙アプリ運用で得た数値とともに記録しました。
API & SDK2026-07-13
Claude API の同時実行を束ねる — シングルフライトで重複推論とキャッシュ・スタンピードを防ぐ
同一プロンプトが同時に何度も Claude へ飛ぶ重複推論を、シングルフライト(request coalescing)で束ねる設計です。プロセス内・分散環境の実装、ジッター付きリトライ、負のキャッシュまで実測付きでまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →