AI

Microsoft Agent 365とは|SDK・CLIで自社エージェントを登録する手順と料金

Microsoft Agent 365とは|SDK・CLIで自社エージェントを登録する手順と料金

Microsoft Agent 365は、テナント内で動くAIエージェントを一覧し、権限を絞り、挙動を記録するための管理基盤です。Microsoftは「エージェントのコントロールプレーン」と呼んでいます。2026年5月1日に商用向けの一般提供が始まり、ライセンスはユーザー単位で、日本の公式ページでは1ユーザーあたり月額2,248円(年払い・税別)です。この記事では、管理画面の機能紹介で終わらせず、自社で開発したエージェントをAgent 365へつなぐ実装側の話まで扱います。接続の3方式、Entra Agent IDのブループリント、a365 CLIの導入コマンド、Python SDKで可観測性を組み込むコード、テレメトリが黙って捨てられる条件を、Microsoft Learnの記述に当たって整理しました。

まとめ:Agent 365で統制できる範囲と自社エージェントをつなぐ前に決めること

Agent 365自体はエージェントを作りません。動かしもしません。LangChainやOpenAI Agents SDK、Claude Agent SDKで作ったエージェントを、Microsoft 365管理センターのレジストリに載せ、Entraで身元を与え、Purview・Defenderの監視下に置く層です。Copilot StudioやFoundryで作ったエージェントは組み込み統合で最初から載り、自前コードのエージェントだけがSDKでの接続作業を要します。

実装に入る前に決めることは3つあります。1つ目は接続方式で、組み込み統合かレジストリ同期で足りるならSDKは入れません。2つ目は認証モードで、利用者の代理で動くOBO、背景処理のS2S、エージェント専用のユーザーアカウントを持つAgentic-Userのどれにするかで、使える機能が変わります。3つ目はライセンスの置き方です。可観測性はテナント内の誰か1人にAgent 365かMicrosoft 365 E7のライセンスが割り当たっていないと、リクエストが成功してもテレメトリが捨てられます。

エージェントが1本だけで、利用者も1部署に閉じるなら、今は入れなくて構いません。

Microsoft Agent 365の監視・統制・保護とコントロールプレーンの範囲

Microsoft Learnの概要ページは、Agent 365の役割をObserve(監視)、Govern(統制)、Secure(保護)の3本柱で説明しています。監視は管理センターのエージェントレジストリとエージェントマップ、統制はEntraとPurviewによるライフサイクル・アクセス・コンプライアンスの管理、保護はEntraのリスクベースのアクセス制御、PurviewのDLP、Defenderの脅威検出が受け持ちます。つまり新しいセキュリティ製品というより、既存のEntra・Purview・Defenderの対象をエージェントへ広げる束ね役です。Purview側の課金や守備範囲はMicrosoft Purviewの3系統と課金を整理した記事で先に掴んでおくと、どこまでがAgent 365の料金に含まれるかの切り分けが楽になります。

2026年5月1日GAのユーザー単位ライセンスと円建て月額の内訳

一般提供は2026年5月1日、対象は商用セグメントのユーザー単位ライセンスです。概要ページは前提としてMicrosoft E5との組み合わせを推奨し、有効化には少なくとも1ユーザーへのAgent 365ライセンス付与が必要だと書いています。日本の製品ページに載っている価格は次のとおりです(2026年9月24日時点)。

プラン ユーザー・月(年払い・税別) Agent 365の扱い
Microsoft Agent 365 2,248円 単体ライセンス
Microsoft 365 E7 14,842円 同梱

ドル建てでは、GA告知のMicrosoft Security Blogが単体をユーザーあたり月額15ドルと明記しています。課金の単位はエージェントの本数ではなく人です。ただし後述のFrontierプレビューでエージェント専用のユーザーアカウントを作る場合は、インスタンスごとに1ライセンスを消費する別の数え方になります。

Entra Agent IDのブループリントとエージェントIDの親子関係を押さえる

実装で最初に理解しておくべきはIDの構造です。Microsoft Entra Agent IDの基本概念によると、エージェントIDは資格情報を自分では持ちません。資格情報を持つのは親にあたるエージェントIDブループリントで、ブループリントが配下のすべてのエージェントIDの代わりにトークンを取得します。条件付きアクセスをブループリントにかけると、そこから作ったエージェントID全部に効きます。

同じページは、従来のサービスプリンシパルや人間用のユーザーアカウントをエージェントに流用することを非推奨としています。スポンサーの強制、エージェントを識別できる監査記録、ブループリント単位のライフサイクル管理が無いためです。既存のエージェントがアプリ登録とクライアントシークレットで動いているなら、Agent 365に載せる段階でID設計を組み替えることになります。MSALでのトークン取得の書き方はEntra IDのアプリをMicrosoft GraphとMSALへ移行する手順が土台になります。

自社エージェントをAgent 365へつなぐ3方式とSDKが要る場面の見分け方

「Agent 365に対応させる」と一口に言っても、作業量は方式で大きく違います。SDKを入れる前に、組み込み統合とレジストリ同期で足りないかを確かめるのが公式の推奨順です。

組み込み統合・レジストリ同期・SDKを適用範囲と実装方法で比べる

接続方式の選び方を説明した公式ページの比較表を、実装者の判断に要る列に絞って並べます。

方式 対象 実装 SDK
組み込み統合 組み込み統合に対応したエージェント コード不要(管理者の有効化は要る場合あり) 不要
レジストリ同期(プレビュー) 同期対象の他社プラットフォーム 基盤別に設定し、可視化・統制用に取り込む 不要
Agent 365 SDK 各SDK・フレームワークで自作したエージェント エージェントのコードに組み込む 必要

組み込み統合の対象はAgent Builder、Copilot Studio、Azure AI Foundry、Copilot Cowork、Researcher、統合済みの他社製エージェント。レジストリ同期はGoogle Vertex AIとAmazon Bedrock、SDKはAgents SDK、Agent Framework、OpenAI Agents SDK、LangChain、CrewAI、LlamaIndexなどで作ったものが対象です。

SDKが要るのは、自分でデプロイしているエージェントに、ID・可観測性・Work IQツール・通知のいずれかをコードの側で入れたい場合です。Bedrock上のエージェントを「管理画面に一覧で出したいだけ」なら、レジストリ同期で済む可能性があります。ただしプレビューの段階なので、本番の監査要件をこれに預けるのは早いと判断します。

FoundryエージェントをBot登録なしでTeamsへ公開する2026年の更新点

Foundryで作ったエージェントは組み込み統合の側に入ります。2026年9月18日付でMicrosoftのリリース情報に「FoundryエージェントのMicrosoft 365 CopilotとTeamsへの公開」の一般提供が掲載されました(GA時期の記載は2026年7月)。これまで必要だったボット登録とアプリマニフェストを用意せず、Foundryのポータルから直接公開でき、公開後もEntraとAgent 365の統制下に残る、という内容です。Foundry自体の位置づけはMicrosoft Foundryの概要をまとめた記事、エージェントの実行基盤と料金はFoundry Agent Serviceの移行と実装手順を解説した記事が扱っています。

エージェントが自分のIDで動く「autopilot」として公開する場合は条件が増えます。Foundryのautopilotのクイックスタートによると、テナントのFrontierプレビュー参加が必須で、参加したテナントには25席のプレビュー用サブスクリプションが付き、インスタンスを1つ作るたびに1席を消費します。ブループリントの承認はGlobal AdministratorかAI Administratorの仕事です。空き席が無いと、ビルドは成功したのにインスタンス作成で失敗します。

Agent 365 CLIとAgent 365 Skillsによる既存エージェント登録手順

ここからは自前コードのエージェントをSDKの方式でつなぐ手順です。前提は、Python・Node.js・.NETのいずれかで書かれた既存のエージェント、Agent 365を有効にしたテナント、リソースを作れるAzureサブスクリプションの3つです。

.NET 8でa365 CLIを入れてテナントの前提条件を確かめるコマンド

Agent 365 CLIのリファレンスによると、CLIは.NET 8.0以上で動くdotnetのグローバルツールです。パッケージの最新版はNuGetのMicrosoft.Agents.A365.DevTools.Cliで確認でき、2026年9月24日時点では1.1.221系でした。

# .NET 8.0以上が入っていることを確認
dotnet --version

# Agent 365 CLIをグローバルツールとして導入し、動作を確認
dotnet tool install --global Microsoft.Agents.A365.DevTools.Cli
a365 -h

# テナント側の前提(管理用アプリ・委任スコープ)を検査
a365 setup requirements

# 更新するとき
dotnet tool update --global Microsoft.Agents.A365.DevTools.Cli

サインインは、Windowsのネイティブ環境ではWAM、WSL・macOS・Linuxではデバイスコードフローになります。条件付きアクセスやセキュリティの既定値群がデバイスコードを止めているテナントでは AADSTS530035 が返るので、その場合はWindows上で実行します。リファレンスに明記されているのは、このエラーの回避を目的とした組織のセキュリティポリシーの無効化は禁止、という制約です。CIに組み込む計画なら、どの実行環境でどの認証フローが許されるかを先にID管理者と詰めておきます。

Claude CodeのAgent 365 Skillsで行うブループリント登録

公式の既存エージェントをAgent 365へつなぐクイックスタートは、CLIを手で叩く代わりに、コーディングアシスタントへAgent 365 Skillsを入れて進める手順を正としています。対応するのはClaude Code、GitHub Copilot CLI、VS Codeのエージェントモードで、導入には gh skill add microsoft/agent365-skills を使います。作業できるのはGlobal Administrator、またはGlobal Administratorに同意付与を頼めるAgent ID Developerです。

  1. a365-setup:前提条件を検査し、言語スタックを判定する。生成したIDとエンドポイントは a365.generated.config.json に保存される
  2. make-a365-agent:Entraにブループリントとそこから作るエージェントIDを登録し、必要な権限を付ける(標準エージェントの経路)
  3. instrument-observability:OBO・Agentic-User・S2Sの認証モードを選び、テレメトリの送信を組み込む
  4. add-workiq-tools:Mail・Calendar・WordなどのWork IQ MCPサーバーを接続する(任意)
  5. purview-dlp-integration:プロンプトがLLMに届く前にPurviewのDLPで止める処理を足す(任意)

スキルは「set up this project for Agent 365」のように結果を言葉で伝えて呼び出します。エージェント専用のユーザーアカウントを持たせる「AI teammate」の経路(make-ai-teammate)はFrontierプログラム参加テナントに限られるので、通常は標準エージェントの経路を選ぶことになります。

Python SDKで可観測性を組み込みinvoke_agentスパンを送る設定とつまずき

Agent 365 SDKの概要は、SDKが足す機能をID、可観測性、ツール、通知の4つとしています。モデルの呼び出し、エージェントの組み立て、ホスティングはSDKの外です。Microsoft 365 Agents SDKとは別製品で、あちらが会話型エージェントを作る枠組み、こちらが既存エージェントに統制の機能を足す部品という分担になります。

configureとInvokeAgentScopeによるPython最小トレース

可観測性はOpenTelemetryの上に作られています。Observability SDKのドキュメントの例から、設定とルートスパンの部分を抜き出すと次の形になります(AgentDetailsなどの引数は公式例から一部を省いています)。環境変数 ENABLE_A365_OBSERVABILITY_EXPORTERtrue にするとサービスへ送り、そうでなければコンソールへ出力します。

# pip install microsoft-agents-a365-observability-core microsoft-agents-a365-runtime
# export ENABLE_A365_OBSERVABILITY_EXPORTER=true
from microsoft_agents_a365.observability.core import (
    configure, InvokeAgentScope, InvokeAgentScopeDetails,
    AgentDetails, CallerDetails, UserDetails, Channel, Request, ServiceEndpoint,
)

def token_resolver(agent_id: str, tenant_id: str) -> str | None:
    # 実装ではエージェントIDのトークンを安全に取得して返す
    return "Bearer <token>"

configure(
    service_name="my-agent-service",
    service_namespace="my.namespace",
    token_resolver=token_resolver,
)

agent_details = AgentDetails(
    agent_id="agent-456",
    agent_name="My Agent",
    agent_blueprint_id="blueprint-789",
    tenant_id="tenant-123",
)
scope_details = InvokeAgentScopeDetails(
    endpoint=ServiceEndpoint(hostname="myagent.contoso.com", port=443),
)
request = Request(
    content="User asks a question",
    session_id="session-42",
    conversation_id="conv-xyz",
    channel=Channel(name="msteams"),
)
caller_details = CallerDetails(
    user_details=UserDetails(user_id="user-123", user_email="[email protected]"),
)

# この with がルートの invoke_agent スパンになり、ツール呼び出しや推論はこの内側に入る
with InvokeAgentScope.start(request, scope_details, agent_details, caller_details):
    response = call_agent(...)

OpenAI Agents SDK、LangChain、Semantic Kernel、Agent Frameworkを使っているなら、フレームワーク別の拡張パッケージで自動計装もできます。たとえば OpenAIAgentsTraceInstrumentor().instrument() を呼ぶだけで、エージェントの処理とツール呼び出しが記録されます。手で書くスコープは InvokeAgentScopeExecuteToolScopeInferenceScopeOutputScope の4種類です。

HTTP 200なのにテレメトリが見えない2つの原因と確認する順番

このSDKで一番時間を溶かすのは、エラーが出ないのにデータが届かない状態です。クイックスタートは原因を2つ挙げています。

1つ目はライセンスです。テナント内の少なくとも1ユーザーにMicrosoft 365 E7かAgent 365のライセンスが割り当てられていないと、リクエスト全体が捨てられます。SKUを購入済みでも、誰にも割り当てていなければ同じ結果です。2つ目はスパンの構造で、ルートに有効な invoke_agent スパンが無い実行は、Defenderの高度なハンティングでは検索できても、Defender・Purview・Microsoft 365管理センターのどの画面にも出ません。

確認はこの順で進めます。ライセンスの割り当て、ルートスパンの有無、選んだ認証モードが実行環境と合っているか。上のコードで with の外側でツールを呼んでいると2つ目に該当します。

Agent 365を採用する条件と受託開発で導入を見送ると決める場面

Agent 365を入れると、エージェントの棚卸しと監査が一か所に寄ります。その代わりに増える仕事は、Entraのブループリント設計、ライセンスの割り当て、SDKの組み込みです。割に合う境目を条件で示します。

他社フレームワーク製のエージェントを複数部署へ配る構成で効く採用条件

次のうち3つ以上が当てはまるなら、導入を進める価値があります。

  • Copilot Studio製、Foundry製、自社開発のエージェントが混在し、一覧できる場所が無い
  • エージェントが社員のメールや予定表、SharePointの文書に触れ、監査で「誰の権限で何をしたか」を説明する必要がある
  • 部署ごとにエージェントを配り、条件付きアクセスやDLPを人と同じ基準で当てたい
  • Microsoft 365 E5またはE7を既に契約し、Purview・Defenderの運用体制がある
  • エージェントの追加・廃止を申請と承認の流れに乗せたい

とくに効くのは1つ目と2つ目が重なる場面です。フレームワークの違うエージェントをそれぞれのログで追う構成は、本数が増えた時点で監査に答えられなくなります。LangChainやOpenAI Agents SDKで作ったエージェントを社内に展開する計画なら、AIエージェント開発の段階からEntraのID設計とテレメトリの組み込みを要件に入れておくと、後から載せ替える手戻りが無くなります。

Copilotライセンスが無いテナントでWork IQ連携を前提にする失敗

よくある誤算は、Agent 365を買えばエージェントがMicrosoft 365のデータを読めるようになる、という期待です。クイックスタートの機能別ライセンスでは、IDは追加ライセンス不要、可観測性はE7かAgent 365、Work IQのツール連携はMicrosoft 365 Copilotのライセンスが必要で、しかもWork IQ MCPはプレビューです。S2Sの認証モードを選ぶと、委任権限を前提とするWork IQの手順は自動で飛ばされます。MCPの仕組み自体はMCPの定義と仕組みを解説した記事で確認できます。

見送る線もはっきりさせておきます。エージェントが1本で、社内の1部署だけが使い、Microsoft 365のデータに触れない構成では採用しません。ブループリントの設計とライセンスの割り当てに掛かる手間が、アプリ側のログで足りる監査要件を上回ります。Copilotを契約していないテナントで、メールや予定表の操作を主目的にAgent 365を入れる計画も止めます。その目的に必要なのはCopilotのライセンスとWork IQで、Agent 365の単体契約では届きません。

よくある質問

Microsoft Agent 365の検討でよく出る5つの疑問に、Microsoft Learnと製品ページの記述をもとに答えます。

Microsoft Agent 365の料金はいくらですか?

日本の製品ページでは、単体ライセンスが1ユーザーあたり月額2,248円(年払い・税別)です。Microsoft 365 E7(14,842円)にも含まれます。ドル建ては月額15ドルです。課金はユーザー単位で、登録するエージェントの本数では増えません。例外はFrontierプレビューでエージェント専用のユーザーアカウントを作る場合で、インスタンスごとに1ライセンスを使います。価格は2026年9月24日時点の表示なので、契約前に製品ページで確かめてください。

Copilot StudioやFoundryで作ったエージェントにもSDKが必要ですか?

原則として不要です。Copilot Studio、Agent Builder、Azure AI Foundryは組み込み統合の対象で、コードを書かずにAgent 365のレジストリへ載ります。SDKが要るのは、自分でデプロイしているエージェントにID・可観測性・Work IQツール・通知をコードから足したい場合です。Foundryでもコードベースで組んだエージェントは、足りない機能をSDKで補う構成が公式に示されています。

Microsoft 365 Agents SDKとAgent 365 SDKは何が違いますか?

役割が逆です。Microsoft 365 Agents SDKはTeamsやMicrosoft 365 Copilotで会話するエージェントを作る枠組みで、メッセージの配信や会話の状態を扱います。Agent 365 SDKはエージェントを作らず、既にあるエージェントにID、可観測性、ツール、通知を足す部品です。公式は、Agents SDKで作ったエージェントにAgent 365 SDKを重ねる併用を想定しています。

AWSやGoogle Cloudで動くエージェントも管理できますか?

管理できます。接続に使える経路は、レジストリ同期とSDKの2つです。Amazon BedrockとGoogle Vertex AIのエージェントは、プレビューのレジストリ同期で取り込み、一覧と統制の対象にできます。任意のクラウドやオンプレミスで動く自前コードのエージェントは、Agent 365 SDKを組み込めば接続できます。SDKはホスト先を問わず、Azure以外で動いていても構いません。

テレメトリを送っているのに管理画面に何も出ないのはなぜですか?

多いのは2つの原因です。テナントの誰にもE7かAgent 365のライセンスが割り当てられていないと、リクエストがHTTP 200で返っても中身は捨てられます。もう1つは、ルートに invoke_agent スパンが無い場合で、Defenderの高度なハンティングでは見えても3つの管理画面には表示されません。ライセンスの割り当て、ルートスパン、認証モードの順に確認します。

関連記事

資料請求

RELATED POSTS 関連記事