BDI Agent Modelとは
BDI Agent Modelとは、自分で判断して動くプログラム(エージェント)の中身を、Belief(信念)・Desire(願望)・Intention(意図)の3つに分けて組み立てる考え方です。人の心を持たせるという意味ではなく、プログラムが「何を知っていて、何を目指し、いま何をやると決めているか」を、別々の部品として持たせる設計を指します。
英語表記:Belief-Desire-Intention (BDI) agent/BDI architecture
3つは、それぞれ何を受け持つ?
オーストラリアのメルボルンにある研究所のアナンド・ラオ氏とマイケル・ジョージェフ氏は、1995年の論文「BDI Agents: From Theory to Practice」で、自分たちのそれまでの理論と実装と応用を1本の論文にまとめました。論文の説明では、Beliefはまわりの状況についてプログラムが持っている情報です。一度に全体を見渡せない環境では、見えた分を貯めて書き換えていく部品が要る、というのが理由でした。
Desireは、達成したい目標とその優先度。ここで論文は、Desireは同時にいくつあってもよく、互いにぶつかっていてもかまわないと断っています。そのうえで、たくさんの選択肢から「いまはこれをやる」と選んだ行動の筋道を覚えておく部品が、Intentionです。
なぜ「やると決めたこと」を別に持つのか
論文が挙げるのは、状況が刻々と変わる環境での板挟みです。一歩ごとに行動を選び直すと、計算に時間がかかるうえ、選び終えたころには状況が変わっているかもしれません。かといって、一度選んだ手順を最後まで変えずに進めれば、途中の変化に取り残されて目的を果たせなくなります。
そこで、選んだ筋道をIntentionとして持ち続け、見直す回数をほどよく絞る。いったん決めたことを守るおかげで判断が安定し、計算の手間も減る、と論文は説明しています。この発想の土台として引かれているのが、哲学者マイケル・ブラットマン氏の1987年の著作『Intention, Plans, and Practical Reason』です。ブラットマン氏は意図を「部分的な行動計画の一部」として扱い、計画が時間をまたいで行動をまとめる役割を論じました。
業務をAIエージェントに任せるときも、同じ問いが残ります。状況が変わるたびに段取りを組み直させるのか、決めた段取りをどこまで続けさせるのか。BDIは、その見直しの頻度を「設計で決める項目」として切り出した考え方、と読むと実務に引き寄せやすいでしょう。
Topic1990年代のシドニー空港で、到着便1機ごとにエージェントが付いた
1995年の論文が実例に挙げたのは、航空管制を支えるシステム「OASIS」です。複数のエージェントが分担して動くマルチエージェントの仕組みで、到着する飛行機1機ごとに1つのエージェントを割り当て、着陸の順番を決める係、風を読む係、全体を調整する係、飛行経路を確かめる係のエージェントと組み合わせて動かしました。同時に動くエージェントは最大で70〜80。論文の時点では、シドニー空港で本物のレーダーの情報を受け取りながら、実際の運用と並行して試験中でした。同じ系統のソフトウェアは、スペースシャトルの故障診断や通信網の管理にも使われた、と論文は書いています。
BDI Agent Modelに関するよくある質問
- BDIのエージェントは、一度決めた意図をどんなときに取り下げるのですか?
- 1995年の論文は3つの型を挙げています。意図とぶつかる信念や願望の変化を受け付けない型(blindly-committed)、信念の変化に応じて意図を取り下げる型(single-minded)、信念と願望のどちらの変化でも取り下げる型(open-minded)です。どれか1つが正しいとは決めず、用途に合わせて選ぶものとしています。
- BDIの考え方でプログラムを書くための言語はありますか?
- あります。ラオ氏が作ったAgentSpeak(L)という言語を拡張して動かす「Jason」が、Javaで書かれたオープンソースのソフトウェア(GNU LGPLという利用許諾)として公開されています(2026年10月時点)。複数のエージェントをネットワーク越しに分けて動かすこともできます。