• Status: Accepted
  • Mode: Critical
  • Kruchten Type: Executive/Property
  • Scope: platform
  • Implementation Status: Done (PR #674, deployed 2026-05-13)
  • 起案者: [email protected]
  • 起案日時 (JST): 2026-05-13 20:41
  • 承認日時 (JST): 2026-05-13 20:50
  • Deciders: [email protected] (単独)

1. コンテキスト

1.1 背景 (Background)

Decision Pipeline (ADR-0019 で採用、LangGraph TS on Cloudflare Workers + LiteLLM Gateway) の各 Gate に異なる LLM を割り当てている (drp/src/llm/gateway.ts:32-42):

Gate役割現行モデル
Gate 0 (Triage)分類 (ADR-worthy + Mode 判定)gemini-flash
Gate 1 (Socratic)5 項目充足チェック + 判定gemini-flash
Gate 2 (Consistency)過去 ADR 整合性claude-opus-4-7
Gate 3 (Parallel Review)3 LLM 並列レビューgemini-pro + claude-opus + gpt-4.1
Gate 4 (Scoring)10 軸数値評価gpt-4.1
body_generationADR 本文生成claude-opus-4-7
slugkebab-case 変換gemini-flash
Policy Alignment会社方針照合claude-opus-4-7

うち 3 か所 (太字) が中堅モデル (gemini-flash / gpt-4.1) で運用されており、フロンティアモデル (claude-opus-4-7 / claude-sonnet-4-6 / gpt-5) へのアップグレード余地がある。

1.2 現状 (Current State / As-Is)

本日 (2026-05-13) Pipeline 経由で起案した ADR 5 本の Gate 1 / Gate 4 通過状況:

ADRGate 1 (Socratic)Gate 4 (Scoring)
ADR-0028一発通過Critical 通過
ADR-0029一発通過43→48 (再投入で +5 改善、Critical 閾値 45 跨ぐ)
ADR-00305 リトライで stuck (curl 投入)、Web UI 投入で通過Standard 46/50 通過
ADR-0031一発通過Critical 47/50 通過
ADR-0032一発通過Standard 通過
  • Gate 1 で stuck したのは ADR-0030 起案時、context 強化版 v3-v6 を投入しても gemini-flash が同じ質問を堂々巡りで再生 (LLM 非決定性 + flash 判定の精度不足が原因)
  • Gate 4 で採点ブレ ±5 点 (ADR-0029 で 43→48) が観測され、Critical 閾値 (45) を跨ぐ
  • Parallel Review の GPT-4.1 (技術視点) は 2026-05 時点で 1 世代古いモデル、GPT-5 リリース済

1.3 課題 (Problem)

  1. Gate 1 過剰判定: gemini-flash は分類タスクには十分だが「5 項目充足判定」のような微細な品質評価には弱い。LLM 非決定性で同じ質問を再生し、context 強化しても通過しないループに陥る (ADR-0030 起案で 5 リトライ、機会費用 [MASKED:AMOUNT] + LLM API $1.5)
  2. Gate 4 スコアブレ: gpt-4.1 は LMSYS Chatbot Arena の LLM-as-judge カテゴリで Claude Opus に劣る。10 軸 × 5 段階の多基準評価で採点一貫性が不足 (±5 点ブレ)、Critical 閾値 (45) を跨ぐ判定ブレで再投入が発生 (年 12 件想定 = [MASKED:AMOUNT]k 機会費用)
  3. Gate 3 (Parallel Review GPT) の世代遅れ: gpt-4.1 は GPT-5 リリース (2026-Q1) で中堅化、技術視点レビューの精度向上余地あり

1.4 制約・要件 (Constraints & Requirements)

  • LiteLLM Gateway 経由で 3 か所のモデル alias を変更するだけで実装可能 (gateway.ts の 3 行変更)
  • Adaptive Thinking (Extended Thinking) は Claude Opus 4.7 で 2025-Q4 から GA、API パラメータ thinking: { type: 'enabled', budget_tokens: N } で有効化
  • Parallel Review の 3 LLM 多様性は維持 (Gemini + Claude + GPT の構成は変えず、GPT 系を 4.1 → 5 にスロット内 upgrade)
  • 月 100 ADR 想定で年間 LLM コスト増 ≤ $500

1.5 目標 (Goals / To-Be)

  • Gate 1 (Socratic) を claude-sonnet-4-6 に変更、過剰判定ループを解消 (1 回目通過率 90% 以上)
  • Gate 4 (Scoring) を claude-opus-4-7 (Adaptive Thinking, thinking_budget=8192) に変更、採点ブレを ±2 点以内に
  • Gate 3 (Parallel Review GPT スロット) を gpt-5 に変更、技術視点レビューの精度向上 + 3 LLM 多様性維持
  • 再投入率を 50% → 20% 以下に下げる (現行 ADR-0029 / ADR-0030 で発生したループ・差し戻しを構造的に削減)

2. 決定

drp/src/llm/gateway.tsMODELS オブジェクトで以下の 3 か所を同時アップグレードする: Gate 1 (Socratic) を gemini-flashclaude-sonnet-4-6、Gate 3 (Parallel Review GPT スロット) を gpt-4.1gpt-5、Gate 4 (Scoring) を gpt-4.1claude-opus-4-7 + Adaptive Thinking (thinking_budget=8192) とする。Parallel Review の 3 LLM 多様性 (Gemini + Claude + GPT) はスロット内 upgrade で維持。LiteLLM Gateway 経由で 3 行変更 + scoring.ts への thinking パラメータ追加で完結し、変更直後の 5 ADR で旧構成と A/B 比較し、1 ヶ月後 (2026-06-13) に Review After で撤退条件発火を判定する。

2.1 3 か所のモデル切替

// Before
socratic:     'gemini-flash',  // Gate 1
scoring:      'gpt-4.1',       // Gate 4
reviewGpt4:   'gpt-4.1',       // Gate 3 技術視点

// After (本 ADR)
socratic:     'claude-sonnet', // Gate 1: claude-sonnet-4-6 (判定一貫性向上)
scoring:      'claude-opus',   // Gate 4: claude-opus-4-7 + Adaptive Thinking
reviewGpt4:   'gpt-5',         // Gate 3 技術視点: GPT-5 (3 LLM 多様性維持)

2.2 Adaptive Thinking の有効化 (Gate 4)

scoring.tscreateLlm(env, MODELS.scoring, 0.0) 呼び出し時に thinking_budget: 8192 を渡す:

const llm = createLlm(env, MODELS.scoring, 0.0, { thinking_budget: 8192 });

LiteLLM v1.50+ で Anthropic Extended Thinking パラメータをサポート済。

2.3 LiteLLM Gateway 設定

以下のモデル alias が LiteLLM config.yaml に登録されている必要がある:

  • claude-sonnetanthropic/claude-sonnet-4-6 (Gate 1)
  • claude-opusanthropic/claude-opus-4-7 (Gate 4 / 既存運用中)
  • gpt-5openai/gpt-5 or openai/gpt-5-thinking (Gate 3)

未登録の場合は LiteLLM 設定追加 (推定 15 分)。

2.4 A/B 比較計画

マージ後、次の 5 ADR で:

  • 旧構成 (gemini-flash / gpt-4.1 / gpt-4.1) と新構成 (claude-sonnet / claude-opus + thinking / gpt-5) で並行 Pipeline 実行
  • 採点差 ±2 点以内 / Gate 1 一発通過率 90% 以上で新構成定着
  • Review After 1 ヶ月で結果を docs/_internal/changelog.md に記録

3. 検討した代替案 (Alternatives Considered)

  • 案 A (採用): 3 か所同時アップグレード (Gate 1: claude-sonnet / Gate 3 GPT: gpt-5 / Gate 4: claude-opus + Adaptive Thinking)。

    • Good: 全 Gate に最適モデル配置、LLM-as-judge ベンチマーク準拠。
    • Good: Parallel Review の 3 LLM 多様性維持 (Gemini + Claude + GPT)。
    • Good: Gate 1 過剰判定ループ + Gate 4 採点ブレを同時解消、再投入率 50% → 20% 想定。
    • Good: 1 PR で完結、運用変更コスト最小。
    • Bad: 月 LLM コスト +$65 (年 +$780)、ただし削減効果で年 [MASKED:AMOUNT] 純減。
    • Bad: 3 か所同時変更で A/B 比較が複雑 (各 Gate 個別のベースライン記録必須)。
  • 案 B (不採用): Gate 4 のみ変更 (Scoring を claude-opus + Adaptive Thinking)。

    • Good: 変更範囲最小、A/B 比較もシンプル。
    • 不採用理由: Gate 1 過剰判定ループ (ADR-0030 実例) は未解消、Parallel Review の世代遅れも残る。
  • 案 C (不採用): 段階的アップグレード (まず Gate 4、1 ヶ月後 Gate 1、3 ヶ月後 Gate 3)。

    • Good: A/B 比較がシンプル。
    • 不採用理由: 3 ヶ月間に Gate 1 ループ [MASKED:AMOUNT] 機会費用が継続。各 Gate の ADR を独立に起案するコスト ([MASKED:AMOUNT] × 3) が発生。
  • 案 D (不採用): 全 Gate を claude-opus に統一。

    • Good: モデル統一で運用シンプル。
    • 不採用理由: Parallel Review の多様性が消失 (3 LLM 並列レビューの本質を破壊)。Gate 0 / slug には Opus がオーバースペック、月 $200 超の無駄。
  • 案 E (不採用): GPT-5 統一 (全 Gate を GPT-5 / GPT-5-mini に統一)。

    • Good: OpenAI 単一ベンダーで管理シンプル。
    • 不採用理由: LLM-as-judge / 長文判定で Claude が優位、Scoring 精度低下。日本語技術文書理解で Claude > GPT-5、Gate 2 で精度低下リスク。

4. コスト試算

4.1 初期投資 (1 回限り)

項目工数金額
gateway.ts の 3 行変更 + scoring.ts に thinking パラメータ追加0.5 時間$0
LiteLLM Gateway モデル alias 確認 + 必要なら追加登録0.25 時間$0
動作確認 (テスト ADR 1 本投入で 3 Gate 全て新モデル動作確認)0.5 時間LLM API 約 $1
Decision Pipeline 投入 + Accepted 化 + マージ (本 ADR 自身)0.75 時間LLM API $3
初期投資合計約 2 時間約 $4 (≈ [MASKED:AMOUNT])

4.2 月次運用コスト増 (継続)

Gate現行 model 単価 (per call)新 model 単価 (per call)月 100 ADR × call 数月次差分
Gate 1 (Socratic)gemini-flash $0.001claude-sonnet $0.05100 × 1 = 100 calls+$5
Gate 3 (Parallel Review GPT)gpt-4.1 $0.05gpt-5 $0.30100 × 1 = 100 calls+$25
Gate 4 (Scoring)gpt-4.1 $0.05claude-opus + thinking $0.40100 × 1 = 100 calls+$35
合計+$65/月 (年 +$780, ≈ [MASKED:AMOUNT])

4.3 削減効果 (継続)

  • Gate 1 過剰判定ループ削減: 月 2 件想定 (ADR-0030 で 5 リトライ実例) × [MASKED:AMOUNT] 機会費用 + $5 LLM = 月 [MASKED:AMOUNT] + $10
  • Gate 4 採点ブレ削減: 月 1 件再投入想定 × [MASKED:AMOUNT] 機会費用 + $3 LLM = 月 [MASKED:AMOUNT] + $3
  • 合計: 月 [MASKED:AMOUNT] + $13 削減 = 年 [MASKED:AMOUNT] + $156 削減 (約 [MASKED:AMOUNT] 削減)

4.4 純効果

年間: [MASKED:AMOUNT] 削減 - [MASKED:AMOUNT] LLM コスト増 = 約 [MASKED:AMOUNT] 純減。投資回収期間: 約 5 ヶ月。

5. 影響 (Consequences)

5.1 正の影響 (Good)

  • Existence: Adaptive Thinking (thinking_budget=8192) を Gate 4 に導入、思考プロセスを経た採点で一貫性向上。
  • Property: Gate 1 過剰判定ループの構造的解消 (1 回目通過率 90% 以上目標)、ADR-0030 のような 5 リトライ stuck を回避。
  • Property: Gate 4 採点ブレ ±5 → ±2 点以内に縮小、Critical 閾値 (45) 跨ぐ判定ブレを解消。
  • Property: Parallel Review の 3 LLM 多様性維持 (Gemini + Claude + GPT)、GPT スロットを 5 にスロット内 upgrade で技術視点精度向上。
  • Executive: 1 PR で 3 か所完結、運用変更コスト最小。年 [MASKED:AMOUNT] 純減、投資回収 5 ヶ月。
  • Property: 再投入率 50% → 20% 以下、起案者の試行錯誤負荷を削減。

5.2 負の影響 (Bad)

  • Executive: 月 LLM コスト +$65 (年 +$780, ≈ [MASKED:AMOUNT]) 増加。月次 LiteLLM 請求の継続的モニタリングが必要。
  • Property: 3 か所同時変更により A/B 比較が複雑化、各 Gate 個別のベースライン記録 (Gate 1 通過率 / Gate 4 採点ブレ / Gate 3 一致率) が必須となり、Review After 集計工数が増える。
  • Executive: Anthropic / OpenAI 2 ベンダー依存度が増加 (gemini-flash → claude-sonnet で Anthropic 比重増)、Anthropic Tier rate limit に Parallel Review と合算で抵触するリスク。
  • Executive: Adaptive Thinking はトークン課金倍率変動の影響を受けるため、thinking_budget 増加でコスト想定が崩れる可能性。
  • Property: claude-sonnet が逆方向に厳しめ判定する場合、Gate 1 通過率が想定より低くなる可能性 (撤退条件で escalate 経路あり)。

Status / Mode / Scope は 2026-06-11 に遡及追加 (ADR-0031 corrigendum パターン)。出典: Status = 旧形式「## ステータス」節の機械転記 / Mode = 旧 README §既存 ADR 一覧の推定値 (git 履歴) / Scope = ADR-0049 4 層分類の遡及付与 (PR レビューで確定)。

5.3 中立・トレードオフ (Neutral / Trade-offs)

  • Gate 0 / Gate 2 / body / slug / Policy Alignment は変更なし (既に最適配置)。
  • Parallel Review の GPT スロットを残すか Claude 統一にするかは案 D で検討済、多様性維持を選択。
  • thinking_budget=8192 は初期値、Review After で 16384 への増加も選択肢。
  • gpt-5 応答時間が長い場合は gpt-5-mini へのダウンサイズ経路あり (撤退条件)。
  • GPT-6 / Opus 5 リリース時に 6 ヶ月後 Review After で再評価。

6. 完了条件

  1. gateway.ts の 3 か所変更: grep -E "socratic:.*claude-sonnet|scoring:.*claude-opus|reviewGpt4:.*gpt-5" drp/src/llm/gateway.ts → 3 match
  2. scoring.ts に thinking パラメータ追加: grep -c "thinking_budget\|thinking:" drp/src/nodes/scoring.ts → >= 1
  3. LiteLLM Gateway に 3 モデル alias 登録済 (config.yaml に claude-sonnet / claude-opus / gpt-5 が存在)
  4. テスト ADR 1 本投入で 3 Gate 全て新モデルで実行成功
  5. 本 ADR を自身が 3 Gate 新構成で Scoring 通過 (dogfooding)
  6. CI markdown-link-check PASS

7. 影響範囲

  • drp/src/llm/gateway.ts: MODELS の 3 行変更 (+3/-3)
  • drp/src/nodes/scoring.ts: createLlm に thinking パラメータ追加 (+2 行)
  • drp/litellm/config.yaml (必要なら): モデル alias 追加 (claude-sonnet / gpt-5)
  • 既存 Gate 0 / Gate 2 / body / slug / Policy Alignment: 変更なし (既に Claude Opus または Gemini Flash で運用、最適配置)

8. 長期影響

6 ヶ月後の負債化リスク:

  1. Anthropic / OpenAI のモデル価格改定 → 月次 LiteLLM 請求でアラート設定 (月 $130 超で通知)
  2. Adaptive Thinking のコスト変動 (thinking_budget 増加で output token 倍率変動) → Scoring 1 回あたり $0.50 超でアラート
  3. GPT-5 → GPT-6 (or Claude Opus 5) リリース時の再評価が必要
  4. LiteLLM Gateway の rate limit (Anthropic Tier 制限) → 月 100 ADR + parallel review で合算負荷 monitoring

観測指標 (月次):

  • Gate 1 一発通過率: 目標 90% 以上 (現状不明、claude-sonnet で計測開始)
  • Gate 4 採点ブレ (同一 ADR 2 回投入差分): 目標 ±2 点以内
  • Gate 3 Parallel Review の 3 LLM 一致率: 現状ベースライン測定
  • 月次 LLM 総コスト: 目標 < $100
  • Pipeline 応答時間 (中央値): 目標 < 45 秒 (Adaptive Thinking 含む)

Review After:

  • 1 ヶ月後 (2026-06-13): A/B 比較結果集計、撤退条件発火判定
  • 3 ヶ月後 (2026-08-13): モデル精度・コスト・応答時間の月次トレンド
  • 6 ヶ月後 (2026-11-13): フロンティアモデル (Opus 5 / GPT-6) への再評価

Spike Results

実装中に判明した外部ライブラリの挙動。同じ罠を踏まないための記録。

確認項目結果確認日備考
claude-opus-4-7 + thinking: { type: 'enabled', budget_tokens: N }❌ Anthropic 4002026-05-134-7 は enabled 非対応。adaptive を使う
claude-opus-4-7 + output_config: { effort: 'max' } (LiteLLM main-stable)❌ LiteLLM 5002026-05-13LiteLLM が claude-opus-4-6 のみ許可するバグ。_is_opus_4_6_model を patch して回避
claude-opus-4-7 + thinking: { type: 'adaptive' } + output_config: { effort }❌ LiteLLM HTML エラー2026-05-13LiteLLM が adaptive を未処理でクラッシュ
claude-opus-4-7 + reasoning_effort: 'max' (LiteLLM main-stable + patch)✅ 動作2026-05-13LiteLLM の _map_reasoning_effort 経由で thinking + output_config に変換される
Gemini Pro (gemini-pro) の thinking 深度設定-1 で動的 MAX2026-05-13LiteLLM が budget_tokens: -1thinkingConfig に変換。Gemini 3.1 Pro 推奨値
GEMINI_API_KEY の Cloud Run マウント❌ 未設定でデプロイすると Gate 3 が 5002026-05-13Secret Manager に登録必須。deploy-cloudrun.sh の事前チェックで検出可能

撤退条件 (Rollback Plan)

判定指標閾値判定タイミング対応
Gate 1 (claude-sonnet) で過剰判定継続1 ヶ月の集計で 1 回目通過率 < 80%1 ヶ月後 Review Afterclaude-opus に escalate or system prompt 緩和
Gate 4 (claude-opus + thinking) でも採点ブレ大1 ヶ月の A/B 比較で平均ブレ > ±3 点1 ヶ月後 Review Afterthinking_budget 8192 → 16384 増加 or temperature 厳格化
Gate 3 (gpt-5) で応答時間 > 60sPipeline 中央値 60s 超月次 Pipeline ログgpt-5 → gpt-5-mini にダウンサイズ
LLM コスト超過月 LLM 請求 > 想定 2 倍 ($130 超)月次 LiteLLM ログ各 Gate を 1 段下げ (Sonnet → Haiku, Opus → Sonnet, GPT-5 → GPT-4.1 復帰)
いずれかのモデルが deprecatedAnthropic / OpenAI アナウンス公式情報後継モデル (Opus 5 / Sonnet 5 / GPT-6) にアップグレード

Confirmation (準拠確認 / Fitness Function)

本セクションは ADR-0036 (Accepted 2026-05-14) で遡及追加された。ADR-0031 パターン (業界標準準拠メタデータ後付け = 誤字修正範疇) に準拠する遡及で本文の意思決定内容は不変。

  • 検証手段: Pipeline Gate 2 (consistency) + LiteLLM ログ集計
  • 実行頻度: PR ごと
  • 違反時の対応: 自動 fail

参照 (References)

  • 関連 ADR: ADR-0019 (Decision Pipeline 採用), ADR-0024 (§1/§5 サブ見出し構造), ADR-0028 / ADR-0029 / ADR-0030 / ADR-0031 / ADR-0032 (Pipeline 運用実績データ提供元), ADR-0030 (Kruchten Type 必須化), ADR-0032 (Implementation Status 必須化)
  • 関連 PR/Issue: -(要追記)
  • 外部資料: LMSYS Chatbot Arena (LLM-as-judge カテゴリ), Anthropic Extended Thinking 公式ドキュメント, LiteLLM v1.50+ Anthropic thinking パラメータサポート