清水理史の「AI道場」

Copilotの「Work IQ」を直感的に理解する

「私の今の仕事は何ですか?」に適切に答えられるスゴさ

Work IQについて解説しているMicrosoftの公式ブログ

 Microsoft 365 Copilotを起動すると、左上に表示される「Work IQ」という表示。昨今、Microsoft関連の情報で、よく目にするが、果たしてこれが何なのか? と疑問に思っている人も少なくないことだろう。そこで、今回は、実際にWork IQから情報を取得して、既存のMicrosoft GraphやMicrosoft 365のデータ(メールや会議など)とどう違うのかを実際に確かめてみた。

とらえどころが難しいWork IQ

「Work IQは、エージェントが組織のデータ、コンテキスト、ツールにアクセスして推論できるようにする職場インテリジェンス レイヤーです。 Microsoft 365および外部システム全体で、組み込みのアクセス許可対応ガバナンスを使用して、セマンティック理解を継続的に構築します」

Work IQの概要(Microsoft Learn)

 この公式の説明を読んで、「なるほど」と思える人が一体何人いるのか疑問だが、とにかく、この「Work IQ」というモノはわかりにくい。内部的なしくみなど公式に明らかにされていない部分があり、仕組みがわかりにくいというのもあるが、そもそも何がスゴイのかも伝わってこない。

 そこで、先日、Microsoftの発表会に参加した際に担当者に「Work IQとは何かをひと言でわかりやすく説明してほしい」とお願いしたところ、あっさり、こう教えてくれた。

「『私の今の仕事は何ですか?』と質問したときに、今取り組んでいる仕事について適切に回答できるものです」

 これまたすぐに「なるほど」と腑に落ちるわけではないのだが、この答えはWork IQの特徴を非常によく表現している。なぜなら、この質問には、従来のAIでは答えにくい3つの難題が含まれているからだ。

【難題(1)どこにも書かれていない】

ほとんどの場合、「私の今の仕事は〇〇です」という記述は、普段使っている文書やメール、チャットなど、どこにも記述されていない。Entra IDのタイトル情報から「営業企画担当」などの肩書を探し出せるかもしれないが、今取り組んでいる案件を把握するのは難しい。

【難題(2)意味で探しにくい】

従来のAIは内部知識にない情報を外部検索(Webや組織データ)によって探して回答する(いわゆるRAG)。しかし、「私の仕事」という単語そのものをベクトル化して、検索しても、近い意味として部署や肩書などを探し出すことはできるかもしれないが、仕事の内容そのものを探し出すことはできない。単純な類似度検索の限界を示している。

【難題(3)「今」という時間軸が含まれる】

問いには、「今取り組んでいる仕事」という時間軸が含まれる。もしかすると、過去の企画書や報告書などから、自分に関連する情報を取り出せるかもしれないが、それが「今取り組んでいる仕事」かどうかを判断することは難しい。

 やってみればわかるが、Microsoft 365 Copilotは「私の今の仕事はなんですか?」という問いに対して、以下のように担当するプロジェクトやスケジュール、タスク、そして、何ともすばらしいことに、今、この瞬間にやるべきタスクまで挙げてくれる。

「あなたの今の仕事は『東都商事向け店舗分析ダッシュボード導入案件(Project AURORA)の責任者として、顧客調整・提案作成・進捗管理を行ないながら、導入条件や費用を確定させること』です」

Microsoft 365 CopilotからWork IQを利用して「私の今の仕事は何ですか?」と質問
今やるべきタスクもきちんと答える

 簡単に言えば、これがWork IQの威力である。冒頭で、公式のWork IQの説明として「組織のデータ、コンテキスト、ツールにアクセスして推論できるようにする職場インテリジェンス レイヤー」という説明を引用したが、この結果を見ると、何となく、この難解な一文の意味も理解できそうな気がするはずだ。

Microsoft Graphとの関係

 さて、Work IQを説明するために、本稿ではMicrosoft Learnで解説されているような3つのレイヤーなど、難しい話はしない(本格的に学びたい方はこちらの記事を参照)。

 しかしながら、Microsoft Graphについては触れざるを得ないので、少し解説しておく。

 前掲の「私の今の仕事は何ですか?」のように、あいまいかつ暗黙的な意味を持つ問いに対して、正確に回答するには情報同士の結びつきや関係性を理解することが欠かせない。

 例えば、先の例でMicrosoft 365 Copilotは「Office365で検索を実行し、関連するファイル、メール、会話、会議記録、トランスクリプトを調べながら、アクションアイテムを特定します」といった作業や、「現在進行中の『プロジェクトオーロラ』のテスト部署に関する作業内容を整理し、次のステップとしてミーティングのスケジュール確認やCSVファイル、費用の確認が必要です」というように、推理の糸をたどるように、情報を結びつけながら結論を導き出している。

3つのステップで、推理の糸をたどるMicrosoft 365 Copilot

 Microsoft 365に詳しい方なら、情報同士の関係性なんて今までもあったじゃないか? と思われるかもしれない。

 実際、SharePointやExchangeといった各サービスの内部であれば、スキーマとして情報同士の関連が存在する。メールなら差出人や宛先、会議なら主催者と出席者、ファイルなら作成者と最終更新者というフィールドを確認すれば、ある検索結果から関連する情報をたどっていくことは不可能ではない。

 しかし、従来は、こうした情報を取得するための窓口がサービスごとに閉じており、横断的なつながりを持っていなかった。同じ人物がメールの差出人としても会議の出席者としても登場するが、それが同一人物であることは、システムをまたいだ時点でわからなくなる。すると、ここで情報のつながりが絶たれてしまう。

 こうした状況を解決するのが「Microsoft Graph」だ。共通のAPIを用意し、バラバラだったアクセス方法を統一した。興味がある人は、こちらのページから、実際にデータを取得してみることをおすすめするが、例えば「/me」でEntraIDのアカウント情報を取得したり、「me/joinedTeams」で参加しているTeamsのチームをリストアップしたりと、Microsoft 365の各種サービスについて共通のAPIで情報を取得できる。いわば情報の取り出し口や窓口といった役割だ。

Graph Explorerを使うと、Microsoft Graphの情報を簡単に引き出せる。サンプルサイトのデータもあるが、サインインして権限を与えると自社のテナントの情報を参照できる
GraphのURL何が返るか元データの場所
/me/messages自分のメール一覧(件名、差出人、日時、本文)Exchange
/me/events自分の予定一覧(会議名、日時、出席者)Exchange 予定表
/me/drive/recent最近開いたファイルOneDrive
/me/manager自分の上司1人Entra ID
/me/directReports自分の部下一覧Entra ID
/me/peopleよく関わる人と関連度スコア上記から算出

 この点だけ見るとMicrosoft Graphは単なる統合APIだが、一部、情報同士の結びつきも提供している。例えば、「/me/people」や「/me/insights/trending」のように、複数サービスの履歴から関連度を算出して返すエンドポイントも用意されている。「me」を起点に、さまざまな情報へ辿れるようになったわけである。

me/peopleの例。関連する人物にrelevanceScore(関連度スコア)の数値が表示される

 ただしこれだけでは、「私の今の仕事は何か」には答えられない。Microsoft Graphだけで回答を引き出そうとすれば、メールを検索し、カレンダーを日付で探し、/me/peopleの情報を参照し……というように、自分自身で必要なクエリを発行し、それらの結果を突き合わせて解釈する必要があった。つまり、どの道具をどう組み合わせるかを人間が決める必要があったわけだ。

 Work IQ は、この課題への回答のひとつである。Agentic Retrievalと呼ばれる仕組みに近い形で(Work IQはRetrieval=検索だけでなく予定の追加などの書き込み権限も持つため厳密には異なる)、Microsoft 365のデータの意味的な検索と、Microsoft Graph的な構造に沿った取得という道具を自律的に使い分ける。つまり、情報の検索と推論を担当する内部AIエージェントだ。

 日付で引けるものはシンプルな検索で取得し、本文を読まなければわからないものは意味的に検索する。/me/events相当(内部的に本当にMicrosoft Graphのクエリを実行しているかは不明なので相当と表記しておく)のデータから会議のタイトルを読み、/me/messages相当からメールの中身を読み、それらに共通して現われる話題を抽出するわけだ。そして、得られた情報を結びつけることで、「この人物はこの案件に関与している」といった情報、つまりどこにも直接的な記述のない情報、を導き出すことができることになる。

 簡単にまとめると以下の図のような流れになる。

情報の流れと回答の例

実際にデータを参照する

 では、実際にWork IQの情報を参照してみよう。Work IQにはCLIも用意されているが、今回はAPIを利用して取得している(いろいろ準備は必要だが本題から外れるので今回は省略する)。

 ここで注目したいのは、Microsoft Graphへの問い合わせとWork IQでの問い合わせで何が変わるのかという点だ。まずは、Work IQは次のような回答となった(筆者の環境の生データも含まれるため本稿では一部改変して掲載している)

Work IQ APIを使って情報を引き出した
【Work IQ APIにより情報を取得】

投げたクエリ:
最近1か月で最も頻繁にやり取りしている相手を上位5人、やり取りの内容の傾向とあわせて教えて

返ってきた回答(本文抜粋)
検索結果では過去1か月のデータとして 45件のメールと12件の会議 が見つかりました。

ただし、今回取得できた結果は「やり取り件数の集計結果」ではなく、メール・会議のサンプル一覧です。そのため、厳密な意味での上位5名ランキングや正確な件数順位は確認できません。その前提で、検索結果から頻繁な関与が確認できた相手と話題傾向をまとめます。

1. B氏
最も多く登場しています。「Project AURORA 接続確認会議」「PJ-AURORA-26 技術定例」 「〇〇商事 提案前レビュー」「試験導入条件確認会議」「技術課題 個別相談」など、 複数の会議で継続的に関与しています。話題は主に PJ-AURORA関連の技術検討、顧客提案レビュー、導入準備、課題解決 です。

2. C氏
営業レビューや社内情報共有の場で継続的に登場しています。やり取りの傾向は営業部門レビュー、社内調整、PJ-AURORA関連の進捗共有、情報交換 です。

3. D氏
PJ-AURORA関連の顧客対応・訪問活動で複数回登場しています。話題は 〇〇商事向け案件、試験導入条件、顧客訪問・提案活動 が中心です。

4. F氏(社外・出版社)
会議件数は多くありませんが、確認できた外部関係者です。テーマは書籍企画関連の打ち合わせでした。

5. 外部事業者(システム通知系)
人との会話ではありませんが、メール上では以下の送信元が複数回登場しています。
・PC メーカー:法人向けIT機器、キャンペーン情報
・銀行:振込・セキュリティ連絡
・請求書システム:請求書関連通知

## 全体傾向
1. PJ-AURORA関連の案件推進・技術検討
2. 〇〇商事向け提案・導入準備
3. 営業レビューや社内情報共有
4. 生成AI/ChatGPT関連の企画・打ち合わせ
5. 請求・銀行・ITサービス運用

より正確な「上位5人(メール・Teamsチャット・会議を合算した実際の件数順)」を出すには、メールとチャットの相手別集計を取得して分析できます。

 さて、これと同じような情報は、実はMicrosoft Graphから取得できる。GETで「https://graph.microsoft.com/v1.0/me/people?$select=displayName,jobTitle,scoredEmailAddresses」を実行すると、以下のような情報(抜粋)が表示される。

Microsoft Graphで取得した「me/people」の例
【】

"value": [
{ "displayName": "外部A氏", "jobTitle": null, "relevanceScore": 105 },
{ "displayName": "B氏", "jobTitle": "PM/SE", "relevanceScore": 88 },
{ "displayName": "本人の別アドレス", "relevanceScore": 64 },
{ "displayName": "C氏", "jobTitle": "営業部長", "relevanceScore": 50 },
{ "displayName": "D氏", "jobTitle": "DX推進部 課長", "relevanceScore": 40 },
{ "displayName": "本人の別アドレス", "relevanceScore": 35 },
{ "displayName": "本人の別アドレス", "relevanceScore": 28 },
{ "displayName": "E氏", "jobTitle": "COO", "relevanceScore": 27 },
{ "displayName": "サービス通知アカウント", "relevanceScore": 19 },
{ "displayName": "本人(アカウント所有者)", "relevanceScore": 1 }
]

 両者の違いを表にまとめてみよう。

Graph(relevanceScore 順)Work IQ が挙げた相手
1外部A氏 105B氏(PM/SE)
2B氏(PM/SE) 88C氏(営業部長)
3本人の別アドレス 64D氏(DX推進部 課長)
4C氏(営業部長) 50F氏(社外・Graph には現れない)
5D氏(DX推進部 課長) 40サービス通知系の送信元

 この結果を見ると、Work IQが単純にMicrosoft Graphを検索し、その結果を答えているわけではないことがわかる。

 赤文字の部分に注目して欲しい。Microsoft Graphが最上位に挙げた外部アドレスと、3位に挙げた本人の別アドレスを、Work IQは省略している。質問に含まれる「やり取りしている相手」という意図を汲んで、これらを除外しているわけだ。

 逆にWork IQは社外の編集者を4位に挙げたが、この人物はMicrosoft Graphの peopleリストには現われない。会議の参加者としては登場するものの、接点の総量は少なく、People APIが判断基準とする「協働」を表わすシグナルの閾値には達していない(会議以外のチャットなどの接点が少ない)ためだろう。興味深いのは、それでもWork IQがこの人物を上位に含めている点だ。単純な頻度ではなく、「書籍企画」というひとつの案件として意味のあるまとまりを判断し、その結果、重要であると判断していると考えられる。

 どちらが実務的か? 問われれば、この問いに関しては明らかにWork IQだ。

 もちろん、正確な件数や順位が必要な場面では、Microsoft Graphの数値を使うメリットはあるが、人間的な回答、社会的な慣習に沿った回答としてはWork IQの方が優秀だ。MicrosoftがWork IQを推す理由にも納得だ。

 AIの世界は、モデルそのものの進化も激しいが、情報同士をいかに結び付け、どう活用するかという技術も進化している。むしろ、実務という観点では、この分野の優劣、および、いかにユーザーのデータ(と使い方や行動のインサイト)を抱え込むかが重要なポイントになっている。そう考えると、現状、この分野ではWork IQが一歩先んじている印象だ。

Work IQでわかったこと

 さて、いろいろ実験した結果、動作の傾向や内部のしくみを想像できる点も見えてきたが、文章が長くなりすぎるので、わかったことをダイジェストとしてまとめておく。参考になれば幸いだ。

【Work IQのポイント】

【Microsoft Graphとの関係】
 Work IQはMicrosoft Graphの後継ではなく、その上に立つ解釈レイヤーと言える。Microsoft Graphは「誰と、どれくらい」を数値で返すが、Work IQは「誰と、何について」を文章で返す。両者は同じMicrosoft 365上の情報を見ているが、参照する範囲も、返す粒度も異なる。Work IQの応答にTeamsのeventIdやOutlookのItemIDがそのまま埋め込まれていることからも、生データを基に推論していると考えられる。

【Work IQは検索を複数回実行している?】
 ファイルに含まれる単語を基に情報を問い合わせたところ、ファイルが見つからなかった場合に自律的に単語を分解して、複数回にわたって検索している様子がうかがえた。具体的には、「ZEBRA-ALPHA」という単語を仕込んだファイルを探させたところ、これが見つからなかった際に「検索では以下の語も含めて確認しました」として「ZEBRA-ALPHA」、「ZEBRA」、「ALPHA」の3つを自ら列挙してきた。実際のAPI呼び出しを外部から観測できるわけではないが、単語を分割して検索を繰り返したことは回答から読み取れる。AIエージェントのように、ゴールに対して、自律的に方法を変えながら試行錯誤していることになる。こうした点は、単純なAPIのMicrosoft Graphと異なるポイントと言える。

【問いの意図を汲み情報を取捨選択/補完する】
 前述したように、「最近やり取りしている相手」を尋ねた際、Microsoft Graphの/me/people は自分自身のアカウントや自分自身の別アドレスを含めた回答を表示したが、Work IQはこうした情報を外して回答している。こうした結果は、従来のRAGのようなベクトルの類似度計算では発生しない(除外するにはフィルタや条件を自分で設計する必要がある)。「やり取りする相手」に自分自身は含まれない、という「常識」を考慮して、情報を取捨選択、さらに時には補完している。

【暗号化された情報の扱い】
 テストとして複数の秘密度ラベルを設定した文書を基に回答を依頼したが、暗号化はWork IQの参照の障壁にはならないことがわかった。権限を持つユーザーに対しては、Work IQは暗号化文書も通常どおり読んで要約する。その一方で、権限を持たないユーザーからは、ファイルの存在すら確認できず、対象から外される。