プロアクティブエージェントは、ユーザーの行動と外部環境を監視し、可能な限り積極的にユーザーを支援するエージェントです。
現在のデモでは、ユーザーのキーボードとマウスのイベント、ブラウザ、および vscode
を監視し、デスクトップ通知をポップアップしてユーザーを支援します。
デモでは、ユーザーの行動と環境を監視するために ActivityWatcher を使用しています。 技術的には:
pynput
ライブラリを使用することで、エージェントはキーボードとマウスのイベントをキャプチャできます。収集されたデータはユーザーの行動と見なされます。スクリプトはActionListener
に実装されています。また、結果がクリップボードに書き込まれるようにpaperclip
を使用しています。- Chrome 拡張機能を使用することで、エージェントはブラウザのアクティビティ(タブの数、閲覧している HTML など)を把握できます。
- Vscode 拡張機能を使用することで、エージェントはワークスペース(現在のプロジェクト名、コーディング言語、現在のファイル名など)を確認できます。
ユーザーの行動については、キーボードイベントとマウスイベントをスプライスして、キーボード入力とマウスの移動、クリックを取得します。
環境情報については、
afk
バケットをチェックすることで、エージェントはユーザーが忙しいかアイドル状態かを把握できます。window
バケットをチェックすることで、エージェントはユーザーのフォーカスを把握できます。デモでは Chrome と Vscode 以外のアプリを無視し、主にこの2つの分野で支援を提供します。vscode
バケットまたはweb
バケットをチェックすることで、エージェントは作業内容とフォーカスを把握し、より適切な結果を提供します。
各期間について、ActionListener
は4つのバケットから情報を取得し、ユーザーが Chrome または Vscode にフォーカスしていない期間をフィルタリングします。次に、エージェントは最後の有効な瞬間の必要な情報を選択し、集約されたイベントをエージェントに渡します。エージェントはこれに基づいてユーザーに積極的な応答を提供します。
プロアクティブエージェントを完全に体験するには、追加の依存関係をインストールする必要があります。
-
依存関係をインストールします。ActivityWatcher 拡張機能の詳細なインストール手順についてはこちらを参照してください。
-
必要な情報を設定します。 設定情報には LLM の api_key と ActivityWatcher の設定が含まれます。スクリプトによって検出されるように、テンプレートファイル
../example_config.toml
を コピー し、../private.toml
に リネーム して、LLM 呼び出しに関連する設定を 編集 します。 モデルを直接実行するには、activeagent という名前の API キーを設定する必要があります。これは直接呼び出しに使用されます。example_config のコメントを参照してください。 同様に、KeyErrorエラーの可能性を回避するために、default_completion_model
をactiveagent
に置き換えることをお勧めします。 -
サーバーを実行します。 コマンドを実行します。
python main.py
成功した場合、ターミナルに情報が表示されます。
- Windows ユーザーの場合、このサーバーは通知のために AUMID を登録します。スクリプトは AUMID を含む
appid.txt
ファイルを作成します。新しい AUMID を生成する場合を除き、このファイルを削除しないでください。
- Windows ユーザーの場合、このサーバーは通知のために AUMID を登録します。スクリプトは AUMID を含む
-
前のターミナルを開いたままにして、新しいターミナルを開き、次のコマンドを実行します。
python ragent.py --platform PC [--chromes <監視するブラウザの名前> --interval <各ターンの間隔秒数>] python ragent.py --platform PC --chromes explorer.exe,mesdge.exe --interval 10
いくつかのパラメータに注意してください:
--platform
: 実行するプラットフォーム。現在、PC
デモを実行できます。Mobile
デモは将来リリースされます。--apps
: ActivityWatcher に表示される Chrome の名前。プラットフォームや Chrome の種類によってアプリの名前が異なるため、ActivityWatcher の window バケットを通じてアプリ名を見つけ、カンマ,
で区切って渡す必要があります(将来更新予定です。ご不便をおかけして申し訳ありません)。--interval
: エージェントが提案を試みる頻度。デフォルトは 15 で、単位は秒です。 ホスト名はデフォルトバケット名のサフィックスです。例:aw-watcher-windows_<client_hostname>
--port
: ActivityWatcher が保持および監視するポート。デフォルトは5600
です。ActivityWatcher のポートを変更しない限り、変更する必要はありません。
エージェントが正常に実行されると、ターミナルに設定情報と
Demo running Started.
というメッセージが表示されます。
その後、Chrome や Vscode を開くと、エージェントが動作を開始します。