ソフトウェアエージェント

ソフトウェアエージェント（software agent）とは、ユーザーや他のソフトウェアとの仲介 (Agency) 的関係において動作するソフトウェアを説明する計算機科学上の抽象概念であり、論理的モデルである。そのような代行的行動は行動の適切さの判断や時期の判断の権限を暗示している。
関連する派生概念として、知的エージェント（人工知能的要素である学習や推論を取り入れたもの）、自律エージェント（目的を達成するための方法を自律的に更新できるもの）、分散エージェント（物理的に別個のコンピュータ群上で動作するもの）、マルチエージェントシステム（単体では目的を達成できず、互いに通信する分散エージェント群）、モバイルエージェント（ネットワーク上で自身を実行するプロセッサを乗り換えていくことができるエージェント）などがある。
コンセプト.
ソフトウェアエージェントの持つ基本特性は次の通りである。
「エージェント」という用語はソフトウェアの抽象化/アイデア/概念を説明するものであり、その意味でオブジェクト指向プログラミングの各種用語（メソッド、クラス、オブジェクトなど）と同類である。エージェントの概念は、ユーザーの代理である程度自律的に行動できる複雑なソフトウェアを説明するための便利で強力な方法を提供する。しかし、メソッドや属性といった用語で定義されるオブジェクトとは異なり、エージェントはその振る舞いで定義される。
様々な人々がそれぞれにエージェントの定義を提案しているが、それらには以下のような概念が共通して含まれている。
「エージェント」の概念は規範としてよりもシステムを解析するツールとして最も役立つ。上述したエージェントの概念は人間が複雑な仕事を考える場合の自然な方法を反映したものであり、そのためにエージェントはそのような複雑なタスクのモデルとして有効である。
一般的コンピュータプログラムとの相違点.
Fanklin & Graesser (1996) では、一般的プログラムとエージェントを区別する4つの点を指摘した。それは「環境への反応、自律性、ゴール指向、永続性」である。
知的ソフトウェアエージェントと人工知能における知的エージェントとの相違点.
人工知能の分野では、知的エージェント (Intelligent agent) はコンピュータプログラムとは限らず、システム、人間、コミュニティ（企業など）といった目的を持って振る舞う何らかのものを指す。
歴史.
エージェントの起源はカール・ヒューイットのアクターモデル (Hewitt, 1977) にまで遡ることができる。「自己充足的で対話的かつ並行的に実行されるオブジェクトであり、内部状態を持っていて通信機能を備えている」
学問的には、ソフトウェアエージェントシステムはマルチエージェントシステム(MAS)から生まれた。MAS は分散人工知能や分散問題解決の研究から出てきたものである。したがって、ソフトウェアエージェントは分散人工知能や人工知能の性格を継承している。
ジョン・スカリーが1987年に提案した のビデオではエンドユーザーとエージェントの関係が描かれていた。まず最初に理想像があったため、この分野ではボトムアップ的手法ではなくトップダウン的手法を採用して何度も失敗を繰り返してきた（例: General Magic）。エージェントの種類は現在では非常に幅広く、World Wide Web やサーチエンジンなどに利用されている。
例.
Haag (2006) は知的ソフトウェアエージェントを次の4種類に分類している。
バイヤーエージェント（買い物ボット）.
このタイプのボットはインターネットサーファーが商品やサービスを見つけるのを補助する。例えば、eBayで買い物をしようとしたとき、ページの下に同じ検索をした他のユーザーが購入した類似商品のリストが表示される。これはユーザーの嗜好の類似性を仮定して、同様の商品に興味を持つだろうと判断しているためである。この技術を協調フィルタリングと呼ぶ。
ユーザー（個人）エージェント.
このタイプのエージェントはユーザーのために自動的にタスクを実行する。例えば、次のようなタスクを行う。
監視（予測）エージェント.
このタイプのエージェントはコンピュータシステムなどの機器を監視して報告する。例えば、在庫状況を監視するエージェント、競合他社の商品価格を監視して報告するエージェント、インサイダー取引や噂などによる株価操作を監視するエージェントなどがある。
例えばNASAジェット推進研究所では、食糧も含めた在庫を監視し、コストを抑えて備品の注文をスケジューリングするエージェントを使用している。
データマイニング・エージェント.
このタイプのエージェントは、データウェアハウスでの情報発見に使われる。データウェアハウスは様々な情報源からの多量のデータを集めたものである。そこから有用な知識を見つけ出すことをデータマイニングという。例えば、売り上げを増やすのに有用な知識を得たり、離れようとしている顧客を繋ぎとめるのに有用な知識を得たりし、経営に役立てる。
データマイニングの最も一般的なものとして「クラス分類」があり、情報からパターンを見出し、それらを複数のクラスに分類する。データマイニング・エージェントは傾向の大まかな変遷や鍵となる指標を見つけることができ、新たな情報を検知して知らせることもできる。
その他の例.
その他の知的エージェントの例として、スパムフィルター、ゲームボット、サーバ監視ツールがある。検索エンジンの使用するボットも知的エージェントの一種である。その他の例は BotSpot にある。
設計上の問題.
エージェントベースのシステムの開発する際の問題として、以下のようなものが挙げられる。
ソフトウェアエージェントが効率的に協調動作するには、データの意味論的要素を共有しなければならない。これはコンピュータシステムがメタデータを提示することで可能である。
「エージェント処理; agent processing」には相互に関連する以下の2つの定義がある。
エージェントシステムは実世界を並行性や並列性でモデル化したものでもある。
エージェントはアクセス手段を用いてローカルまたはリモートのデータベースを調べ、Content となるものを探す。アクセス手段としては、ネットニュースをエージェントが受け取れるようにするとか、掲示板を用意するとか、ウェブを歩き回る機能を使用したりする。あらゆる情報源を検索できるわけではないので、このようにして検索される Content は部分的にフィルタリングされているだろう。エージェントはさらに詳細な検索を行ったり、機械的言語処理を行ってキーワードやサインを Content から探し出す。この要約された Content （またはイベント）がエージェントの推論機構(Machinery)に渡され、新たな Content に対して何をすべきかを判断する。この過程でイベント Content はユーザーが提供したルールベースか知識内容と結合する。その過程で新たな Content から良い一致を検出したら、エージェントは Machinery の別の機構を使ってさらに詳細な検索を行う。最終的に、エージェントは新たな Content に基づいて採るべき行動を決定する。例えば、ユーザーに対して重要なイベントが発生したことを通知する。この行動はセキュリティ機能によって検証された後、ユーザーの権限を与えられる。
影響.
ソフトウェアエージェントは複雑なタスクや繰り返し行うべきタスクを自動化し、それによってさまざまな利益をユーザーに提供する。しかし、ソフトウェアエージェントを実装する際には、このテクノロジーの組織への影響や文化への影響を考慮する必要がある。
組織への影響.
組織への影響としては、電子商取引全体の形質転換、操作上の障害、セキュリティ過負荷などを含む。ソフトウェアエージェントはインターネット上で素早く検索でき、最善の申し出を識別し、その情報をまとめてエンドユーザーに提供できる。したがって、ユーザーは様々な販売業者のウェブサイトをいちいちブラウズすることなく、数秒で最も条件のよい売り手を探し当てることができる。それにより価格競争が激化し、同時に電子商取引全体が均一な価格競争市場へと変質することになる。またエージェントの実装には追加のリソースが必要であり、ネットワークの負荷を増やし、新たなセキュリティ対策の追加も必要となる。
仕事の満足度への影響.
人々は、簡単な仕事の反復が結果に影響しない限り、簡単な仕事をこなすことで成功の感覚を得ることを好む。労働者は自分の仕事を管理することを面倒に感じることが多く、そういった管理面を実行するソフトウェアエージェントの実装は仕事満足度を向上させることになる。それにより労働者は本来の職務により多くの時間をかけられるようになる。それゆえ、ソフトウェアエージェントを活用することで階層的管理や干渉をなくし、労働者が自分で自分の仕事を管理できる可能性がある。
文化的影響.
ソフトウェアエージェントの実装による文化面の影響として、信頼感・スキルの喪失、プライバシー侵害、社会的孤立などがある。重要なタスクをソフトウェアに任せることを必ずしも誰もが完全に快適と感じるわけではない。知的エージェントに依存するようになると、例えば情報リテラシーに関連する重要なスキルを失うかもしれない。ユーザーエージェントを使用するには、ユーザーの個人的好みなど詳細なプロフィールを必要とする。そのことが予測不能なプライバシー問題を生じる可能性もある。コミュニケーション活動においてソフトウェアエージェントに依存するようになると、エージェントの目を通してのみ他人とコンタクトするようになる可能性もある。知的エージェント技術を扱うにあたっては、そういった影響を考慮する必要がある。