規範的BDIエージェントアーキテクチャ は何をしますか?
このスキルは、エージェントが複数の規範を認識し、どれを行動に採用するかを決定し、意図的な違反が代替案よりも悪くない理由を説明する必要がある場合に使用します。
使用すべき状況
- 複数のルール、義務、禁止、またはステークホルダーの要求をすべて同時に満たせない場合。
- エージェントが、規範が存在することを知っていることと、実際にそれに従うことを選択することとを区別する必要がある場合。
- システムが、あるルールに違反してでも、より重要度の高い別のコミットメントを満たした理由を正当化する必要がある場合。
- 脆弱なハードコードされた優先順位リストに代わる、結果ベースの代替手段が必要な場合。
- BDIアーキテクチャが、規範を絶対的なオーバーライドにせずに、規範的推論を統合するための原則的な方法を必要とする場合。
対象外の境界
このスキルは、以下のための主要なツールではありません:
- コンテキストに応じて正しい優先順位が変わることがない、固定された優先順位階層。
- 満足する解があれば十分であり、規範違反は対象外である純粋な制約充足。
- 結果に関わらず、文字通りの非違反を要求する規制または倫理環境。
- 信念、コミットメント、または意図的な違反の説明を維持しないおもちゃのルールエンジン。
中核となるメンタルモデル
認識は内面化ではない
抽象規範ベースを規範インスタンスベースから分離してください。エージェントは規範を採用せずに検出できます。この分離により、意図的で説明可能な非準拠が可能になり、偶発的な無知を防ぐことができます。
3つの一貫性状態
- 強い不一致: 両方のコミットメントを満たす計画が全くない。
- 弱い整合性: 一部の計画は機能するが、将来の柔軟性が低下する。
- 強い整合性: 関連するすべての計画が互換性を維持する。
ほとんどの実際の設計判断は、弱い整合性のケースで行われます。
結果ランキング
規範が競合する場合は、コミットメントの首尾一貫した束を、最も悪い下流結果によって比較します。平均的な良さを最大化することではなく、互換性のない未来の中で最も悪くない最悪のケースを選択することです。
規範を仮説的欲求として
採用された義務と禁止は、別のオーバーライドシステムではなく、BDI機構内の反論可能な圧力になります。これにより、規範的推論が通常の目標追求と同じ熟議ループ内に維持されます。
決定ポイント
採用と競合のフローについては、diagrams/01_flowchart_decision-points.mdを参照してください。
flowchart TD
A[Norm detected] --> B{Groundable in current beliefs?}
B -->|No| C[Keep abstract and monitor]
B -->|Yes| D[Check consistency]
D -->|Strongly inconsistent| E[Compare conflict bundles by worst consequence]
D -->|Weakly consistent| F[Evaluate flexibility cost]
D -->|Strongly consistent| G[Adopt norm]
E --> H[Choose least-bad worst case]
F --> I{Adoption still worth it?}
I -->|Yes| G
I -->|No| J[Reject or defer]
H --> G
1. 規範を採用するかどうかの決定
- 新しい規範が現在のコミットメントと強い不一致がある場合、採用には何か他のものを放棄するか修正する必要があります。
- 弱い整合性の場合は、採用する前に柔軟性のコストを明示的にしてください。
- 強い整合性の場合は、採用は低リスクであり、通常は自動的に行うべきです。
2. 競合を解決する方法の決定
- 規範を個別に比較するのではなく、最大の非競合サブセットを生成します。
- 各サブセットの計画を構築し、各未来における最悪の結果を特定します。
- 最悪のケースが最も悪くないサブセットを選択し、選択した違反の理由を記録します。
3. 抽象規範をインスタンス化するタイミングの決定
- 現在の信念が変数をバインドし、アクティベーション条件を満たすことができる場合にのみインスタンス化します。
- 知識が不完全な場合、未解決の規範を適用されないふりをするのではなく、可視化したままにしておきます。
- 意味のある信念の更新後、保留中の抽象規範を再評価します。
障害モード
1. 過剰採用によるデッドロック
症状: エージェントが規範を内面化し続け、実行可能なアクションがなくなる。
検出ルール: 競合が解決されるよりも早くアクティブなアクションスペースが縮小する。
回復: 規範インスタンスベースに新しい規範が追加される前に、一貫性レビューを強制します。
2. 隠れた違反
症状: エージェントが規範に違反しているが、そうすることを選択したと述べることができない。
検出ルール: 事後的な説明で、拒否された規範が省略されるか、違反が存在しなかったかのように扱われる。
回復: 拒否されたが認識された規範を永続化し、勝利した結果比較をログに記録します。
3. バイナリ一貫性の崩壊
症状: 採用ロジックがすべての規範を完全に互換性があるか不可能かのいずれかとして扱う。
検出ルール: 弱い整合性がアーキテクチャまたはログにまったく現れない。
回復: 明示的な弱い整合性ブランチを追加し、柔軟性の損失を直接モデル化します。
4. 固定優先順位の脆弱性
症状: 同じグローバル優先順位スタックが、エッジケースで明らかに間違った選択を生み出す。
検出ルール: 競合の結果は、優先順位テーブルが変更された場合にのみ変化し、結果が変化した場合には変化しない。
回復: 固定された優先順位から、サブセット生成と結果ランキングに移行します。
5. 規範のサイドチャネルアーキテクチャ
症状: 規範処理は、実行後半でBDIの熟議をオーバーライドする別の強制モジュールに存在する。
検出ルール: 規範ロジックを信念、欲求、意図を使用して説明できない。
回復: 採用された規範を内部の熟議的圧力に変換し、メインアーキテクチャを経由させます。
実例
例1: プライバシー vs. パーソナライゼーション
サービスエージェントは、顧客レベルのデータを直接使用することを禁止する規範と、ユーザーエクスペリエンスを向上させる義務を認識しています。システムは弱い整合性を見つけ出します。集約された行動サマリーは、プライバシーの害を制限しながらほとんどのパーソナライゼーションを維持します。スキルは両方の規範を可視化し、集約安全な義務のみをインスタンス化し、直接データ使用がなぜ拒否されたかを記録します。
例2: ロボットと赤ちゃん
介護ロボットは、赤ちゃんを生かしておく義務と、人間に対する愛情を育むことへの禁止に直面します。両方を満たす計画はありません。スキルは2つの首尾一貫したサブセットを生成し、最悪の結果を比較し、設計上の禁止事項を意図的に違反します。なぜなら、死は禁じられた愛着よりも悪い結果だからです。違反は明示的であり、報告可能です。
品質ゲート
- アーキテクチャは検出された規範と採用された規範を区別している。
- 一貫性チェックには、強い不一致、弱い整合性、強い整合性が含まれている。
- 競合解決は、孤立した規範のみではなく、首尾一貫したサブセットを比較している。
- 選択された違反は、明示的な結果比較とともにログに記録されている。
- 信念のグラウンディングが不完全な場合、抽象規範は保留状態を維持できる。
参照ファイル
| ファイル | ロードするタイミング |
|---|---|
references/separation-of-norm-recognition-and-norm-internalization.md | ANBとNIBの境界を設計するとき |
references/three-types-of-consistency-for-norm-adoption.md | 採用チェックと柔軟性コストロジックを実装するとき |
references/normative-conflict-resolution-through-consequence-ranking.md | 結果ベースの競合解決を構築またはレビューするとき |
references/norm-instantiation-through-belief-grounding.md | 抽象規範をコンテキスト固有のインスタンスにグラウンディングするとき |
references/maximal-non-conflicting-subsets-for-action-selection.md | 競合下で首尾一貫したオプションの束を計算するとき |
references/desire-internalization-as-norm-adoption-mechanism.md | 規範をBDIの欲求と意図の処理に統合するとき |
アンチパターン
- 単一の優先順位をハードコードして「倫理」と呼ぶこと。
- 検出されたすべての規範を自動採用し、実行時にのみ矛盾を発見すること。
- 弱い整合性を強い整合性と同じものとして扱うこと。
- 壊滅的な最悪ケースを無視しながら、平均的な効用で違反を比較すること。