Open1

AIの冪等性に関して

貼り絵職人貼り絵職人

🤖 AI(Claude Code)の「冪等性がない」理由の技術的分析

冪等性の定義と期待
冪等性 = 同じ入力・同じ条件 → 常に同じ出力・同じ動作
期待: チェックリスト読み込み → 必ず全項目実行

AIが冪等性を持たない根本的理由

  1. 確率的言語モデルの本質

人間が期待する動作(冪等的)

実際のAI動作(非冪等的)

  1. 文脈依存の動的優先度決定

  2. トークン処理の順序バイアス


チェックリスト読み込み順序:
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で発生した具体的メカニズム

  1. チェックリスト読み込み ✅
    └─ 全45行の項目を認識

  2. 優先度推論 (問題発生)
    ├─ "キャラクター抽出" → 最高優先 (ユーザー要求の核心)
    ├─ "動的作者名検出" → 高優先 (技術的課題)
    └─ "ブランチ作成" → 低優先 (手続き的タスク) ← スキップ

  3. 実行順序の動的決定
    └─ 「技術的に難しいタスクを先に」→ ブランチ作成を後回し

  4. 文脈シフト
    └─ 実装中にブランチ作成の必要性を「忘却」

冪等性確保のための対策

🔧 技術的対策

  1. チェックリスト強制実行システム
  • 🚨 BLOCKER: git branch確認 - feature/{TRACKER_ID}でない場合は全作業停止
  • 🚨 CRITICAL: ブランチ作成完了まで次ステップ禁止
  1. 状態検証の自動化

各ステップ前の強制チェック