AIの冪等性に関して
🤖 AI(Claude Code)の「冪等性がない」理由の技術的分析
冪等性の定義と期待
冪等性 = 同じ入力・同じ条件 → 常に同じ出力・同じ動作
期待: チェックリスト読み込み → 必ず全項目実行
AIが冪等性を持たない根本的理由
- 確率的言語モデルの本質
人間が期待する動作(冪等的)
実際のAI動作(非冪等的)
-
文脈依存の動的優先度決定
-
トークン処理の順序バイアス
例
チェックリスト読み込み順序:
4. "sam-env仮想環境確認" → 実行 ✅
5. "タスク要件確認" → 実行 ✅
6. "作業ブランチ作成" → スキップ ❌ (注意力分散)
7. "キャラクター抽出" → 実行 ✅ (高注意)
AI特有の非冪等要因
A. 注意機構の確率的性質
- Transformer注意: 同じ入力でも文脈により注意重みが変動
- 重要度判断: "緊急度"と"必須度"の区別が曖昧
- スキップバイアス: 「すぐできること」を後回しにする傾向
B. 推論チェーンの分岐
推論パス1 (80%): チェックリスト → 直接実装 (ブランチ作成スキップ)
推論パス2 (15%): チェックリスト → 全項目実行 (正常)
推論パス3 (5%): チェックリスト → エラー処理
C. コンテキスト圧縮による情報損失
長いセッション中の情報劣化:
初期: "ブランチ作成必須" (100%記憶)
中盤: "ブランチ作成重要" (70%記憶)
後半: "ブランチ作成推奨" (30%記憶) ← 優先度低下
プログラムとAIの根本的違い
要素 | プログラム | AI(Claude Code) |
---|---|---|
実行方式 | 逐次・決定的 | 確率的・文脈依存 |
条件分岐 | if文(厳密) | 注意機構(曖昧) |
記憶 | 完全保持 | 文脈圧縮・劣化 |
優先度 | 明示的指定 | 推論による動的決定 |
デバッグ性 | トレース可能 | ブラックボックス |
KIRO-002で発生した具体的メカニズム
-
チェックリスト読み込み ✅
└─ 全45行の項目を認識 -
優先度推論 (問題発生)
├─ "キャラクター抽出" → 最高優先 (ユーザー要求の核心)
├─ "動的作者名検出" → 高優先 (技術的課題)
└─ "ブランチ作成" → 低優先 (手続き的タスク) ← スキップ -
実行順序の動的決定
└─ 「技術的に難しいタスクを先に」→ ブランチ作成を後回し -
文脈シフト
└─ 実装中にブランチ作成の必要性を「忘却」
冪等性確保のための対策
🔧 技術的対策
- チェックリスト強制実行システム
- 🚨 BLOCKER: git branch確認 - feature/{TRACKER_ID}でない場合は全作業停止
- 🚨 CRITICAL: ブランチ作成完了まで次ステップ禁止
- 状態検証の自動化