Work IQとは? Microsoft Foundry+Work IQでMicrosoft 365データを活用する方法

Microsoft FoundryとCopilot Studioに、Work IQという新しい仕組みが登場しました。Work IQはAI AgentとMicrosoft 365を統合するために新しく生まれた仕組みですが、どのように使いこなせばよいか分からない方も多いと思います。

そこで本記事では、Work IQに関する情報を提供します。実際にMicrosoft FoundryのAI AgentにWork IQを適用して設定・検証を行う手順を、エージェントプレイグラウンドだけでなくプログラムから活用する方法を述べます。また、本記事の内容はCopilot Studioでも応用可能な内容となっています。

Work IQの概要

WorkIQは、Microsoft 365で使われるCopilot(AIアシスタント)が、ユーザーの社内ドキュメントやメール、チャット、会議記録などを横断的に理解し、必要な情報を組み合わせて最適な答えを出すための「情報整理・提供システム」です。

たとえば「来週の営業会議の議題を教えて」と質問すると、Work IQはOutlookの予定表やTeamsのチャット、OneNoteの議事録などから「営業会議」に関連するデータを集めます。AIは、こうしてWork IQがまとめてくれた情報を使って、質問にピンポイントで答えたり、資料を自動作成したりできるようになります。

エージェントとWork IQの関係性

Copilot StudioやMicrosoft Foundryは、様々な知識基盤やデータ分析レイヤーと組み合わせて活用することができます。

AI Agentが、膨大なMicrosoft 365データ(メール/ファイル/会議記録/Teamsチャットなど)をセキュアに扱うためには、単なるAPI呼び出しだけでは済みません。

Work IQはこの要件を満たすAgentのMCP Serverとして振る舞います。つまりWork IQはMicrosoft 365全体の業務データをAI Agentがリアルタイムで文脈化・活用するためのAPI・認証ゲートウェイ(MCP)を提供します。

つまり本質的にWork IQはMCP Serverで、MCP Serverの中にMicrosoft 365のデータにアクセスできるツールが用意されているということになります。

Foundry IQとWork IQの違い

IQにはWork IQ、Fabric IQ、Foundry IQという3つのキーワードがあります。

Microsoft FoundryからWork IQのツールを設定する手順を進める前に、一旦ここで用語を整理しておきます。

Microsoft Foundryは「AIエージェントを作って動かすためのプラットフォーム」であり、Work IQ、Fabric IQ、Foundry IQをそれぞれエージェントに組み込むことができます。

Work IQは、「Microsoft 365(メール/Teams/SharePointなど)」から、“いい感じにまとめて”情報を取ってこれる公式ツール群です。

Foundry IQはAzure AI Searchベースのナレッジベースです。以下の通り設定画面が用意されており、AI Searchのインデックスを検索してエージェントの回答に取り込む役割を果たします。

参考 learn.microsoft.com

Fabric IQについては、以下の記事を参考にしてください。

参考 blog.jbs.co.jp

どんなことができるのか?

2026年3月現在で、8種類のWork IQが用意されていることが確認できます。

各種Work IQにはリファレンスが用意されています。

例えばWork IQ MailのDocsには、mcp_MailTools_graph_mail_createMessageなどの具体的なツール名と説明が記載されているため、これを見ながらできること/できないことを判断することができます。

参考 learn.microsoft.com

Copilot StudioでAgentに対してツールを設定するケースでも、同じWork IQを確認することができます。Work IQ基盤は共通のため、この調査方法はCopilot Studioでエージェントを活用する場合にも応用できます。

実装

Microsoft FoundryでWork IQを作成する

実際にMicrosoft FoundryのエージェントにWork IQを適用する手順を紹介します。

Microsoft Foundryのポータル画面で、上の[ビルド]タブを選択し、左側の[ツール]を選択します。右上の[ツールを接続]のボタンを押下します。

[カタログ]タブを選択し、Work IQで検索すると、以下の通り何種類かのWork IQが出てきます。

ツールを追加すると次のような画面となります。ほぼ、追加設定無しで作成することができます。

Work IQのエージェントへの適用

Work IQをエージェントに適用する際は、「エージェントで使用する」を選択し、[作成済みのエージェント]を選択します。

エージェントプレイグラウンドの画面で、左側の設定枠のうち、ツール欄にWork IQが適用されます。

エージェントに以下のような質問を送信します。

私の3/12の予定表を一覧にしてください。

次のようなレスポンスが得られます。

伏字にしていますが、ここでは筆者の予定が一覧表示されています。

今回は、Microsoft Outlookの情報が参照されましたが、重要なのは「Work IQ Calendarが認証やAPIアクセス等の役割を代行してくれている」という点です。このケースでは、Microsoft Foundryを使用している筆者のMicrosoft Entra IDアカウント情報を利用しています。

チャットのログを確認すると、処理の中で3回、Work IQのListCalendarViewツールを使用していることが分かります。

参考 learn.microsoft.com

なおこのリクエストでは、内部的にツールを3回呼び出して最終回答を作成しているようでした。

1回目は恐らくリクエストパラメーターが間違っていてエラーでした。

Error: Error executing tool: Invalid property name(s) in 'orderby' parameter: (以下長文エラーのため省略)

2回目は別のパターンでパラメーターを間違えていてエラーでした。

Error: Error executing tool: The $orderby expression must evaluate to a single value of primitive type.

3回目は成功して予定表を取得できました。

Calendar view retrieved successfully.
(以下JSONレスポンス)

Work IQの認証

プログラム構成例

現在はエージェントプレイグラウンドから利用しましたが、プログラム経由で使用した場合についても解説します。

簡易的ですが、例として以下のようなコードでエージェントを作成します。

from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition, MCPTool
from azure.identity import DefaultAzureCredential, ClientSecretCredential

PROJECT_CONNECTION_STRING=""

cred = None # ここにクレデンシャルを取得するコードを入れる

project_client = AIProjectClient(
    endpoint=PROJECT_CONNECTION_STRING,
    credential=cred,
)
openai_client = project_client.get_openai_client()

# WorkIQ MCP ツールの設定
mcp_mail = MCPTool(
    server_label="workiq-mail",
    server_url=WORKIQ_MAIL_URL,
    project_connection_id="WorkIQMail",
)

mcp_calendar = MCPTool(
    server_label="workiq-calendar",
    server_url=WORKIQ_CALENDAR_URL,
    project_connection_id="WorkIQCalendar",
)

mcp_teams = MCPTool(
    server_label="workiq-teams",
    server_url=WORKIQ_TEAMS_URL,
    project_connection_id="WorkIQTeams",
)
# エージェント作成
agent = project_client.agents.create_version(
    agent_name="workiq-agent",
    definition=PromptAgentDefinition(
        model="gpt-4.1",
        instructions=instructions,
        tools=[mcp_mail, mcp_calendar, mcp_teams],
    )
)

会話の際は以下のようなコードを用います。

user_input = ""

conversation = openai_client.conversations.create(items=[])

response = openai_client.responses.create(
    conversation=conversation.id,
    extra_body={"agent": {"type": "agent_reference", "name": agent.name, "version": agent.version}},
    input=user_input,
)
print("Assistant:", response.output_text)
認証の構成

認証はEntra IDのアプリを作成しておきます。ここでは使用するアプリの設定を次の通り行います。

  • [管理]-[Authentication]
    • リダイレクトURIタブで、以下リダイレクト URI の追加
    • 設定タブで「パブリッククライアントフローを許可する」を「はい」に変更
  • [管理]-[API のアクセス許可]
    • [Microsoft Graph の委任アクセス許可]で以下の内容を設定
    • Mail.Read / Mail.Send
    • Calendars.Read
    • Chat.Read / ChannelMessage.Read.All
    • User.Read
    • [所属している組織で使用しているAPI]で以下の内容を設定
      • Azure Machine Learning Services - user_impersonation

(※Microsoft Foundry の API 基盤は Azure Machine Learning上に構築されているため、認証リソースとしてAzure Machine Learning Servicesを指定する必要があるようです)

アプリの設定後、以下の通りAI Project Clientに認証情報を与えればOKです。

from azure.identity import DeviceCodeCredential

cred = DeviceCodeCredential(
    tenant_id="<テナントID>",
    client_id="<アプリケーション(クライアント)ID>",
)

project_client = AIProjectClient(
    endpoint=PROJECT_CONNECTION_STRING,
    credential=cred,
)

エージェントの作成時点で次のようにメッセージが表示され、ログイン要求がなされます。

To sign in, use a web browser to open the page https://login.microsoft.com/device and enter the code <認証コード> to authenticate.
Agent created: workiq-agent v1

これによりユーザーの権限で、テナント内のO365系アプリにWork IQ経由で接続できるようになります。

認証を構成せずにレスポンスを送信すると次のようなエラーが返ってきます。

An error occurred: Error code: 400 - {'error': {'message': 'Failed to fetch access token. Status: BadRequest. Details: "ARA OBO token request failed with status BadRequest"', 'type': 'invalid_request_error', 'param': None, 'code': 'tool_user_error'}}
process finished.

これはログインして使用しているエージェントプレイグラウンドと異なり、「ユーザートークン」が存在しないClientSecretCredentialなどを使用した場合に発生します。ClientSecretCredentialなどは誰が送信しているか分からない状態となるため、ユーザー個人が特定できずにWork IQの処理が失敗します。

よってプログラムベースの場合は、Entra ID認証の仕組みも考慮して方法を考える必要があります。

おわりに

本記事ではWork IQの概要から、Microsoft Foundryのエージェントプレイグラウンドでの利用、そしてプログラムからの利用に必要な認証構成までを紹介しました。

Work IQはMCP Serverとして提供されているため、エージェントへのツール追加自体は非常にシンプルです。一方で、プログラムから利用する際にはユーザー認証が必要となり、Entra IDアプリの設定やCredentialの選択を正しく行う必要があります。

また、Microsoft 365データに対してアクセスしたいがその方法がない、あるいは、複雑な処理を実現したいが既存のツールでは満足できない、という場合は、Logic AppsでMCP Serverを構築する等の手法も選択肢に入ります。こちらについては別記事をご参照ください。

blog.jbs.co.jp

Work IQはまだプレビュー段階(2026年3月時点)であり、今後ツールの種類や認証方式に変更が入る可能性があります。最新のDocsを確認しながら活用していただければと思います。

執筆担当者プロフィール
西野 佑基

西野 佑基(日本ビジネスシステムズ株式会社)

機械学習系ソリューション開発、業務Webアプリ開発、開発環境自動化などを担当。

担当記事一覧