このクイックスタートでは、Agent 365のツール、通知、可観測性を使用して動作する JavaScript Claude エージェントを設定し、Agents Playground と Teams でエージェントをテストする手順について説明します。
Prerequisites
- Visual Studio Codeを使用する場合は、.NETがインストールされている必要があります。 (.NET 8.0 をお勧めします)。
- Node.js (バージョン 18 以降)
- Claude Agent SDK パッケージと Anthropic API キー
- エージェントのプレイグラウンド
- npm (ノード パッケージ マネージャー) のインストールへのアクセス
- GitHubへのアクセス
- 既存の AI エージェント プロジェクト。 このクイック スタートでは、Microsoft 365 Agents Toolkit ギャラリー (VS Code の ATK) の Claude サンプル エージェントを使用します。
- A365 CLI
- エージェント ID 認証
Microsoft 365 Agents Toolkit から Claude + Node.js サンプルを設定する
すべてを準備するには、VS Code に Microsoft 365 Agents Toolkit をインストールし、サンプル ギャラリーを開き、Claude + Node.js サンプルをローカルでスキャフォールディングして、後で構成して実行できるようにします。 次のスクリーンショットは、フロー内を移動するときに想定される内容を示しています。
Visual Studio Codeで、Extensionsパネル(Ctrl+Shift+X)を開き、Microsoft 365 Agents Toolkitを検索して、Installを選択します。
VS Code アクティビティ バーから M365 Agents Toolkit ビューを開き、サンプルの表示を選択します。
Claude + Node.js サンプルを選択し、作成を選択し、プロジェクトをスキャフォールディングするフォルダー (
C:\A365-Ignite-Demoなど) を選択 (または作成) します。 ツールキットはサブフォルダー (sample_agentなど) を作成し、VS Code で開きます。
スキャフォールディングが完了すると、実行可能なプロジェクトが作成されます。 次の手順は、新しいサンプル フォルダー内で行われます。
依存関係をインストールして、環境を構成する
生成された package.json には、サンプルに必要なパッケージが既に一覧表示されているため、すべてを 1 つのパスにインストールします。
npm install
インストール後、開発サーバーを起動して、プロジェクトのビルドと実行を確認します
npm run dev
開発サーバーはサンプル (既定では localhost:3978) で構成されたポートで待機し、Agents Playground または CLI からの要求を受け付ける準備が完了します。
Microsoft 365 ツールの追加 (MCP サーバー)
CLI の a365 開発コマンドを使用することで、MCP サーバーを探索および管理できます。
@microsoft/agents-a365-tooling-extensions-claude パッケージは、これらの MCP サーバーを Claude オーケストレーターに結び付け、エージェント SDK が Claude エージェント プランで定義されているスキルを使用してMicrosoft 365 ツールをインラインで呼び出すことができるようにします。
Microsoft MCPツールを使うことで、以下のようなことができます:
- 使用可能な MCP サーバーを検出する
- エージェントの構成に 1 つ以上の MCP サーバーを追加する
- 現在構成されている MCP サーバーを確認する
- 不要になった MCP サーバーを削除する
MCP サーバーが追加されると、エージェントのツール マニフェストが拡張され、次のようなエントリが含まれます。
{
"mcpServers": [
{
"mcpServerName": "mcp_MailTools",
"mcpServerUniqueName": "mcp_MailTools",
"scope": "McpServers.Mail.All",
"audience": "api://00001111-aaaa-2222-bbbb-3333cccc4444"
}
]
}
通知サブスクリプションと処理
サンプル エージェントは、onAgentNotification("*") を使用して Agent 365 のすべての通知を購読し、それらを 1 つのハンドラーにルーティングします。 このハンドラーにより、エージェントは直接的なユーザー メッセージだけでなく、バックグラウンドやシステム イベントにも反応できるようになります。
次のコードは、agent.ts ファイルでの通知の構成方法を示しています。
constructor() {
super();
this.onAgentNotification("agents:*", async (context, state, activity) => {
await this.handleAgentNotificationActivity(context, state, activity);
});
}
async handleAgentNotificationActivity(context, state, activity) {
await context.sendActivity("Received an AgentNotification!");
// Add custom handling here
}
Observability
Important
このサンプルは非推奨のAgent 365 Observability SDKを使用しています。 このパターンは新しいオブザーバビリティ連携には使わないでください。 代わりにMicrosoft OpenTelemetry Distroを使いましょう。
以下のスニペットは、廃止されたAgent 365 Observability SDKを初期化し、各エージェント呼び出しを InferenceScope でラップして、入力、出力、メタデータを自動的にキャプチャできるようにします。
import {
InferenceOperationType,
InferenceScope,
ObservabilityManager
} from '@microsoft/agents-a365-observability';
const sdk = ObservabilityManager.configure(b =>
b.withService('<service-name>', '<version>')
);
sdk.start();
async invokeAgentWithScope(prompt: string) {
const scope = InferenceScope.start(
{
operationName: InferenceOperationType.CHAT,
model: '<llm-name>'
},
{
agentId: '<agent-id>',
agentName: '<agent-name>',
conversationId: '<conv-id>'
},
{ tenantId: '<tenant-id>' }
);
const response = await this.invokeAgent(prompt);
scope?.recordInputMessages([prompt]);
scope?.recordOutputMessages([response]);
scope?.recordResponseId(`resp-${Date.now()}`);
return response;
}
このコードは、Node.js + Claudeサンプルに必要な廃止されたAgent 365 Observability SDKセットアップを使用しています。 プレースホルダーのメタデータを、エージェント用に既に構成済みの値で置き換えます。 Microsoft OpenTelemetry の移行ガイダンスを含む廃止された SDK ドキュメントを確認してください。
エージェントをテストする
必要な環境変数を設定し、認証モードを選択して、エージェントをローカルで起動します。 エージェントを発行して Teams や Outlook などのアプリで使用する場合を除き、Microsoft 365 テナントを必要とせずに、Agents Playground ですべてをエンドツーエンドでテストできます。
テスト手順の概要
-
ANTHROPIC_API_KEYとモデル設定を.envファイルに追加し、サンプルが Claude と通信できるようにします。 - 認証モードを選択します。 ローカル開発では、サンプルは Agent Blueprint から作成された値を使用したエージェント型認証をサポートします。
- エージェントをローカルで起動し、Agents Playground などのツールに公開します。
- Agents Playground を使用して、テナントの設定や何かを展開することなく、メッセージ、ツール、通知をテストできます。
- 実際の動作の準備ができたら、Microsoft 365 テナントを発行し、Teams、Outlook、またはその他のMicrosoft 365サーフェス内でエージェントをテストします。
エージェントを公開する
エージェントが Teams チャット、Outlook メッセージ、Word @mentions などの実際のMicrosoft 365エクスペリエンスの準備ができたら、Microsoft 365 テナントに発行します。
Agent 365のCLIpublishコマンドはパッケージングを担当します。マニフェストを更新し、すべてをバンドルし、エージェントをMicrosoft管理センターにアップロードします。
公開中に、アップロードを完了する前に、エージェントの名前、説明、アイコン、バージョンを確認してカスタマイズします。 公開されると、エージェントが登録され、テナント内にインストールできるようになります。
Important
エージェントを公開した後は、インスタンスを作成する前にDeveloper Portalでエージェントのブループリントを設定しなければなりません。 Developer Portalでエージェントブループリントの設定方法を学びましょう
公開されたエージェントは、次のページで確認できます: https://admin.cloud.microsoft/#/agents/all