LoginSignup
2
7

Officeアプリの作業を自動化するGPTエージェントがMicrosoft公式リポジトリに公開!

Last updated at Posted at 2024-03-03

0. GPTがOffice製品連携して仕事してくれる?!

2024/02/10 Microsoftが公開したUFO🛸というリポジトリについて紹介します。
overview_n.png

こちらはタイトルの通り、WindowsOS特化型のGPTシステムで、

  • Office製品(Word, PowerPoint, Outlook, Explorer等)やAdobe Acrobatなどよく使われるアプリに対応
  • 複数のアプリをまたいで複雑なタスクも一気通貫実行
    • 例:wordの内容をメールで〜宛に送る
    • 例:ネットで〜と検索して、出てきた記事の内容を要約し社内SNSに送る
  • GPT-Visionを使うのでPCのスクショから作業を理解

といった特徴があります。筆者も「ChatGPTの回答は割といいんだけど、Officeアプリと連携してないから、結果をコピペする手間が必要→自動化まではできてないな」と思ってたので、遂に全部自動化できるようになったか!と息巻いてます。

本記事ではUFOのコンセプトや仕組みについて解説していきます。

1. UFOの仕組み

UI Focused agent(= UFO🛸)はこちらで24/02/08に初版論文が提出されています。
framework.png

最近流行しているマルチ自律型エージェント1を採用し、特にAppAgentActAgentの二つの役割を持ったエージェントが協業することでタスクを高精度にこなしていきます。

  • AppAgent
    • タスクの管理する役割
    • ユーザリクエストに対して、サブタスクを定義しタスクの実行計画を立てる
    • どのアプリを次に操作するべきかActAgentに伝える
  • ActAgent
    • 実際にアプリを操作してインタラクションする役割
    • 指定されたアプリ上でサブタスクの実行を試みる
    • 実行後、実行結果を保存しAppAgentに処理を返す

2. 具体的にできること

性能評価のため、筆者らは新たにWindowsBenchという50問のユーザリクエスト例を定義しました。これら「具体的にUFOが実行できたタスク」のうち特筆すべき結果を以下にまとめます:

|リクエスト内容|成功したか?|ステップ数|
|パワポの発表用メモを全部削除して!|◎|8|
|Photoで写真の内容を要約して、これをOutlookで○○さんにメールして!|◎||
|○○について検索して|◎||

3. 新規性

プロンプトの詳細

基本的にはシステムプロンプト、画像エンコード、ユーザリクエストの順番でプロンプトは構成されているが、システムプロンプトはAppAgent用とActionAgent用で分けて役割を変えている。

AppAgent

AppAgent出力仕様.png

  • 役割と命令概要(ガイドライン)
  • pywinautoで選択可能なアプリ操作の説明
  • セーフガード
  • 出力して欲しい項目やフォーマット
  • few shotの例(計8つ)

ActionAgent

ActAgent出力仕様.png

  • 役割と命令概要(ガイドライン)
  • スクショの仕様
  • 実行対象と実行可能な操作リスト&それぞれのアプリ操作に必要な引数の説明
  • セーフガード
  • 出力して欲しい項目やフォーマット
  • few shotの例(計8つ)

アノテーション付きスクリーンショット

UFOが参照する画像として、素のスクショ以外に「選択可能な次のアクション候補付近を四角で囲って、強調表示したスクショ」を利用している(該当実装)。

Annotated.png

上画像のオレンジ色の四角で囲まれた数字部分がpywinautoで検出された「アプリ上でコード実行可能な操作」に対応している。操作の種類が違うレイヤーに対しては別の色(画像左上の青四角部分など)が割り当てられている。

この四角はアプリに付属の機能などではなく、

  1. スクショを画像データとして取得
  2. コード実行可能な操作の一覧を取得
  3. スクリーン上でそれぞれの操作アイコンがどこの座標にあるかを取得
  4. 取得した座標を中心にpython上で四角形を上から描画

という手順で無理やり新規作成していることにも留意する。

4. 今後の展望

論文

まず論文の展望としては

  • 対応操作の拡張
    • 現状pywinautoの範囲内でしか使えないが、Win32APIに対応することやGUIモデルを組み込むことを検討している
  • 未対応アプリへの拡張
    • 実は今回は9のアプリにしか実験していない
    • 未知のアプリに適用しようとすると精度はかなり悪化する模様(vscode→×、adobe→△)
    • 実はwindows特化とは謳いながらExcelやTeamsは一切タスクとして検討されていない
      • 多分難しんだろうな...

所感

論文には特に言及なかったが、Teamsに関してはWindowsBenchの中に一切入っていないアプリであるにも関わらず、プロンプトのfew shot部分にteamsを使ったサンプルが入っていた。このことや、リポジトリがすでに更新始まっていることから、今後より多くのOffice製品に対応したコードに改変されていくことが期待できると個人的に思いました。

免責事項

記事の内容に不適切な点などありましたら、ご指摘いただけると幸いです。また、万一、読者様に何らかの不都合や損害が発生したとしても、著者や著者の所属組織は何らの責任を負うものではありません。

(2024/03/03現在追記中...)

  1. 自律エージェントとは、やって欲しいことを伝えると「タスク計画→小タスクを実行→成否を確認→次のタスクへ」といった流れでGPT自身がPDCAサイクルを回しながら、複雑なタスクをこなすシステムを指します。例えばbabyagiなど。ただ最近は特定の役割を持った複数のエージェント同士に協業させるマルチエージェントシステムも流行し始めました。例えばAutoGenなど。

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7