ObjectSquare [1999 年 11 月号]

[エージェント指向が目指すもの]


オブジェクトの広場 : エージェント指向が目指すもの



エージェント指向が目指すもの

連載第1回

サル思考とエージェント指向


はじめに

オブジェクトの広場へようこそ。今回のテーマは「エージェント指向」です。連載第一回は「古くて新しい」技術であるエージェント指向について、技術的な堅い話しは抜きに「どんな技術」で「何をするためのもの」か、サルの世界を例に簡単に解説していこうと思います。「エージェント指向って何?」「前回のXMLってUMLの親戚?」という方から「エージェント指向ってもう消えたのかと思ってた」「結局オブジェクト指向なんでしょ」という技術な方々まで、是非一度読んでみてください。

サルから生まれたエージェント

エージェント指向というのは、実は最近の技術ではありません。広い範囲でみれば、生命が社会性を持った頃からエージェント指向の基礎はあったのです(とは言いすぎかもしれませんが)。納得いかない方のために、突然ですが、サルの世界をのぞいてみましょう。サルの世界には「ボスザル」というのがいて、これが「ナンバー2」以下のサル達を取り仕切っています。たとえば、ボスザルが子分ザルに「バナナを持ってこい(キー、キ、キッ)」と言ったとしましょう。すると子分はバナナを求めて放浪し、ボスザルのもとへバナナを持ち帰ります。このとき、子分ザルはボスザルの「エージェント」として機能したことになります。なぜなら、「バナナ命令」により子分ザルが行動し、「成果バナナ」をボスザルに持ちかえったからです。

子分ザルの使命

さて、話しがややこしくなってきました。上の「なぜなら」が納得できない!とお怒りの方もいらっしゃると思いますので、話を少し整理してみましょう。そもそも、エージェントとは英語で「代理人」の意味です。つまり、エージェント指向とは直訳すると「代理人指向」です。ボスザルは自分でバナナを探すのが面倒臭かったため、子分ザルを「代理人」として「お使い」に出しました。だから子分ザルは「代理人=エージェント」として機能したというわけです。
ここで、子分ザルの役割について考えてみましょう。子分ザルにとっては「バナナを持ちかえる」ことこそが最大の使命です。その使命をまっとうするためには、おそらく、次のような能力が必要でしょう。

実は上の3つはエージェントに要求される重要な3機能と深く関わっているのです。

サルからエージェントへ

さて、上で「重要な3機能」と断言しておきながら、ここで大事ことを忘れていました。実はコンピュータの世界において「エージェント」という言葉の明確な定義はありません。「エージェントに要求される重要な機能」と書きましたが、実はそんな定義もありません。コンピュータの世界(最近は「コンピュータ」という言葉がなんだか古めかしくなってきましたので、以後「ITの世界」と呼ぶことにします)におけるエージェント技術はまだまだ新しいものなので、古いエージェントが持っていた機能のどれを実現すればITの世界のエージェントになれるのか、明確な定義がないのです。しかし、エージェント指向を語るとき、上の3機能を無視することはできないでしょう。これは、世界中のエージェント議論で、上の3機能のうち必ず一つは実現されていないとエージェントと呼ばれない、という事実から汲み取れることです。
ここで、いつまでも「バナナのある場所を考える機能」などと呼んでいては笑われてしまうので、上の3機能をもう少し抽象的な名前に変えることにしましょう。

これですこしIT用語っぽくなってきました。エージェントとは上の3つの性質を少なくとも一つ以上持っているものだという定義を忘れないでください。なお、代理性は「インターフェース」、知性は「思考性」とか「成長性」、移動性と知性は併せて「自律性」とか呼ばれることもあります。さらに、「他のサルに聞く」能力は「協調性」と呼ばれるマルチエージェントの概念ですが、難しいのでここでは触れないことにします。

身の回りにもいる代理エージェント

ここで、代理性について着目してみましょう。子分ザルとボスザルの例でお話したように、代理性というのは古くからあるものです。そして実は、あなたのコンピュータにもそんなエージェントがいるのです。「ん?サルなんて飼ってないぞ」と思われるかもしれませんが、デスクトップ画面上に並んだ強烈なキャラクターを持つアイコン達は、きっと子分ザル以上に忠実に、あなたからの命令を遂行してくれることでしょう。。例えば、バナナについて知りたければ、WWWブラウザで検索サイトに移動し(今は移動せずにこの文章を読んでくださいね)、バナナと打ち込めば、いろいろな情報を表示してくれます。バナナに限らず、E-メールが届けば「新しいメールが届きました」などと表示されたり、ダイアルアップで接続していれば「30分通信していませんが、回線を切ってもいいですか」と表示されたり。コンピュータの中では様々なエージェントが動いていて、あなたに話しかけてきてくれます。そして、これらのエージェントを「デスクトップエージェント」とか「インターフェースエージェント」と呼んでいます。非常に古典的で簡単なエージェントですが、彼らもあなたと外部の世界との仲介をしている、立派なエージェントなわけです。

子分ザルをとりまく不安

話しが少しそれてしまいました(今回は技術的な話しはしないお約束でした)ので、ここでサルの世界に戻りましょう。子分ザルがバナナを取りに行っている間、ボスザルには大きな不安があることに気付きましたでしょうか。ボスザルの不安は次のようなものです。

他にも、「採ってきたバナナをネコババしないだろうか」とかいろいろな不安はありますが、子分ザルの忠誠心までは疑わないことにしましょう。さて、ここで注目すべき点は、子分ザルの「自律性(移動性)」です。勝手に移動してバナナを取ってくるため、子分ザルが戻ってくるまでは、その作業を「信頼」する以外にありません。しかし、信頼することでボスザルは子分ザルをいちいち監視することなく自由な時間を作れることになります。実はここにエージェント指向の難しさがあります。「ん?何のことだ」と、前の文章を読み返された方もいらっしゃることでしょう。話しが唐突なように思えますが、そんなことはありません。子分ザルが移動するには、そのための道(プロトコル)がなければいけません。 バナナをとるためには、子分ザルを受け入れる場所(サーバ)がなければいけません。子分ザルは道を通って、目的の質・量を満たすバナナを手に入れるまで、延々移動を続けます。その結果、途中で土砂崩れに遭い、引き返すことができなくなることもあるでしょう。また、ふらふらと人間界に迷い込み、スーパーマーケットで狂喜乱舞、あたりかまわず食べ散らかし、お店の中を無茶苦茶にしてしまうかもしれません。ITの世界でエージェントを受け入れるということは。「サーバ内でエージェントが自由に行動することを許可する」ことです。しかし、自分のサーバにサルが迷い込んできて暴れられたらたまったものではありません。そこで、自律性に着目したエージェント指向技術では次のようなことが焦点になっています。 PostPetというメールツールをご存知でしたら、上の危険性については容易に理解できるでしょう。もしあなたのペットが行方不明になったら(実際には一定期間で復活しますが)、もしメールについてきた他のペットがあなたの部屋を荒らしまわったら…。エージェント技術にとって、信頼できる環境がなによりも重要なのです。

まとめ:エージェント指向って一体?

ここまで読まれて、「エージェント指向って、本当に使えるんだろうか?」とか「スリルがあって面白そう」とか、いろいろな感想があるかとおもいます。ここできっぱり言いましょう。エージェント指向の本当のゴールはまだまだ先です。しかし「世のため人のため、コンピュータをより使いやすく身近なものにする」点ではすでに身の回りで貢献している技術でもあります。エージェント指向技術はオブジェクト指向の発展形だと言う人もいますが、オブジェクト指向は「モノ思考」であり、エージェント指向は「サル思考」だという点で大きな違いがあります。つまり、オブジェクト指向が「モノとモノが協調する」ための技術であるのに対し、エージェント指向は「サルが結果を持って帰る」ための技術なのです。

次回は皆さんのサル思考について、もう少し技術的な側面から解説したいと思います。

あかまつ

オブジェクトの広場 : エージェント指向が目指すもの

© 1999 OGIS-RI Co., Ltd.
Index Next
Index Next