(57)【特許請求の範囲】
【請求項１】
ネットワークによって接続された複数のノード間を移動し、各ノードに設けられたノードマネージャに制御されて情報処理を実行するソフトウェアであるエージェントの挙動を表示するために、各ノードに設けられるエージェントモニター装置において、
エージェントの各状態の内容に応じた画像情報を記憶する手段と、
エージェントの状態を読み込む手段と、
読み込んだエージェントの状態に応じた前記画像情報を用いて、所定のキャラクタを表示する手段とを備え、
前記所定のキャラクタを表示する手段が、一画面上に、エージェントの適用分野に依存しないエージェントの基本的な状態を画像表示する基本状態表示部と、適用分野ごとのエージェントの詳細な状態を表示する詳細状態表示部とを同時に表示する表示装置と、この表示装置上における前記基本状態表示部と詳細状態表示部に対して、それぞれエージェントを表示させるための基本状態表示制御部と詳細状態表示制御部とを備え、かつ、前記基本状態表示制御部と詳細状態表示制御部は、前記基本状態表示部と詳細状態表示部とに対して、エージェントが自分のノードに存在する場合にキャラクタを出現させ、自分のノードから退去した場合にキャラクタを消滅させることによって、自他ノード間でのエージェントの移動を表示するように構成されたことを特徴とするエージェントモニター装置。
【請求項２】
ネットワークによって接続された複数のノード間を移動するソフトウェアであるエージェントを、各ノードに設けられたノードマネージャによって制御して情報処理を実行させる場合に、前記エージェントの状態を表示するためのエージェントモニター方法において、
エージェントの各状態の内容に応じた画像情報を記憶するステップと、
エージェントの状態を読み込むステップと、
読み込んだエージェントの状態に応じた前記画像情報を用いて、所定のキャラクタを表示するステップとを備え、
前記所定のキャラクタを表示するステップが、一画面上に、エージェントの適用分野に依存しないエージェントの基本的な状態を画像表示する基本状態表示部と、適用分野ごとのエージェントの詳細な状態を表示する詳細状態表示部とを同時に表示する表示処理と、
前記基本状態表示部と詳細状態表示部に対して、前記エージェントが自分のノードに存在する場合にキャラクタを出現させ、自分のノードから退去した場合にキャラクタを消滅させることによって、自他ノード間でのエージェントの移動を表示する処理を含むことを特徴とするエージェントモニター方法。
【請求項３】
情報処理の実行主体であるエージェントが移動して情報処理を行うための複数のノードと、前記エージェントの挙動を表示してモニターするためのエージェントモニター装置とを有する情報処理装置において、
前記ノードは、エージェントがとりうるアクションの情報と各ノードに存在するソフトウェア要素の情報を記憶する手段と、
与えられたゴールを達成するためにエージェントが実行すべきプランを前記各情報に基づいて生成する手段と、
生成されたプランを実行することによってエージェントの振る舞いを実現する手段と、プラン中の移動命令に基づいてエージェントをノード間で移動させる手段とを有し、
前記プランを生成する手段は、プランの実行又は前記移動が失敗した場合に、必要に応じて再度プランを生成するように構成され、
前記エージェントモニター装置は、エージェントの状態の内容に応じた画像情報を記憶する手段と、エージェントの状態を読み込む手段と、読み込んだエージェントの状態に応じた前記画像情報を用いて、所定のキャラクタを表示する手段とを有し、
前記所定のキャラクタを表示する手段が、一画面上に、エージェントの適用分野に依存しないエージェントの基本的な状態を画像表示する基本状態表示部と、適用分野ごとのエージェントの詳細な状態を表示する詳細状態表示部とを同時に表示する表示装置と、この表示装置上における前記基本状態表示部と詳細状態表示部に対して、それぞれエージェントを表示させるための基本状態表示制御部と詳細状態表示制御部とを備え、かつ、前記基本状態表示制御部と詳細状態表示制御部は、前記基本状態表示部と詳細状態表示部とに対して、エージェントが自分のノードに存在する場合にキャラクタを出現させ、自分のノードから退去した場合にキャラクタを消滅させることによって、自他ノード間でのエージェントの移動を表示するように構成されたことを特徴とする情報処理装置。
【請求項４】
情報処理の実行主体であるエージェントを複数のノード上で移動させて情報処理を行うステップと、前記エージェントの挙動を表示してモニターするためのステップとを有する情報処理方法において、
前記情報処理のステップは、エージェントがとりうるアクションの情報と各ノードに存在するソフトウェア要素の情報を記憶するステップと、
与えられたゴールを達成するためにエージェントが実行すべきプランを前記各情報に基づいて生成するステップと、
生成されたプランを実行することによってエージェントの振る舞いを実現するステップと、プラン中の移動命令に基づいてエージェントをノード間で移動させるステップとを有し、
前記プランを生成するステップは、プランの実行又は前記移動が失敗した場合に、必要に応じて再度プランを生成するように構成され、
前記エージェントをモニターするステップは、エージェントの状態の内容に応じた画像情報を記憶するステップと、エージェントの状態を読み込むステップと、読み込んだエージェントの状態に応じた前記画像情報を用いて、所定のキャラクタを表示するステップとを有し、
前記所定のキャラクタを表示するステップが、一画面上に、エージェントの適用分野に依存しないエージェントの基本的な状態を画像表示する基本状態表示部と、適用分野ごとのエージェントの詳細な状態を表示する詳細状態表示部とを同時に表示する表示処理と、
前記基本状態表示部と詳細状態表示部に対して、前記エージェントが自分のノードに存在する場合にキャラクタを出現させ、自分のノードから退去した場合にキャラクタを消滅させることによって、自他ノード間でのエージェントの移動を表示する処理を含むことを特徴とする情報処理方法。
【請求項５】
情報処理の実行主体であるエージェントを複数のノード上で移動させて情報処理を行うステップと、前記エージェントの挙動を表示してモニターするためのステップとを含む情報処理方法を実現するコンピュータプログラムを記録した記録媒体において、
前記情報処理のステップは、エージェントがとりうるアクションの情報と各ノードに存在するソフトウェア要素の情報を記憶するステップと、
与えられたゴールを達成するためにエージェントが実行すべきプランを前記各情報に基づいて生成するステップと、
生成されたプランを実行することによってエージェントの振る舞いを実現するステップと、プラン中の移動命令に基づいてエージェントをノード間で移動させるステップとを有し、
前記プランを生成するステップは、プランの実行又は前記移動が失敗した場合に、必要に応じて再度プランを生成するように構成され、
前記エージェントをモニターするステップは、エージェントの状態の内容に応じた画像情報を記憶するステップと、エージェントの状態を読み込むステップと、読み込んだエージェントの状態に応じた前記画像情報を用いて、所定のキャラクタを表示するステップとを有し、
前記所定のキャラクタを表示するステップが、一画面上に、エージェントの適用分野に依存しないエージェントの基本的な状態を画像表示する基本状態表示部と、適用分野ごとのエージェントの詳細な状態を表示する詳細状態表示部とを同時に表示する表示処理と、
前記基本状態表示部と詳細状態表示部に対して、前記エージェントが自分のノードに存在する場合にキャラクタを出現させ、自分のノードから退去した場合にキャラクタを消滅させることによって、自他ノード間でのエージェントの移動を表示する処理を含むことを特徴とするコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エージェントシステムで動作するエージェントの状態を表示してユーザにモニターさせるためにエージェントモニター装置に関するものである。
【０００２】
【従来の技術】
エージェントシステムは、エージェントを用いた情報処理システムの総称である。エージェントとは、ユーザの作業を代行しておこなうソフトウエア上の実行主体であり、目的を達成するための自律性を有する。エージェントは、インタフェースエージェント、モバイルエージェント、ネットワークエージェント、マルチエージェントに分類されている（西田豊明：ソフトウエアエージェント、pp.44-51、人工知能学会誌Vol.10,No.5,1995) 。エージェントシステムの形態には、単一のエージェントによるものと複数のエージェントによるものが考えられる。
【０００３】
エージェントシステムの一例は、次のようなものである。複数のノードをネットワークに接続する。ユーザが任意のノードに情報処理の目的を入力すると、エージェントが生成される。各ノードには、エージェントがどのようなアクションをとれるかという情報が用意されている。このアクションを組み合わせて、エージェントは、目的を達成するためのプランを作成する。プランは、どの種類のアクションをどの順序で実行すれば目的が達成されるか表す行動計画で、他のノードに移動する移動命令も、必要に応じて組み込むことができる。エージェントは、作成したプランを実行し、プラン中に移動命令が登場すると指定されたノードへ移動し、移動先で動作を続ける。
【０００４】
実際には、各ノードには、プランを作成する手段、プランを実行する手段、エージェントの生成・消滅やノード間移動を行う手段、といった機能別のモジュールが設けられていて、これらのモジュールの働きによって上記のようなエージェントの動作が実現される。
【０００５】
多くのエージェントシステムは、このようなネットワーク環境や分散環境下において動作しており、このような環境において、ユーザがシステムの動作を把握するためには、どのような情報をどのように表示するかが重要な問題となる。たとえば、単一のエージェントが動作するシステムであれば、エージェントの状態、特に、ネットワークのノード間で移動する機能をもったエージェントの場合には、エージェントの現在位置などの情報をユーザに表示することが必要である。また、複数のエージェントが動作するマルチエージェントシステムの場合には、それぞれのエージェントの状況、エージェント間の関係などの情報を、理解容易な形でユーザに提供することが必要である。さらに、移動機能をもつエージェントを含んでいる場合には、これらの情報に加えてエージェントの移動位置に関する情報も考慮することが必要である。これらの情報は、ユーザがエージェントシステムを開発したり、改善したり、効果的に活用するために不可欠である。
【０００６】
この点を考慮して、現在用いられているエージェントシステムの多くにおいて、単一又は複数のエージェントについて、状況を表示する機能が提供されており、さらに、エージェントの状況表示のためにＧＵＩを備えているシステムも知られている（小野、黒田：JAVAの世界を広げる最新エージェント・テクノロジー、pp.134-141, No.2, JAVAWORLD, 1997)。
【０００７】
【発明が解決しようとする課題】
しかしながら、これらのＧＵＩでは、エージェントの状況に関する情報がテキスト形式で表示されるものが多く、ユーザがエージェントの状況を把握することは容易ではなかった。特に、複数のエージェントが複数の実行環境に分散している複雑な条件のもとでは、文字のみで各エージェントのふるまいを把握することは困難で、このため、システム全体のふるまいを理解することも困難であった。
【０００８】
本発明は、上記のような従来技術の問題点を解決するために提案されたもので、その目的は、エージェントの挙動、特に、エージェントが何をしているのかと行った状態や、ノード間でのエージェントの移動を容易に理解できるエージェントモニター装置を提供することである。
【０００９】
【課題を解決するための手段】
上記の目的を達成するため、請求項１の発明は、ネットワークによって接続された複数のノード間を移動し、各ノードに設けられたノードマネージャに制御されて情報処理を実行するソフトウェアであるエージェントの挙動を表示するために、各ノードに設けられるエージェントモニター装置において、エージェントの各状態の内容に応じた画像情報を記憶する手段と、エージェントの状態を読み込む手段と、読み込んだエージェントの状態に応じた前記画像情報を用いて、所定のキャラクタを表示する手段とを備え、前記所定のキャラクタを表示する手段が、一画面上に、エージェントの適用分野に依存しないエージェントの基本的な状態を画像表示する基本状態表示部と、適用分野ごとのエージェントの詳細な状態を表示する詳細状態表示部とを同時に表示する表示装置と、この表示装置上における前記基本状態表示部と詳細状態表示部に対して、それぞれエージェントを表示させるための基本状態表示制御部と詳細状態表示制御部とを備え、かつ、前記基本状態表示制御部と詳細状態表示制御部は、前記基本状態表示部と詳細状態表示部とに対して、エージェントが自分のノードに存在する場合にキャラクタを出現させ、自分のノードから退去した場合にキャラクタを消滅させることによって、自他ノード間でのエージェントの移動を表示するように構成されたことを特徴とする。
【００１０】
請求項２の発明は、前記請求項１の発明を方法の観点から把握したものである。また、請求項３の発明は、請求項１の発明のエージェントモニター装置を備えた情報処理装置に関するものである。請求項４の発明は、請求項３の発明を方法の観点から把握したものであり、請求項５の発明は、請求項３の発明をコンピュータ読取可能な記録媒体の観点から把握したものである。
【００１１】
前記のような本発明では、エージェントの挙動を内容に応じて、例えば、プランの生成・実行・ノード間の移動・それらの成功や失敗などに応じて、異なった表情・動作・表示形態のキャラクタで表示する。これによって、各エージェントやシステム全体の挙動が、視覚を通じてリアルタイムかつ容易に理解できる。このため、エージェントが正常に動作するかを試験するなどの作業が効率化される。特に、ノード間でのエージェントの移動がキャラクタの出没で視覚的に表示されることによって理解容易になる。例えば、エージェントがノードに到着すると、擬人化されたＧＵＩ上の人物がウィンドウ上に表れ、エージェントがノードを離脱するとその人物の表示が消える。
【００１２】
また、本発明において、基本状態表示部は、プラン生成、実行、成功、失敗、到着、出発、不在など、エージェントの適用分野に依存しないエージェントの基本的な状態について、各状態に対応する画像の表示によって、エージェントの基本的な状態を表示する。詳細状態表示部は、基本的な状態のみでは表現できない複雑な状態、典型的には、適用分野特有の所定の実行コマンドごとのエージェントの状態に対応する画像を表示する。特に、本発明は、表示装置の一画面上に、基本状態表示部と詳細状態表示部とを同時に表示させることができるように構成しているので、エージェントの状態を多面的に捉えることが可能となる利点がある。
【００１３】
さらに、本発明では、プラン生成の際にソフトウェア要素の情報が用いられる。このため、ソフトウェアの所在などシステム構成が変更されても、前記情報の更新によって変更に対応したプラン生成が可能となる。また、移動先のノードでもエージェントの動作は継続され、必要に応じて再度のプランニングも行われるので、柔軟な情報処理が実現される。そして、このような複雑な動作もキャラクタの画像によって表示されるので、視覚を通じて容易に理解することができる。
【００１４】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。なお、本発明は、通常、コンピュータと周辺機器をプログラムで制御することによって実現される。この場合、前記プログラムによって制御されるＣＰＵが、コンピュータの各種ハードウェア資源を活用することによって本発明の効果を奏する。ハードウェア資源としては、ＣＰＵの他、メモリやディスクドライブなどの記憶装置、キーボードやマウスなどの入力装置、画像表示装置やプリンタなどの出力装置が考えられる。ただし、コンピュータや周辺機器の構成は多様であり、これらのハードウェア資源は、種類や構成を適宜変更して用いることができる。このため、本出願では、「○○部」のように、本発明の機能を実現する仮想的回路ブロックを用いて本発明を説明する。
【００１５】
（１）構成
まず、図１は、本実施形態の全体構成を示す機能ブロック図である。すなわち、本実施形態は、複数のノードＸをネットワークＮで接続した情報処理システムに、本発明のエージェントモニター装置（以下「モニター装置」と略称する）を適用したものである。各ノードＸは、エージェントの動作を実現するノードマネージャ１と、エージェントの動作を表示してモニターするためのモニター装置３７とを組み合わせて構成される。
【００１６】
次に、図２は、各ノードＸの構成を示す機能ブロック図である。この図において、ノードマネージャ１は、エージェントを管理すると共に、エージェントの各種動作を実現する部分で、エージェント生成部２から動作ログ出力部２９までの必要な各構成部分を有する。
【００１７】
このノードマネージャ１の主な構成要素は次のようなものである。すなわち、まず、各ノードＸのノードマネージャ１は、図１に示すように、エージェントによる情報処理の目的であるゴールを入力するための入力手段Ｉと、エージェントのプラン作成に用いる情報を保持する情報データベースＤとを有する。ここでいう情報は、エージェントがどのようなアクションを取りうるかという情報と、どのノードにどのようなソフトウェア要素が存在するかという情報である。この場合、ソフトウェア要素としては、ファイルや処理モジュールの種別や名称などが挙げられる。ファイルがどのノードにあるかといったシステム構成が変更されても、ソフトウェア要素の情報の更新によって、システム構成の変更をプランの内容に反映させることができる。
【００１８】
そして、ノードマネージャ１は、図２に示すように、エージェントを生成するエージェント生成部２と、与えられたゴールを達成するためにエージェントが実行すべきプランを生成して所定の記憶領域に出力するプラン生成部１９とを有する。また、ノードマネージャ１は、生成されたプランを、エージェントが取るべき行動内容として前記記憶領域から順次入力するエージェント入力部３と、プラン中の実行開始位置を各時点で検出する実行開始位置検出部６と、プランとして作成されたスクリプトの終了を判定するスクリプト終了判定部８と、プランを実行することによってエージェントの振る舞いを実現する実行部１５とを有する。
【００１９】
また、ノードマネージャ１は、プラン中の移動命令を検出する移動検出部２８と、検出された移動命令に基づいてエージェントを他のノードに移動させる移動処理部２６と、不要になったエージェントを消滅させるエージェント消去部１４とを有する。
【００２０】
また、ノードマネージャ１は、プラン生成の失敗を検出するプラン生成失敗検出部１７と、プラン実行の失敗を検出する実行失敗検出部２１と、エージェントのノード間移動の失敗を検出する移動失敗検出部２４とを有し、プラン生成部１９は、プラン実行や移動が失敗した場合は、必要に応じて再度プランを生成するように構成されている。また、ノードマネージャ１は、ノードマネージャ１の動作のログ（履歴）を出力するための動作ログ出力部２９を有する。
【００２１】
そして、特定のノードに存在する複数個のエージェントは、ノード単位に設置されるノード・マネージャにより一括管理される。モニター装置３７は、ノード・マネージャ１が管理するエージェントの状態を視覚的かつリアルタイムにユーザへ通知する装置である。
【００２２】
ノードマネージャ１は、モニタースクリプトをモニター装置３７へ順次送信する。モニタースクリプトは、ノードマネージャ１が管理するエージェントの状態を表す文字列データである。
【００２３】
モニター装置３７を構成するにあたって、エージェントがとりうる状態ごとに、擬人化したＧＵＩ上の人物画像（以下「エージェント画像」と呼ぶ。）を作成し、表示画像ファイル４６に記憶させておく。モニター装置３７は、表示装置としてＣＲＴ４７を有し、ＣＲＴ４７の表示部分は、それぞれ異なる機能を果たす部分に３分割（上下２分割、さらに上半分を左右に２分割）されており、テキスト表示部４７３（右上）、基本状態表示部４７０（左上）、詳細状態表示部４７４（下）に分けられる。
【００２４】
このうち、テキスト表示部４７３は、ノード・マネージャ１から送られてくるモニター・スクリプトを、動作ログとして順次文字表示することによりエージェントの状態をテキスト形式でユーザへ通知する部分である。基本状態表示部４７０は、プラン生成、実行、成功、失敗、到着、出発、不在など、エージェントの適用分野に依存しないエージェントの基本的な状態について、各状態に対応するタイトル画像およびエージェント画像の表示によって、エージェントの基本的な状態をユーザへ通知する部分である。なお、タイトル画像は、エージェントの状態の名称を表した画像である。詳細状態表示部４７４は、予め用意された適用分野ごとのタイトル画像およびエージェント画像の表示により、エージェントの詳細な状態をユーザへ通知する部分である。
【００２５】
すなわち、エージェントは、あらゆる分野に適用可能なため、その適用分野によっては、基本的な状態のみでは表現できない複雑な状態が生じる。詳細状態表示部４７４に表示される情報は、その複雑な状態を詳細に表示するために用意されるもので、典型的には、適用分野特有の所定の実行コマンドごとに、エージェントの状態に対応する画像が表示される。なお、ＣＲＴ４７の表示部分の画面構成例を図３に示す。
【００２６】
また、モニター制御装置３７は、前記各部分４７０，４７４，４７３の表示内容を制御する基本状態表示制御部３８、詳細状態表示制御部３９、テキスト表示制御部４０を有する。これら各制御部３８〜４０は、以下、「モニター制御装置」と総称するが、これらは例えばアプレットを用いて実装される。
【００２７】
また、ここで用いるタイトル画像およびエージェント画像等の画像ファイルは、ページ記述言語により予めウェブ・ブラウザ上に表示可能なＨＴＭＬファイルとしておき、必要時にウェブ・ブラウザのページとして表示する。ここで、エージェントの基本的な状態にどのような種類があるかを表１に、各状態に対応する図柄の内容を表２に示す。
【表１】
0003803458.tif 000002
【００２８】
【表２】
0003803458.tif 000003
【００２９】
すなわち、上記のように、表示画像ファイル４６は、エージェントの挙動の内容に応じた画像情報を記憶する手段である。また、ノードマネージャからモニター装置３７へモニタースクリプトの送信する経路３０〜３６は、エージェントの挙動を読み込む手段である。また、制御部３８〜４０及びＣＲＴ４７は、読み込んだエージェントの挙動に応じた前記画像情報を用いて、所定のキャラクタを表示する手段である。
【００３０】
（２）作用
（２−１）エージェントの動作
上記のような構成を有する本実施形態では、エージェントは、次のような動作からなるライフサイクルによって情報処理を行う。図４は、エージェントの各動作からなるライフサイクルを示す図である。この図に示すように、まず、処理開始時には（動作Ａ１）、任意のノードにおいて、ユーザがノードマネージャに対してゴールを与える、すなわち投入することにより、そのノードのノードマネージャがエージェントを生成する（動作Ａ２）。生成されるエージェントの目的は、与えられたゴールを達成する事である。
【００３１】
生成されたエージェントは、与えられたゴールを達成するプランニングを行い（動作Ａ３）、成功するとその出力としてエージェントのプログラムであるプランとして、スクリプトを生成する（動作Ａ７）。しかし、プランニング自体に失敗する場合もあり（動作Ａ４）、この場合は、エージェントの実行は完全に失敗する（動作Ａ５）。
【００３２】
プランニングに成功した場合、生成されたスクリプトを実行する実行フェーズに移行する（動作Ａ７）。この実行フェーズでは、スクリプトに含まれる各種のコマンドが実行される（動作Ａ９）。エージェントによるコマンドの実行は、エラーを発生して失敗する可能性もある。この場合は、再びプランニングフェーズに戻り（動作Ａ８）、最初に与えたゴール、または実行が失敗したコマンドが指定するゴールがある場合はそのゴールを達成するプランを作成する（動作Ａ３）。
【００３３】
実行フェーズにおいて、スクリプトを末尾まで実行できた場合は、エージェントは、ゴールを完遂した事になる（動作Ａ１０）。この時は、エージェントの動作は正常終了する（動作Ａ１１）。
【００３４】
なお、実行フェーズにおいて、スクリプト中の移動命令を実行する場合は移動フェーズに入る（動作Ａ１２，Ａ１４）。移動の際は、移動元のノードマネージャは、移動先のノードマネージャに対して所定の通信プロトコルにて移動を行い、成功すると移動先のノードにて実行フェーズに戻る（動作Ａ１３）。移動が失敗した場合は、他のコマンドの失敗と同様にプランニングフェーズに戻る（動作Ａ６）。
【００３５】
（２−２）ノードマネージャの動作
上記のようなエージェントのライフサイクルは、ノードマネージャによる次のような動作によって実現される。すなわち、エージェント生成部２は（図２）、ノードマネージャに対して投入されたゴールを受取ると、エージェントを生成して動作を開始させ、また、経路４を通じてプラン生成部１９にゴールを渡す。プラン生成部１９では、経路４から与えられたゴールを達成するプラン、すなわちスクリプトを生成する。
【００３６】
このとき、プランニングは失敗する場合がある。これは、ゴールを達成する手段が見つけられなかったことを意味し、エージェントは、実行失敗となる。この場合、プラン生成失敗検出部１７は経路１８を通じて失敗を検出し、経路１２からその旨をエージェント消去部１４に通知する。通知を受けたエージェント消去部１４は、エージェントを消滅させて終了処理を行う。
【００３７】
一方、プランの生成に成功すると、プランは経路１０から送出され、エージェントは実行フェーズに入る。実行フェーズでは、実行部１５が、スクリプトの実行位置におけるコマンドを読み取り、解釈実行し、また、スクリプトの終了判定部８では、実行部１５に経路１３を通じてコマンドを渡しながら、スクリプトの末尾まで実行が進んだかどうかを判定する。
【００３８】
実行フェーズにおいてプランの実行失敗が発生した場合、実行失敗検出部２１が経路１６を通じて実行失敗を検出し、コマンドの実行時エラーとなる。そして、このエラーを経路２０で通知されたプラン生成部１９がプランを生成する。
【００３９】
プラン実行時、移動検出部２８は、経路２３を通じて、実行中のコマンドが移動命令であるかどうかを判定する。判定結果として移動命令である旨が経路２７で通知されると、移動処理部２６は移動コマンドを実行し、この際、移動先のノードに対してエージェントの移動に必要な情報を通信する。この場合、エージェントは、移動元のノードからは立ち去ることになるため、移動元のノードによるそのエージェントの処理は、移動が成功した段階で終了する。
【００４０】
なお、移動失敗検出部２４は、経路２５を通じて移動の失敗を監視する。移動の失敗は、移動先のノードとの通信プロトコルが正常に動作しない事により検出できる。移動が失敗した場合は、失敗が経路２２で通知され、プランニングフェーズに戻り、プラン生成部１９がプランを生成しなおす。
【００４１】
これら動作の間、動作ログ出力部２９は、エージェントの動作の詳細な記録をとり、所定のファイルに記述する。なお、改めて図示しないが、本実施形態の動作においては、ワークメモリ・各種ライブラリファイル・テンポラリファイルなど、あらゆる他の必要な構成要素が適宜用いられる。
【００４２】
（２−３）モニタースクリプトの送信
上記のような動作を行う各段階で、ノード・マネージャ１の各部分は、ユーザへの通知を目的として、管理するエージェントの状態をテキスト表現したモニター・スクリプトをモニター装置３７へ送信する。なお、ユーザは、ノード・マネージャが管理する複数個のエージェントからモニター装置の表示対象となるエージェントを予め選択しておくことができる。ノード・マネージャの管理対象が単一エージェントである場合、そのエージェントがモニター装置の表示対象となる。
【００４３】
（２−４）モニター装置による情報の表示
モニター装置３７は、ノード・マネージャ１から送られてきたモニター・スクリプトを受け、現時点で表示対象として選択されているエージェントに関するものである場合、送信されてきたモニタースクリプトに対応する文字列や画像によってエージェントの挙動をユーザに表示する。図５は、モニター装置の動作を示すフローチャートである。なお、図２の表示画像ファイル４６は、図５に示す基本的な状態画像のファイル４６１と、エージェントの適用分野別の状態画像ファイル４６２とを含む。
【００４４】
そして、モニター装置の各画面は、中心となる前記モニター制御装置により管理制御され、その表示内容は、図５に示すように、ノードマネージャが送信（ステップ５１）したモニタースクリプトを、モニター制御装置が受信するごとに（ステップ５２）更新される。
【００４５】
表示内容の更新の際は、まず、テキスト表示部４７３（図３右上）にエージェントの状態として、送信されてきたモニタースクリプト４７２を表示する（ステップ５３）。次に、基本状態の表示を行う。ここでは、モニター・スクリプトの内容がエージェントの基本状態を意味する場合、すなわち表１に示す文字列とモニタースクリプトが一致する場合、エージェントの基本状態を表現したタイトル画像およびエージェント画像を、基本的な状態画像ファイル４６１から検索取得し、これを基本状態表示部４７０に表示する（ステップ５４）。
【００４６】
なお、このように基本状態を表示するための具体的な手順を図６に示す。この手順では、モニタースクリプトの文字列に応じて（ステップ６０１，６０３，６０５，６０７，６０９，６１１，６１３）、文字列が表す基本状態に対応するエージェント画像４７１が表示される（ステップ６０２，６０４，６０６，６０８，６１０，６１２，６１４）。なお、基本状態表示制御部３８は、エージェントのライフサイクルを表す図式を、図４に示したような形式で基本状態表示部４７０に表示しておき、各時点で該当する部分を強調表示するように構成してもよい。
【００４７】
最後に（図５）、モニター・スクリプトの内容に対応するエージェントの適用分野に応じたタイトル画像およびエージェント画像が予め用意されている場合、これを適用分野別状態画像ファイル４６２から検索取得し、詳細状態表示画面４７４（図３下）に表示する（ステップ５５）。なお、このように適用分野別の詳細状態を表示するための具体的な手順を図７に示す。この手順では、受信したモニタースクリプトに対応する詳細画像ファイルを検索し（ステップ７１）、該当する詳細画像ファイルがあった場合は（ステップ７２）、その詳細画像ファイルを用いてエージェントの適用分野に応じた詳細な画像表示を行う（ステップ７３）。以上の手続きをモニター・スクリプト受信毎に行なうことにより、エージェントの状態を視覚的かつリアルタイムにユーザへ通知することができる。
【００４８】
（２−５）エージェントの動作の実例
以降では、旅行計画支援を実例として、モニター装置３７がどのように稼働するのか説明する。通常の旅行計画支援例題は、複数個のエージェントおよび複数個のノードを用いて旅行計画に関する全般を支援するが、ここでは例題を簡略化し、単一エージェントおよび旅行計画を依頼する旅行代理店と旅行目的地の２つのノードによる「出発地から目的地までのルート情報獲得」の部分だけを例にとって、モニター装置の機能との関係を前提に説明する。
【００４９】
この例において、旅行代理店（以降ＴＡと呼ぶ）ならびに旅行目的地（以降ＪＡＩＳＴと呼ぶ）のノードは、以下の条件のもとに成立し、その目的は「出発地ＴＯＫＹＯから目的地ＪＡＩＳＴまでのルート情報獲得」とする。
・旅行代理店は、出発地から目的地までのルート情報を保持していないものとする。
・旅行代理店は、出発地から目的地までのルート情報を保持するノードを認識しているものとする。
・旅行目的地は、出発地から目的地までのルート情報を保持しているものとする。
【００５０】
図８に、上記条件から求めたルート情報獲得の手続きおよびエージェントの状態を表したモニター・スクリプトを示す。なお、図８のモニター・スクリプトは、説明のために簡略化した例である。また、図８に表記されている文字列の意味（文法）を以下に示す。
【００５１】
・特殊文字＃はコメント行の開始位置であり、＃以降に続く文字列は全てコメントとして扱われる。
・文字列"agent1"はエージェント固有の識別子（エージェント識別子）であり、ノード内に存在する複数個のエージェントを一意に識別するものである。ここで"agent1"以降に続く文字列は、全てagent1に関する状態であること意味する。
・文字列"plan","parsing","complete","fail","enter","bye"は、表１に示されるエージェントの基本的な状態、プラン生成、実行、成功、失敗、到着、出発、不在を意味する。
・文字列"script"は、"script"以降に続く文字列が直前のプラン生成により生成されたスクリプトであることを意味する。
【００５２】
以下、表記されているモニター・スクリプトが表す手続きについて説明した後、手続きに対応したモニター装置の表示内容について説明する。なお、以下の「行番号」は、図８に示すモニター・スクリプトの各行右端に括弧書きされた行番号である。
【００５３】
まず、ＴＡにおいて出発地ＴＯＫＹＯから目的地ＪＡＩＳＴまでの旅行計画をプラン（行番号１）し、ルート情報獲得のためのスクリプト（行番号２−３）を求める。求めたスクリプトでは、ＴＡにおいてルート情報検索（行番号２）と獲得（行番号３）を行なうよう指示されている。なお、本来ならば、スクリプト（行番号２−３）以降に、タイムテーブル検索取得、チケット検索取得等に関するスクリプトが生成されるが、ここでは簡略化のため省略する。
【００５４】
スクリプト（行番号２−３）に従い、ルート情報検索（行番号４）を行なうが、条件より「旅行代理店は、出発地から目的地までのルート情報を保持していない」為、このルート情報検索は失敗（行番号５）する。
【００５５】
失敗後、直ちにスクリプト（行番号２−３）と異なる方法を再プラン（行番号６）し、新たなスクリプト（行番号７−１１）を求める。新たなスクリプトは、「ルート情報を保持するであろうノードＪＡＩＳＴに移動後（行番号７）、ＪＡＩＳＴおいてルート情報検索（行番号８）と獲得（行番号９）を行ない、獲得したルート情報をＴＡに持ち帰る（行番号１０−１１）」というものである。スクリプト（行番号７−１１）の実行結果が（行番号１２〜１９）に相当する。
【００５６】
すなわち、まず、ＴＡからＪＡＩＳＴに移動（行番号１２〜１５）し、ＪＡＩＳＴにおいてルート情報検索（行番号１６）、獲得（行番号１７）を行なう。条件より「旅行目的地は、出発地から目的地までのルート情報を保持している」為、これに成功（行番号１８，１９）する。最後に、獲得したルート情報をＴＡに持ち返り（行番号２０−２２）、本手続きを終了するとともに目的を達成する。
【００５７】
（２−６）表示の実例
上記のようなエージェントの動作をモニター装置３７が如何に表示するかについて、モニター・スクリプトの部分ごとに、エージェントの動作内容とともに説明する。なお、以下では、テキスト、基本状態、詳細状態はモニター装置のテキスト表示部、基本状態表示部、詳細状態表示部を表し、エージェント画像とはエージェントの状態を表すのに必要なタイトル画像および擬人化したＧＵＩ上の人物画像を意味するものとする。
【００５８】
なお、表示に先だって、エージェントの各状態や挙動に対応する次のような表示に用いる画像が表示画像ファイル４６に格納されているものとする。すなわち、図９はプラン生成中を表す表示例であり、同様に、図１０はプラン実行中、図１１は、プラン実行成功、図１２はプラン実行失敗の場合の表示例である。また、図１３はノードにエージェントが到着した場合の表示例、図１４はノードからエージェントが出発する場合の表示例、図１５はノードにエージェントが不在の場合の表示例である。
【００５９】
・行番号１〜３
まず、エージェントは、出発地ＴＯＫＹＯから目的地ＪＡＩＳＴまでの旅行計画をプラン生成（行番号１）し、ルート情報獲得のスクリプト（行番号２〜３）を求める。このときのモニター装置の表示内容を図１６に、モニター装置の表示例の変化を図１７に示す。なお、図１６中の括弧書きの数字は図８に示したモニター・スクリプト中の行番号であり、以下同様である。
【００６０】
・行番号４〜５
エージェントは、生成したスクリプト（行番号２〜３）に従い、ルート情報検索（行番号４）を行なうが、条件より「旅行代理店は出発地から目的地までのルート情報を保持していない」為、本ノードにおけるルート情報検索は失敗（行番号５）する。このときのモニター装置の表示内容を図１８に、モニター装置の表示例の変化を図１９に示す。
【００６１】
・行番号６〜１１
エージェントは、ルート情報検索に失敗後、スクリプト（行番号２〜３）と異なる方法を再プラン（行番号６）し、新たなスクリプト（行番号７〜１１）を求める。このときのモニター装置の表示内容を図２０に、モニター装置の表示例の変化を図２１に示す。
【００６２】
・行番号１２〜１４
そして、エージェントは、新たなスクリプト（行番号７〜１１）に従い、ＴＡを出発後（行番号１２〜１３）、ＪＡＩＳＴへ移動する。移動後（行番号１４）のモニター装置には、エージェントは表示されない。このときのモニター装置の表示内容を図２２に、モニター装置の表示例の変化を図２３左側に示す。すなわち、図２３左側は移動元のノードのモニター装置の表示例の変化であり、エージェントを表す人物画像が消滅する。
【００６３】
・行番号１５
ＴＡを出発したエージェントは、ＪＡＩＳＴに到着（行番号１５）する。ＪＡＩＳＴのモニター装置には、到着をあらわすエージェントが表示される。このときのモニター装置の表示内容を図２４に、モニター装置の表示例の変化を図２３右側に示す。図２３右側は移動先のノードのモニター装置の表示例の変化であり、エージェントを表す人物画像が出現する。
【００６４】
このように、本実施形態では、ノード間でのエージェントの移動がキャラクタの出没で視覚的に表示されることによって理解容易になる（請求項２，７）。すなわち、エージェントがノードに到着すると、擬人化されたＧＵＩ上の人物がウィンドウ上に表れ、エージェントがノードを離脱するとその人物の表示が消える。
【００６５】
・行番号１６〜１７
エージェントは、到着したＪＡＩＳＴにおいてルート情報検索（行番号１６）を行なう。条件より「目的地は、出発地から目的地までのルート情報を保持している」ことから、本ノードにおけるルート情報検索は成功（行番号１７）する。このときのモニター装置の表示内容を図２５に、モニター装置の表示例の変化を図２６に示す。
【００６６】
・行番号１８〜１９
検索に成功したエージェントは、ルート情報獲得（行番号１８）を行なう。条件より「目的地は、出発地から目的地までのルート情報を保持している」ことから、本ノードにおけるルート情報獲得も成功（行番号１９）する。このときのモニター装置の表示内容を図２７に、モニター装置の表示例の変化を図２８に示す。
【００６７】
・行番号２０〜２１
最後に、エージェントは、獲得したルート情報をＴＡに持ち帰って情報処理は目的が達成される（行番号２０〜２１）。このときのモニター装置の表示内容を図２９に示す。また、エージェントが元のノードに帰還する際の、移動元と帰還先それぞれにおけるモニター装置の表示例の変化を、図３０の左側と右側に示す。
【００６８】
（３）効果
以上のように、本実施形態では、エージェントの挙動を内容に応じて、例えば、プランの生成・実行・ノード間の移動・それらの成功や失敗などに応じて、異なった表情・動作・表示形態のキャラクタで表示する。このため、各エージェントやシステム全体の挙動が、視覚を通じてリアルタイムかつ容易に理解できる。このため、エージェントが正常に動作するかを試験するなどの作業が効率化される。
【００６９】
特に、本実施形態では、プランの生成・実行・実行失敗などエージェントの状態が、キャラクタの動作で視覚的に表示されることによって理解容易になる。
【００７０】
また、本実施形態では、プラン生成の際にソフトウェア要素の情報が用いられる（請求項６，８）。このため、ソフトウェアの所在などシステム構成が変更されても、前記情報の更新によって変更に対応したプラン生成が可能となる。また、移動先のノードでもエージェントの動作は継続され、必要に応じて再度のプランニングも行われるので、柔軟な情報処理が実現される。そして、このような複雑な動作もキャラクタの画像によって表示されるので、視覚を通じて容易に理解することができる。
【００７１】
（４）他の実施形態
なお、本発明は、上記実施形態には限定されず、次に例示するような他の実施形態を包含するものである。例えば、上記実施形態に示したネットワークの構成、エージェントのスクリプト、モニター装置による表示例や表示画像の内容などは単なる例示に過ぎず、これらの具体的な実現態様は自由に定めることができる。また、ノード内でのエージェントの状態の表示と、ノード間でのエージェントの移動を必ずしも双方表示する必要はなく、モニター装置でモニターする情報の内容はユーザが自由に定めればよい。
【００７２】
また、本発明は、コンピュータをプログラムで制御することによって実現されることが一般的と考えられるので、そのようなプログラムを記録した記録媒体も本発明の一態様である。
【００７３】
【発明の効果】
以上説明したように、本発明によれば、ユーザが把握するのに困難とされる、特定ノードにおけるエージェントの状態および特定ノード間を移動するエージェントの位置を、視覚的かつリアルタイムに確認することが可能となる。
【図面の簡単な説明】
【図１】  本発明の実施の形態における情報処理装置全体の構成を示すブロック図。
【図２】  本発明の実施の形態におけるノードの構成を示す機能ブロック図。
【図３】  本発明の実施の形態において、モニター装置の表示画面の構成を示す図。
【図４】  本発明の実施の形態において、エージェントの各動作からなるライフサイクルを示す図。
【図５】  本発明の実施の形態において、表示を更新する処理手順を示すフローチャート。
【図６】  本発明の実施の形態において、基本状態画像を表示する手順を示すフローチャート。
【図７】  本発明の実施の形態において、詳細状態画像を表示する手順を示すフローチャート。
【図８】  本発明の実施の形態において、スクリプトの例を間略化して示す図。
【図９】  本発明の実施の形態において、プラン生成中を表すモニター装置の表示例。
【図１０】  本発明の実施の形態において、プラン実行中を表すモニター装置の表示例。
【図１１】  本発明の実施の形態において、プラン実行成功を表すモニター装置の表示例。
【図１２】  本発明の実施の形態において、プラン実行失敗を表すモニター装置の表示例。
【図１３】  本発明の実施の形態において、エージェント到着時のモニター装置の表示例。
【図１４】  本発明の実施の形態において、エージェント出発時のモニター装置の表示例。
【図１５】  本発明の実施の形態において、エージェント不在時のモニター装置の表示例。
【図１６】  本発明の実施の形態において、モニター装置の表示内容を示す図（行番号１〜３の処理に対応）。
【図１７】  本発明の実施の形態において、モニター装置の表示が図１６に示した表示内容に対応して変化する状態を示す。
【図１８】  本発明の実施の形態において、モニター装置の表示例の変化を示す図（行番号４〜５の処理に対応）。
【図１９】  本発明の実施の形態において、モニター装置の表示が図１８に示した表示内容に対応して変化する状態を示す。
【図２０】  本発明の実施の形態において、モニター装置の表示内容を示す図（行番号６〜１１の処理に対応）。
【図２１】  本発明の実施の形態において、モニター装置の表示が図２０に示した表示内容に対応して変化する状態を示す。
【図２２】  本発明の実施の形態において、モニター装置の表示内容を示す図（行番号１２〜１４の処理に対応）。
【図２３】  本発明の実施の形態において、モニター装置の表示が図２２に示した表示内容に対応して変化する状態を示す。
【図２４】  本発明の実施の形態において、モニター装置の表示内容を示す図（行番号１５の処理に対応）。
【図２５】  本発明の実施の形態において、モニター装置の表示内容を示す図（行番号１６〜１７の処理に対応）。
【図２６】  本発明の実施の形態において、モニター装置の表示が図２４及び図２５に示した表示内容に対応して変化する状態を示す。
【図２７】  本発明の実施の形態において、モニター装置の表示内容を示す図（行番号１８〜１９の処理に対応）。
【図２８】  本発明の実施の形態において、モニター装置の表示が図２７に示した表示内容に対応して変化する状態を示す。
【図２９】  本発明の実施の形態において、モニター装置の表示内容を示す図（行番号２０〜２１の処理に対応）。
【図３０】  本発明の実施の形態において、モニター装置の表示が図２９に示した表示内容に対応して変化する状態を示す。
【図１】
0003803458.tif 000004
【図２】
0003803458.tif 000005
【図３】
0003803458.tif 000006
【図４】
0003803458.tif 000007
【図５】
0003803458.tif 000008
【図６】
0003803458.tif 000009
【図７】
0003803458.tif 000010
【図８】
0003803458.tif 000011
【図９】
0003803458.tif 000012
【図１０】
0003803458.tif 000013
【図１１】
0003803458.tif 000014
【図１２】
0003803458.tif 000015
【図１３】
0003803458.tif 000016
【図１４】
0003803458.tif 000017
【図１５】
0003803458.tif 000018
【図１６】
0003803458.tif 000019
【図１７】
0003803458.tif 000020
【図１８】
0003803458.tif 000021
【図１９】
0003803458.tif 000022
【図２０】
0003803458.tif 000023
【図２１】
0003803458.tif 000024
【図２２】
0003803458.tif 000025
【図２３】
0003803458.tif 000026
【図２４】
0003803458.tif 000027
【図２５】
0003803458.tif 000028
【図２６】
0003803458.tif 000029
【図２７】
0003803458.tif 000030
【図２８】
0003803458.tif 000031
【図２９】
0003803458.tif 000032
【図３０】
0003803458.tif 000033