エージェント(ソフトウェアエージェント)とは?
ふと「よくよく考えるとエージェントって何だっけ?」と思ったので軽くまとめます。
エージェントの意味
Wikipediaで調べました。
- ユーザーや他のソフトウェアの代理・仲介を果たすソフトウェア → ソフトウェアエージェント
- ユーザーの代わりに動くソフトウェア → ユーザーエージェント
- エージェント指向プログラミング(英語版)。
私が気になっているのは一番上の意味ですが、これだけではよく分からないので例を挙げてみます。
エージェントの例(常駐型ウイルス対策ソフト)
例として何か無いか考えると、常駐型ウイルス対策ソフトがありました。
常駐型ウイルス対策ソフトは端末をウイルスから保護する目的で導入されるソフトウェアで、端末の電源が入っている間常に起動されておりメーカーから更新ファイルが配信された際は自動的にダウンロードしてアップデートを行います。また、ユーザーがウイルスが仕込まれたホームページにアクセスしようとすると自動的にブロックします。
このように、ある目的を達成するために
他のソフトウェア等と通信・連動しながら、
ある程度自律的に振る舞いつつ、
周囲の環境の変化を把握して適切な対処を行い、
永続的に活動を行う
のがエージェントです。
まとめ
エージェントは、ユーザーが何らかの目的を達成するためにその代理として機能するソフトウェアやプログラムのことで、以下の特徴があります。
- ユーザーが操作しなくとも常に起動している(永続性)
- 他のソフトウェア等と通信・連動することがある(社会性)
- ユーザーの指示無しで目標達成に向けた動作を行う(自律性)
- 環境の変化を把握して動作を行う(反応性)
ちゃんと調べて書いたつもりですが、間違いがあれば修正・追記します。
以上です。