このクイックスタートでは、Agent 365のツール、通知、可観測性を使用して動作する JavaScript LangChain エージェントを設定し、Agents Playground と Teams でエージェントをテストする手順について説明します。
前提条件
- Visual Studio Code を使用する場合は、.NET がインストールされている必要があります。 (.NET 8.0 が推奨されています。)
- Node.js (バージョン 18 以降)
- LangChain
- エージェントのプレイグラウンド
- Npm (Node パッケージ マネージャー) へのアクセスが NodeJS と共にインストールされている
- GitHub へのアクセス
- 既存の AI エージェント プロジェクト。 このクイックスタートでは、Microsoft 365 エージェント ツールキット (ATK) の Agent 365 サンプル エージェントを VS Code で使用します。
- A365 CLI
- エージェント ID 認証
Microsoft 365 Agents Toolkit から LangChain + Node.js サンプルを設定する
準備を整えるには、VS CodeにMicrosoft 365 Agents Toolkit をインストールし、サンプルギャラリーを開き、LangChain + Node.js サンプルをローカルにスキャフォールディングします。これにより後で構成と実行が可能になります。 以下のスクリーンショットは、操作を進める際に表示される内容の例を示しています。
Visual Studio Code を開き、Extensions パネルを開きます (Ctrl+Shift+X)。
検索バーに、Agents Toolkit と入力します。
結果が次のスクリーンショットのように表示されます。
Microsoft 365 Agents Toolkit を選択します。
インストールを選択します。
VS Code には、次のような拡張機能の詳細ビューが表示されます。
インストールすると、左側のナビゲーション バーに M365 Agents Toolkit アイコンが表示されます。
これを選択して、ウェルカム エクスペリエンスを開きます。
次に示すように、宣言型エージェントの構築、新しいエージェント/アプリの作成、サンプルの表示などのオプションが表示されます。
サンプルの表示を選択します。
サンプルの一覧で、スクロールして LangChain + Node.js エージェント サンプルを見つけます。
それを選択します。
Create (ローカルでスキャフォールディングする) と GitHub で表示するの 2 つの選択肢が表示されます。
[作成]を選択します。
プロンプトが表示されたら、サンプルを生成するマシン上のフォルダを選択してください。 例:
C:\A365-Ignite-Demoツールキットは、LangChain + Node.js サンプルをサブフォルダ (sample_agent など) に展開し、その後自動的に VS Code で開きます。
スキャフォールディングが完了すると、マシンに完全に機能する LangChain + Node.js エージェント プロジェクトが作成されます
必須の Agent 365 パッケージをインストールする
サンプルを実行する前に、プロジェクト内の package.json を開き、必要なすべての Agent 365 と Agent Framework の依存関係が一覧表示されていることを確認します。 Microsoft 365 Agents Toolkit が生成したサンプルには、既にこれらのエントリが含まれています。
package.json を確認した後は、次を実行してすべてをインストールします。
npm install
これにより、すべての Agent 365 ライブラリ、Agent Framework の依存関係、ホスティング コンポーネント、およびサンプルで定義されているその他の依存関係がダウンロードされます。 インストール後、開発サーバーを起動して、プロジェクトのビルドと実行を確認します
npm run dev
Microsoft 365 ツール (MCP サーバー) を追加する
CLI の a365 開発コマンドを使用することで、MCP サーバーを探索および管理できます。
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
}
監視
このスニペットは、サンプルで監視機能を有効にするために必要となる最小限の変更を示しています。 Agent 365 Observability SDK を初期化し、各エージェント呼び出しを InferenceScope でラップすることで、入力、出力、メタデータを自動的にキャプチャできるようになります。
以下のコードは、client.ts ファイルにおける簡素化された可観測性の例を示しています。
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 + LangChain サンプルで監視を実現するコア パターンを示しています。 完全な監視のセットアップについては、監視の詳細を参照してください
エージェントをテストする
必要な環境変数を設定し、認証モードを選択して、エージェントをローカルで起動します。 エージェントを発行して Teams や Outlook などのアプリで使用する場合を除き、Microsoft 365 テナントがなくても、Agents Playground でエンド ツー エンドのテストをすべて実行できます。 詳細な手順については、テストの詳細を参照し、エージェント プレイグラウンドでエージェントのテスト構成を行ってください。
テスト手順の概要
- API キーとモデル設定を
.envファイルに追加し、サンプルが LLM と通信できるようにしてください。 - 認証モードを選択します。 ローカル開発では、サンプルは 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でエージェントのブループリントを設定しなければなりません。 開発者 ポータルのエージェントブループリント構成を参照してください。
公開されたエージェントは、次のページで確認できます: https://admin.cloud.microsoft/#/agents/all