Agentive
AIエージェント活用

DES(意思決定評価スコア)で自律判断 — AIが自分で実行可否を決める

約7分で読めます

DESとは

DES(Decision Evaluation Score)は、AIエージェントが変更の実行可否を自律的に判断するためのフレームワーク。感覚的な「良さそう」「危なそう」を数値化し、明確な閾値で実行・保留・却下を判定する。

DESの計算式

DES = Σ(メリットスコア) + Σ(デメリットスコア × (1 - 緩和率))
  • メリットスコア: 正の値(+10 ~ +50)
  • デメリットスコア: 負の値(-10 ~ -50)
  • 緩和率: 0.0 ~ 1.0(対策によるリスク軽減度)

判定閾値

DES範囲判定アクション
+60以上即実行エージェントが自律的に実行
+30 ~ +59レビュー後実行Reviewerに確認後、実行
0 ~ +29再設計設計を見直して再提案
-1以下却下実行しない。代替案を検討

具体例1: DB移行の判断

PostgreSQLからの本番DB移行を検討するケース。

変更: PostgreSQL 14 → PostgreSQL 16へのメジャーアップグレード

メリット:
  - パフォーマンス向上(30%高速化): +35
  - セキュリティパッチ適用: +25
  - 新機能(JSONBの改善等): +15
  メリット合計: +75

デメリット:
  - ダウンタイムリスク: -30 × (1 - 0.8) = -6
    緩和策: Blue-Greenデプロイで切替(緩和率0.8)
  - 互換性問題: -25 × (1 - 0.7) = -7.5
    緩和策: ステージング環境で事前テスト(緩和率0.7)
  - ロールバック困難: -20 × (1 - 0.9) = -2
    緩和策: スナップショット取得済み(緩和率0.9)
  デメリット合計: -15.5

DES = 75 + (-15.5) = +59.5
判定: レビュー後実行

緩和策をしっかり用意すれば、デメリットの影響を大幅に抑えられる。

具体例2: API公開の判断

社内APIを外部パートナーに公開するケース。

変更: 内部API v2を外部パートナー向けに公開

メリット:
  - パートナー連携による売上増: +40
  - 開発者エコシステム構築: +20
  - ブランド価値向上: +10
  メリット合計: +70

デメリット:
  - セキュリティリスク増大: -40 × (1 - 0.5) = -20
    緩和策: API Gateway + レート制限(緩和率0.5)
  - サポートコスト増: -15 × (1 - 0.3) = -10.5
    緩和策: ドキュメント整備のみ(緩和率0.3)
  - 後方互換性の維持負担: -20 × (1 - 0.4) = -12
    緩和策: バージョニング導入(緩和率0.4)
  デメリット合計: -42.5

DES = 70 + (-42.5) = +27.5
判定: 再設計

セキュリティの緩和率が0.5と低い。WAF導入や認証強化で緩和率を0.8に上げれば、DESは+49.5(レビュー後実行)に改善する。

具体例3: リファクタリングの判断

レガシーコードの大規模リファクタリングを検討するケース。

変更: モノリスからマイクロサービスへの分割

メリット:
  - スケーラビリティ向上: +30
  - デプロイ独立性: +25
  - チーム並列開発: +20
  メリット合計: +75

デメリット:
  - 開発工数(3ヶ月): -35 × (1 - 0.2) = -28
    緩和策: 段階的移行(緩和率0.2)
  - 運用複雑性の増大: -30 × (1 - 0.3) = -21
    緩和策: Kubernetes導入予定(緩和率0.3)
  - データ整合性リスク: -40 × (1 - 0.4) = -24
    緩和策: Sagaパターン導入(緩和率0.4)
  - 学習コスト: -15 × (1 - 0.5) = -7.5
    緩和策: 社内勉強会実施(緩和率0.5)
  デメリット合計: -80.5

DES = 75 + (-80.5) = -5.5
判定: 却下

全面移行は却下。まず1つのドメインだけ分離する「ストラングラーパターン」で再計算すると、工数とリスクが大幅に下がりDESがプラスに転じる。

判定フロー

[変更提案] → メリット列挙 → デメリット列挙 → 緩和策検討


[DES計算] → +60以上? ──Yes──→ [即実行]

     No

  +30以上? ──Yes──→ [Reviewer確認] → 承認? → [実行]
     │                              │
     No                            No → [再設計]

   0以上? ──Yes──→ [再設計] → 緩和策追加 → [再計算]

     No

  [却下] → 代替案検討 → [新提案としてDES計算]

DESの実装

def calculate_des(change):
    """DESスコアを計算"""
    benefit_total = sum(b["score"] for b in change["benefits"])
    risk_total = sum(
        r["score"] * (1 - r["mitigation_rate"])
        for r in change["risks"]
    )
    return benefit_total + risk_total

def decide(des_score):
    """DESスコアから判定を返す"""
    if des_score >= 60:
        return "EXECUTE"
    elif des_score >= 30:
        return "REVIEW_THEN_EXECUTE"
    elif des_score >= 0:
        return "REDESIGN"
    else:
        return "REJECT"

運用上の注意点

  • 緩和率の過大評価に注意: 対策が実装済みかどうかで緩和率を変える。計画段階なら0.3、実装済みなら0.8が目安
  • メリットの水増しに注意: 「将来的に役立つかも」は+5程度に抑える。確実な効果のみ高スコアを付ける
  • 定期的な閾値見直し: プロジェクトのリスク許容度に応じて閾値を調整する

関連記事

A

Agentive 編集部

AIエージェントを実際に使い倒す個人開発者。サイト制作の自動化を実践しながら、その知見を発信しています。