コンピュータサイエンスにおいて、ソフトウェアエージェントとは、代理関係においてユーザーまたは別のプログラムのために動作するコンピュータプログラムです。
エージェントという用語は、ラテン語の agere (行う)に由来しており、代理で行動する合意を意味します。このような「代理行動」は、適切な行動があればそれを決定する権限があることを意味します。 [1] [2]一部のエージェントは、ロボットに由来して、口語的にボットと呼ばれています。エージェントは、実行がロボット本体とペアになっている場合や、Siriなどのモバイルデバイス上で実行されるチャットボットなどのソフトウェアとして具現化される場合があります。ソフトウェアエージェントは、自律的である場合もあれば、他のエージェントまたは人々と連携して動作する場合もあります。人と対話するソフトウェアエージェント (チャットボット、人間とロボットの対話環境など) は、自然言語理解や発話、性格など、人間のような性質を備えている場合もあれば、ヒューマノイドの形を具現している場合もあります ( Asimo を参照)。
関連する派生概念には、インテリジェント エージェント(特に推論などの人工知能の側面を示す)、自律エージェント(目的を達成するための方法を変更できる)、分散エージェント (物理的に別々のコンピューター上で実行される)、マルチエージェント システム(単一のエージェントだけでは達成できない目的を達成するために連携して動作する分散エージェント)、およびモバイル エージェント(実行を異なるプロセッサーに再配置できるエージェント) などがあります。
コンセプト
自律型ソフトウェア エージェントの基本的な属性は次のとおりです。
- 厳密にはタスクのために呼び出されるのではなく、自らを活性化する。
- ホスト上で待機状態になり、コンテキストを認識し、
- 開始条件に応じてホスト上で実行ステータスを取得できる場合があります。
- ユーザーの操作を必要としない、
- 通信を含む他のタスクを呼び出す場合があります。

「エージェント」という用語は、メソッド、関数、オブジェクトなどのOOP用語と同様に、ソフトウェアの抽象化、アイデア、または概念を表します。 [要出典]エージェントの概念は、ホストに代わってタスクを実行するために、ある程度の自律性を持って動作できる複雑なソフトウェア エンティティを説明する便利で強力な方法を提供します。ただし、メソッドと属性の観点から定義されるオブジェクトとは異なり、エージェントはその動作の観点から定義されます。[3]
様々な著者がエージェントの異なる定義を提案しているが、一般的には次のような概念が含まれる。
- 永続性(コードは要求に応じて実行されるのではなく、継続的に実行され、いつ何らかのアクティビティを実行するかを自動的に決定します)
- 自律性(エージェントは、タスクの選択、優先順位付け、目標指向行動、人間の介入なしの意思決定を行う能力を持つ)
- 社会的能力(エージェントは何らかのコミュニケーションと調整を通じて他のコンポーネントと関わることができ、タスクで協力することもあります)
- 反応性(エージェントは自分が動作するコンテキストを認識し、それに適切に反応します)。
エージェントとプログラムの区別
すべてのエージェントはプログラムですが、すべてのプログラムがエージェントであるわけではありません。この用語を関連する概念と比較すると、その意味が明確になる場合があります。Franklin & Graesser (1997) [4] は、エージェントと任意のプログラムを区別する 4 つの重要な概念、つまり環境への反応、自律性、目標指向性、および持続性について説明しています。
直感的にエージェントとオブジェクトを区別する
- エージェントはオブジェクトよりも自律的です。
- エージェントは、反応的、能動的、社会的といった柔軟な動作をします。
- エージェントは少なくとも1つの制御スレッドを持ちますが、それ以上のスレッドを持つ場合もあります。[5]
エージェントとエキスパートシステムの区別
- エキスパート システムは環境と結合されていません。
- エキスパート システムは、反応的、能動的な動作を目的として設計されていません。
- エキスパートシステムは社会的能力を考慮しない。[5]
インテリジェントソフトウェアエージェントとAIのインテリジェントエージェントの区別
- インテリジェント エージェント(合理的エージェントとも呼ばれる) は単なるコンピュータ プログラムではありません。機械、人間、人間のコミュニティ (企業など)、または目標指向的な動作が可能なものであれば何でもかまいません。
- (ラッセル&ノーヴィグ 2003)
ソフトウェアエージェントの影響
ソフトウェアエージェントは、複雑なタスクや反復的なタスクを自動化することで、エンドユーザーにさまざまなメリットをもたらす可能性があります。[6]ただし、ソフトウェアエージェントを実装する前に、このテクノロジが組織的および文化的な影響を与える可能性があることを考慮する必要があります。
組織への影響
仕事の満足度と職務満足度の影響
人々は、単純なタスクの繰り返しが全体的な成果に影響を及ぼさない限り、成功感が得られる簡単なタスクを実行することを好みます。一般的に、管理要件を実行するソフトウェアエージェントを実装すると、仕事の満足度が大幅に向上します。自分の仕事を管理することは労働者にとって決して満足のいくものではありません。解放された労力は、個々の仕事の実質的なタスクへのより高度な関与に役立ちます。したがって、ソフトウェアエージェントは、階層的な制御と干渉から解放された自己管理された仕事を実装するための基礎を提供することができます。[7]このような条件は、必要な正式なサポートのためのソフトウェアエージェントのアプリケーションによって確保できます。
文化的な影響
ソフトウェア エージェントの実装による文化的影響には、信頼の喪失、スキルの低下、プライバシーの喪失、社会的孤立などがあります。一部のユーザーは、重要なタスクをソフトウェア アプリケーションに完全に委任することにあまり抵抗を感じるかもしれません。インテリジェント エージェントのみに依存し始めたユーザーは、情報リテラシーなどに関する重要なスキルを失う可能性があります。ユーザーに代わって行動するために、ソフトウェア エージェントは、ユーザーのプロファイル (個人の好みを含む) を完全に理解している必要があります。これにより、予測できないプライバシーの問題が発生する可能性があります。ユーザーがソフトウェア エージェントに、特にコミュニケーション活動でより依存し始めると、他の人間のユーザーとの接触が失われ、エージェントの目で世界を見るようになる可能性があります。これらの結果は、エージェント研究者とユーザーがインテリジェント エージェント技術を扱う際に考慮しなければならないことです。[8]
歴史
エージェントの概念は、ヒューイットのアクター モデル(Hewitt、1977)にまで遡ることができます。「内部状態と通信機能を備えた、自己完結型でインタラクティブかつ同時実行可能なオブジェクト」[引用が必要]
より学術的に言えば、ソフトウェア エージェント システムは、マルチエージェント システム (MAS) の直接的な進化形です。MAS は、分散型人工知能(DAI)、分散型問題解決 (DPS)、並列 AI (PAI) から進化したため、DAI とAIのすべての特性 (良い点も悪い点も) を継承しています。
John Sculleyの 1987 年の「Knowledge Navigator」ビデオでは、エンド ユーザーとエージェントの関係のイメージが描かれました。理想的な最初の試みであったこの分野では、部分的なボトムアップ アプローチではなく、トップダウンの実装が次々と失敗しました。エージェントの種類は、現在 (1990 年以降) WWW、検索エンジンなど、多岐にわたります。
インテリジェントソフトウェアエージェントの例
バイヤーエージェント(ショッピングボット)
バイヤーエージェント[9]は、ネットワーク(インターネットなど)を巡回して商品やサービスに関する情報を取得します。これらのエージェントは「ショッピングボット」とも呼ばれ、CD、書籍、電子部品、その他の汎用製品などのコモディティ製品に対して非常に効率的に機能します。バイヤーエージェントは通常、電子商取引や従来のビジネスで使用されるデジタル決済サービスを可能にするように最適化されています。[10]
ユーザーエージェント(パーソナルエージェント)
ユーザー エージェント (パーソナル エージェント) は、ユーザーに代わってアクションを実行するインテリジェント エージェントです。このカテゴリには、次のタスクをすでに実行している、またはまもなく実行するインテリジェント エージェントが含まれます。
- 電子メールをチェックし、ユーザーの好みの順序に従って並べ替え、重要な電子メールが届いたときに通知します。
- 対戦相手としてコンピュータゲームをプレイしたり、ゲームエリアを巡回したりします。
- あなたに合わせてカスタマイズされたニュース レポートを作成します。CNN など、いくつかのバージョンがあります。
- 選択したテーマに関する情報を検索します。
- ウェブ上のフォームに自動的に入力し、将来の参照用に情報を保存します
- Webページをスキャンして、そこに含まれる情報の「重要な」部分を構成するテキストを探して強調表示します。
- あなたの最も深い恐怖からスポーツまで、さまざまなトピックについて話し合います
- 既知の求人掲示板をスキャンし、希望する基準を満たす求人に履歴書を送信することで、オンライン求人検索業務を促進します。
- 異機種ソーシャルネットワーク間でのプロファイル同期
監視・監視(予測)エージェント
監視エージェントは、機器(通常はコンピュータ システム)を監視して報告するために使用されます。エージェントは、会社の在庫レベルを追跡したり、競合他社の価格を監視して会社に報告したり、インサイダー取引や噂 による株価操作を監視したりします。

たとえば、NASA のジェット推進研究所には、在庫や計画を監視し、コストを抑えるために機器の注文をスケジュールし、食料貯蔵施設を管理するエージェントがいます。これらのエージェントは通常、ネットワークに接続されている各コンピューターの構成を追跡できる複雑なコンピューター ネットワークを監視します。
監視および監視エージェントの特殊なケースは、戦術的作戦中に人間の意思決定プロセスをエミュレートするために使用されるエージェントの組織です。エージェントは、資産の状態 (弾薬、使用可能な武器、輸送用プラットフォームなど) を監視し、上位レベルのエージェントから目標 (ミッション) を受け取ります。エージェントは、手元にある資産を使用して目標を追求し、資産の支出を最小限に抑えながら目標達成を最大化します。(Popplewell の「エージェントと適用性」を参照)
データマイニングエージェント
このエージェントは、情報技術を使用して、さまざまなソースからの大量の情報から傾向とパターンを見つけます。ユーザーは、この情報を整理して、探している情報を見つけることができます。
データ マイニング エージェントは、データ ウェアハウス内で動作して情報を検出します。「データ ウェアハウス」は、さまざまなソースからの情報をまとめます。「データ マイニング」とは、データ ウェアハウスを調べて、売上を増やす方法や、離脱を検討している顧客を維持する方法など、アクションを実行するために使用できる情報を検索するプロセスです。
「分類」は最も一般的なデータ マイニングの 1 つで、情報のパターンを見つけてさまざまなクラスに分類します。データ マイニング エージェントは、トレンドや主要な指標の大きな変化を検出したり、新しい情報の存在を検出して警告したりすることもできます。たとえば、エージェントは経済の建設業界の衰退を検出します。この中継された情報に基づいて、建設会社は従業員の雇用/解雇や機器の購入/リースに関して、会社に最適なインテリジェントな決定を下すことができます。
ネットワークと通信エージェント
現在のインテリジェント エージェントの他の例としては、スパムフィルター、ゲームボット、サーバー監視ツールなどがあります。検索エンジンのインデックス作成ボットもインテリジェント エージェントに該当します。
- ユーザーエージェント- World Wide Web を閲覧するためのもの
- メール転送エージェント- Microsoft Outlookなどの電子メールを提供します。理由: POP3コマンド プロトコルを理解しなくても、POP3 メール サーバーと通信します。ユーザーに代わってメールをフィルターするルール セットも備えているため、ユーザー自身がフィルターする手間が省けます。
- SNMPエージェント
- Unixスタイルのネットワークサーバーでは、httpdはワールドワイドウェブのルートでハイパーテキスト転送プロトコルを実装するHTTPデーモンです。
- 通信機器の管理に使用される管理エージェント
- 安全計画のための群衆シミュレーションや3Dコンピュータグラフィックス、
- ワイヤレスビーコン エージェントは、ワイヤレス レシーバーなどでホストされるより複雑なソフトウェア エージェントと組み合わせてワイヤレス ロックまたは電子リーシュを実装するための、単純なプロセスでホストされるシングル タスク エンティティです。
- 自律エージェント(意図的にノイズを装備)を使用して、オンライングループ内の調整を最適化する。[11]
ソフトウェア開発エージェント(別名ソフトウェアボット)
ソフトウェアボットはソフトウェアエンジニアリングにおいて重要になりつつあります。[12]
セキュリティエージェント
エージェントは、ソフトウェア セキュリティ アプリケーションでも使用され、さまざまな種類のコンテンツを傍受、調査、および操作します。例:
- データ損失防止(DLP)エージェント[13] - コンピュータまたはネットワーク上のユーザー操作を検査し、許可されたアクションを指定したポリシーと比較し、適切なアクション(許可、警告、ブロックなど)を実行します。より包括的なDLPエージェントを使用して、EDR機能を実行することもできます。
- エンドポイント検出および対応(EDR)エージェント - エンドポイントコンピュータ上のすべてのアクティビティを監視し、悪意のあるアクティビティを検出して対応します。
- クラウド アクセス セキュリティ ブローカー (CASB) エージェント - DLP エージェントに似ていますが、クラウド アプリケーションに送信されるトラフィックを検査します。
設計上の問題
エージェントベースシステムの開発で考慮すべき問題には以下が含まれる。
- タスクのスケジュール方法とタスクの同期方法
- エージェントによるタスクの優先順位付け方法
- エージェントが協力したり、リソースを募集したりする方法
- エージェントを異なる環境で再インスタンス化する方法、その内部状態を保存する方法、
- 環境がどのように調査されるか、そして環境の変化がエージェントの行動の変化にどのようにつながるか
- メッセージングとコミュニケーションをどのように実現するか
- どのようなエージェント階層が有用か (例: タスク実行エージェント、スケジュール エージェント、リソース プロバイダーなど)。
ソフトウェア エージェントが効率的に連携するには、データ要素のセマンティクスを共有する必要があります。これは、コンピュータ システムにメタデータを公開させることで実現できます。
エージェント処理の定義には、相互に関連する 2 つの方向からアプローチできます。
- 内部状態処理と知識表現のためのオントロジー
- 対話プロトコル– タスクの通信を指定するための標準
エージェント システムは、同時実行性または並列処理を備えた現実世界のシステムをモデル化するために使用されます。
- エージェントマシン – さまざまなレベルの知能をサポートするさまざまな種類のエンジン
- エージェントコンテンツ – 推論と学習において機械が使用するデータ
- エージェントアクセス – 機械がコンテンツを認識し、推論の結果としてアクションを実行できるようにする方法
- エージェントセキュリティ – 分散コンピューティングに関連する懸念事項、さらにエージェントに関連するいくつかの特別な懸念事項
エージェントは、アクセス メソッドを使用してローカル データベースおよびリモート データベースにアクセスし、コンテンツを探します。これらのアクセス メソッドには、エージェントへのニュース ストリーム配信の設定、掲示板からの取得、スパイダーを使用した Web の閲覧などがあります。この方法で取得されるコンテンツは、ニュースフィードまたは検索対象のデータベースの選択によって、すでに部分的にフィルタリングされている可能性があります。次に、エージェントは詳細な検索または言語処理の仕組みを使用して、受信または取得されたコンテンツの本体からキーワードまたはシグネチャを抽出します。この抽象化されたコンテンツ (またはイベント) は、エージェントの推論または推論の仕組みに渡され、新しいコンテンツをどのように処理するかが決定されます。このプロセスでは、イベント コンテンツと、ユーザーによって提供されたルール ベースまたは知識コンテンツが結合されます。このプロセスで新しいコンテンツに適切なヒットまたは一致が見つかった場合、エージェントは別の仕組みを使用して、そのコンテンツに対してより詳細な検索を実行します。最後に、エージェントは新しいコンテンツに基づいてアクションを実行することを決定します。たとえば、重要なイベントが発生したことをユーザーに通知します。このアクションはセキュリティ機能によって検証され、その後、ユーザーの権限が与えられます。エージェントは、ユーザー アクセス メソッドを使用して、そのメッセージをユーザーに配信します。ユーザーが通知に迅速に対応してイベントが重要であることを確認した場合、エージェントは学習メカニズムを使用して、この種のイベントの重み付けを増やすこともできます。
ボットは作成者に代わって善行も悪行も行う。ボットが善意で設計されており、害を及ぼす目的で作られていないことを示すためにボットを作成する方法はいくつかある。まず、ボットがサイトと通信する際にユーザーエージェント HTTP ヘッダーで自身を識別させることでこれを実現する。ソース IP アドレスも検証して、正当なものであることを証明する必要がある。次に、ボットはサイトの robots.txt ファイルを常に尊重する必要がある。これは、ほとんどの Web で標準となっているためである。また、robots.txt ファイルを尊重するのと同様に、ボットは攻撃的になりすぎないようにし、クロール遅延の指示を尊重する必要がある。[14]
エージェントの概念とフレームワーク
- DAML (DARPA エージェント マークアップ言語)
- 3APL (人工自律エージェントプログラミング言語)
- GOALエージェントプログラミング言語
- オープンエージェントアーキテクチャ(OAA)
- ウェブオントロジー言語(OWL)
- Unix ライクなシステムのデーモン。
- Java エージェント テンプレート(JAT)
- Java エージェント開発フレームワーク(JADE)
- SARL エージェント プログラミング言語(おそらくアクター指向であり、エージェント指向ではないパラダイム)
参照
参考文献
- ^ Nwana, H. S. (1996). 「ソフトウェアエージェント: 概要」. Knowledge Engineering Review . 21 (3): 205–244. CiteSeerX 10.1.1.50.660 . doi :10.1017/s026988890000789x. S2CID 7839197.
- ^ Schermer, B. W. ( 2007). ソフトウェアエージェント、監視、プライバシーの権利: エージェント対応監視の法的枠組み(ペーパーバック)。第 21 巻。ライデン大学出版局。pp. 140、205–244。hdl :1887/ 11951。ISBN 978-0-596-00712-6. 2012年10月30日閲覧。
- ^ Wooldridge, M.; Jennings, NR (1995). 「インテリジェントエージェント: 理論と実践」. 10 (2). ナレッジエンジニアリングレビュー: 115–152.
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ Franklin, S.; Graesser, A. (1996). 「それはエージェントか、それとも単なるプログラムか?: 自律エージェントの分類法」。インテリジェントエージェント III エージェント理論、アーキテクチャ、言語。コンピュータサイエンスの講義ノート。第 1193 巻。メンフィス大学、インテリジェントシステム研究所。pp. 21–35。doi :10.1007/ BFb0013570。ISBN 978-3-540-62507-0。
- ^ ab Wooldridge, Michael J. (2002). マルチエージェントシステム入門. ニューヨーク: John Wiley & Sons. p. 27. ISBN 978-0-471-49691-5。
- ^ Serenko, A.; Detlor, B. (2004). 「イノベーションとしてのインテリジェントエージェント」(PDF) . 18 (4): 364–381.
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ Adonisi, M. (2003). 「企業家精神、市場志向、組織の柔軟性、職務満足度の関係」(PDF) (論文). プレトリア大学経済学・経営科学部.
- ^ Serenko, A.; Ruhi, U.; Cocosila, M. (2007). 「インテリジェントエージェントのインターネット利用に対する計画外の影響: ソーシャルインフォマティクスアプローチ」(PDF) . 21 (1–2). 人工知能と社会: 141–166.
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ Haag, Stephen (2006). 「情報化時代の経営情報システム」: 224–228 ページ。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ 「ビジネスへの影響を最大化 | Facebook チャットボットの使用方法」Keystone Click 2016 年 8 月 26 日。2017 年9 月 7 日閲覧。
- ^ Shirado, Hirokazu; Christakis, Nicholas A (2017). 「ネットワーク実験において、局所的にノイズの多い自律エージェントが人間のグローバルな協調を改善する」。Nature . 545 ( 7654): 370–374. Bibcode :2017Natur.545..370S. doi : 10.1038/nature22332. PMC 5912653. PMID 28516927.
- ^ Lebeuf, Carlene; Storey, Margaret-Anne; Zagalsky, Alexey (2018). 「ソフトウェアボット」. IEEE ソフトウェア. 35 : 18–23. doi :10.1109/MS.2017.4541027. S2CID 31931036.
- ^ https://info.digitalguardian.com/rs/768-OQW-145/images/SC-Labs-DLP-GROUP-TEST-AND-DG-REVIEW.pdf?field_resource_type_value=analyst-reports [単なる URL PDF ]
- ^ 「善良なボットの規範に従って生きる方法」。DARKReading 、Information Worldより。2017年9月27日。 2017年11月14日閲覧。
外部リンク
- ソフトウェアエージェント:概要、Hyacinth S. Nwana。Knowledge Engineering Review、11(3):1–40、1996年9月。ケンブリッジ大学出版局。
- FIPA インテリジェント物理エージェント財団
- JADE Java エージェント開発フレームワークは、Telecom Italia Labs が開発したオープンソース フレームワークです。
- ヨーロッパソフトウェアエージェント研究センター 2017-09-14 にWayback Machineでアーカイブ
- SemanticAgent JADE 上で SWRL ベースのエージェントを開発するためのオープンソース フレームワーク
- Mobile-C モバイル C/C++ エージェント用のマルチエージェント プラットフォーム。
- HLL 高レベルロジック (HLL) オープン ソース プロジェクト。
- PHP および Java 開発者がソフトウェアエージェントを作成するためのオープンソースプロジェクト KATO
