4. エージェントとは何か?
Answers Anywhereの説明をするとき、「エージェントとは何ですか?」という質問をお客様よりよく受けます。「エージェント」という言葉は聴いたことがあるが具体的に何かよくわからないという方が多いようです。大リーグに移籍する選手のために移籍先のチームと交渉する人のことをエージェントと呼びますが、コンピュータの世界では、代理性(依頼人の代わりに処理を実行する)、知性(状況に応じ知的に振舞う)、移動性(要求されたものを探索し取りに行く)などの特性を持つ自律動作するプログラムを指します。さらにマルチエージェントといった場合は協調性(機能や能力の異なる複数のエージェントで目的実現のため補い合っては働く)という特性も加味されます。コンピュータの世界での具体的な例としては次のものがあるかと思います。
インターフェース・エージェント
画面の中でユーザーの入力を受けつけたり話しかけてくるキャラクター。エージェントというとこれを思い浮かべる人も多いのではないでしょうか。知性や代理性があると言えます。
監視エージェント
サーバや機器の遠隔監視のために常駐動作し、問題を検出したときに通知するプログラム。人の代わりに監視するという点で代理性があると言えます。
移動検索エージェント
ネットワーク上の別のマシンにあるエージェント実行環境を次々と移動しながら、条件に合致した情報を収集し、結果を持って戻ってくるプログラム。文字どおり移動性ですが、ユーザーの代わりに情報をとってくるという点では移動性であり、収集の際は知的に振舞うこともあります。
これに対してAnswers Anywhereでのエージェントは「入力に対して自分の持つ知識や状態に応じ応答をする(クレームする)もの」です。上記に挙げたものよりは動作の粒度が小さく、神経細胞に近い動きをするものです。エージェントというよりはセルまたはシナプスといった方がよいかもしれません。ただ、これらが複数組み合わさって協調して動作することで、知性(ユーザーの命令を解釈し)、代理性(処理を実行する)という性質が発揮されていると言えます。
5. おわりに
Answers Anywhereは普通のプログラミング言語とは異なるので、その動作を理解していただくために前回から引き続き解説が主となりました。次回はいよいよエージェント・ネットワークの開発を予定しています。おたのしみに。