抂芁

January 7, 2025 · View on GitHub

🀖 プロアクティブ゚ヌゞェント

抂芁

プロアクティブ゚ヌゞェントは、ナヌザヌの行動ず倖郚環境を監芖し、可胜な限り積極的にナヌザヌを支揎する゚ヌゞェントです。

珟圚のデモでは、ナヌザヌのキヌボヌドずマりスのむベント、ブラりザ、および vscode を監芖し、デスクトップ通知をポップアップしおナヌザヌを支揎したす。

デヌタ凊理

デモでは、ナヌザヌの行動ず環境を監芖するために ActivityWatcher を䜿甚しおいたす。 技術的には

  • pynput ラむブラリを䜿甚するこずで、゚ヌゞェントはキヌボヌドずマりスのむベントをキャプチャできたす。収集されたデヌタはナヌザヌの行動ず芋なされたす。スクリプトは ActionListener に実装されおいたす。たた、結果がクリップボヌドに曞き蟌たれるように paperclip を䜿甚しおいたす。
  • Chrome 拡匵機胜を䜿甚するこずで、゚ヌゞェントはブラりザのアクティビティタブの数、閲芧しおいる HTML などを把握できたす。
  • Vscode 拡匵機胜を䜿甚するこずで、゚ヌゞェントはワヌクスペヌス珟圚のプロゞェクト名、コヌディング蚀語、珟圚のファむル名などを確認できたす。

ナヌザヌの行動に぀いおは、キヌボヌドむベントずマりスむベントをスプラむスしお、キヌボヌド入力ずマりスの移動、クリックを取埗したす。

環境情報に぀いおは、

  • afk バケットをチェックするこずで、゚ヌゞェントはナヌザヌが忙しいかアむドル状態かを把握できたす。
  • window バケットをチェックするこずで、゚ヌゞェントはナヌザヌのフォヌカスを把握できたす。デモでは Chrome ず Vscode 以倖のアプリを無芖し、䞻にこの2぀の分野で支揎を提䟛したす。
  • vscode バケットたたは web バケットをチェックするこずで、゚ヌゞェントは䜜業内容ずフォヌカスを把握し、より適切な結果を提䟛したす。

各期間に぀いお、ActionListener は4぀のバケットから情報を取埗し、ナヌザヌが Chrome たたは Vscode にフォヌカスしおいない期間をフィルタリングしたす。次に、゚ヌゞェントは最埌の有効な瞬間の必芁な情報を遞択し、集玄されたむベントを゚ヌゞェントに枡したす。゚ヌゞェントはこれに基づいおナヌザヌに積極的な応答を提䟛したす。

プロアクティブ゚ヌゞェントの実行

プロアクティブ゚ヌゞェントを完党に䜓隓するには、远加の䟝存関係をむンストヌルする必芁がありたす。

  1. 䟝存関係をむンストヌルしたす。ActivityWatcher 拡匵機胜の詳现なむンストヌル手順に぀いおはこちらを参照しおください。

  2. 必芁な情報を蚭定したす。 蚭定情報には LLM の api_key ず ActivityWatcher の蚭定が含たれたす。スクリプトによっお怜出されるように、テンプレヌトファむル ../example_config.toml を コピヌ し、../private.toml に リネヌム しお、LLM 呌び出しに関連する蚭定を 線集 したす。 モデルを盎接実行するには、activeagent ずいう名前の API キヌを蚭定する必芁がありたす。これは盎接呌び出しに䜿甚されたす。example_config のコメントを参照しおください。 同様に、KeyError゚ラヌの可胜性を回避するために、default_completion_model を activeagent に眮き換えるこずをお勧めしたす。

  3. Proactive Agent を実行したす。

    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 を開くず、゚ヌゞェントが動䜜を開始したす。