Teams で AI エージェント ボットを構築する
Microsoft Teamsの AI エージェントは、大規模言語モデル (LLM) を使用してユーザーと対話する会話型チャットボットです。 ユーザーの意図を理解し、一連のアクションを選択して、チャットボットが一般的なタスクを完了できるようにします。
前提条件
インストール | 使用するには... |
---|---|
Visual Studio Code | JavaScript、TypeScript、または Python ビルド環境。 最新バージョンを使用します。 |
Teams ツールキット | アプリのプロジェクト スキャフォールディングを作成する Microsoft Visual Studio Code 拡張機能。 最新バージョンを使用します。 |
Node.js | バックエンド JavaScript ランタイム環境。 詳細については、「 プロジェクトの種類Node.js バージョン互換性テーブル」を参照してください。 |
Microsoft Teams | Microsoft Teams、チャット、会議、通話のアプリを通じて作業するすべてのユーザーと 1 か所で共同作業を行うことができます。 |
Azure OpenAI | 最初に OpenAI API キーを作成して、OpenAI の生成済み事前トレーニングトランスフォーマー (GPT) を使用します。 アプリをホストする場合、または Azure でリソースにアクセスする場合は、Azure OpenAI サービスを作成する必要があります。 |
新しい AI エージェント プロジェクトを作成する
Visual Studio Code を開きます。
Visual Studio Code アクティビティ バーの [Teams Toolkit ] アイコンを選択します
[ 新しいアプリの作成] を選択します。
[ カスタム エンジン エージェント] を選択します。
[ AI エージェント] を選択します。
アプリをビルドするには、次のいずれかのオプションを選択します。
[ Build New]\(新規作成\) を選択します。
[ JavaScript] を選択します。
既定では 、OpenAI サービスが選択され、必要に応じて、OpenAI にアクセスするための資格情報を入力できます。 Enter キーを押します。
[ 既定のフォルダー] を選択します。
既定の場所を変更するには、次の手順に従います。
- [ 参照] を選択します。
- プロジェクト ワークスペースの場所を選択します。
- [ フォルダーの選択] を選択します。
アプリのアプリ名を入力し、 Enter キーを選択します。
AI エージェント ボットが正常に作成されました。
[エクスプローラー] で、env>.env.testtool.user ファイルに移動します。
次の値を更新します。
SECRET_AZURE_OPENAI_API_KEY=<your-key>
AZURE_OPENAI_ENDPOINT=<your-endpoint>
AZURE_OPENAI_DEPLOYMENT_NAME=<your-deployment>
アプリをデバッグするには、 F5 キーを選択するか、左側のウィンドウで [ 実行とデバッグ] (Ctrl + Shift + D) を選択し、ドロップダウン リストから [ テスト ツール (プレビュー)] で [デバッグ ] を選択します。
テスト ツールは、Web ページでボットを開きます。
ボット アプリのソース コードのツアーを開始する
フォルダー コンテンツ .vscode
デバッグ用の Visual Studio Code ファイル。 appPackage
Teams アプリ マニフェストのテンプレート。 env
環境ファイル。 infra
Azure リソースをプロビジョニングするためのテンプレート。 src
アプリのソース コード。 次のファイルをカスタマイズでき、実装の例を示して作業を開始できます。
File コンテンツ src/index.js
ボット アプリ サーバーを設定します。 src/adapter.js
ボット アダプターを設定します。 src/config.js
環境変数を定義します。 src/prompts/planner/skprompt.txt
プロンプトを定義します。 src/prompts/planner/config.json
プロンプトを構成します。 src/prompts/planner/actions.json
アクションを定義します。 src/app/app.js
AI エージェントのビジネス ロジックを処理します。 src/app/messages.js
メッセージ アクティビティ ハンドラーを定義します。 src/app/actions.js
AI アクションを定義します。 Teams Toolkit 固有のプロジェクト ファイルを次に示します。 Teams Toolkit のしくみの詳細については、 GitHub の完全なガイドを参照してください。
File コンテンツ teamsapp.yml
これは、Teams Toolkit プロジェクト ファイルメインです。 プロジェクト ファイルは、プロパティと構成ステージの定義を定義します。 teamsapp.local.yml
これにより、ローカル実行とデバッグを有効にするアクションで teamsapp.yml
がオーバーライドされます。teamsapp.testtool.yml
これにより、Teams アプリ テスト ツールでローカル実行とデバッグを有効にするアクションで teamsapp.yml
がオーバーライドされます。
Teams AI ライブラリを使用して AI エージェントを作成する
新しいビルド
Teams AI ライブラリには、独自の AI エージェントを構築するプロセスを簡略化する包括的なフローが用意されています。 理解する必要がある重要な概念は次のとおりです。
- アクション: アクションは、AI システムに登録されるアトミック関数です。
- Planner: プランナーは、プロンプトまたはプロンプト テンプレートの形式でユーザーの要求を受け取り、それを満たす計画を返します。 これは、AI を使用して、AI システムに登録されているアクションと呼ばれるアトミック関数を混在させて照合することで実現されます。 これらのアクションは、目標を完了する一連の手順に組み込まれます。
- アクション Planner: アクション Plannerは LLM を使用してプランを生成します。 パラメーター化されたアクションをトリガーし、テキスト ベースの応答をユーザーに送信できます。
Assistants API を使用したビルド
OpenAI の Assistants API は、AI エージェントの作成の開発作業を簡略化します。 プラットフォームとしての OpenAI には、コード インタープリター、ナレッジ取得、関数呼び出しなどの事前構築済みのツールが用意されており、一般的なシナリオで記述する必要があるコードが簡略化されます。
比較 | 新しいビルド | Assistants API を使用したビルド |
---|---|---|
コスト | LLM サービスのコストのみ | LLM サービスのコストと、Assistants API でツールを使用する場合は、追加のコストが発生します。 |
開発作業 | 中 | 比較的小さい |
LLM サービス | Azure OpenAI または OpenAI | OpenAI のみ |
テンプレートの実装例 | このアプリ テンプレートは、チャットを行い、ユーザーがタスクを管理するのに役立ちます。 | このアプリ テンプレートでは、コード インタープリター ツールを使用して数学の問題を解決し、関数呼び出しツールを使用して都市の天気を取得します。 |
制限事項 | 該当なし | Teams AI ライブラリでは、ナレッジ取得ツールはサポートされていません。 |
アプリ テンプレートをカスタマイズする
プロンプト拡張をカスタマイズする
SDK には、プロンプトを拡張する機能が用意されています。
-
src/prompts/planner/actions.json
ファイルで定義されているアクションがプロンプトに挿入されます。 これにより、LLM は使用可能な関数を認識できます。 - プロンプトテキストの内部部分がプロンプトに挿入され、LLM に、使用可能な関数に基づいて呼び出す関数を決定するように指示します。 このプロンプト テキストは、構造化された json 形式で応答を生成するために LLM を注文します。
- SDK は LLM 応答を検証し、応答の形式が間違っている場合に LLM で応答を修正または絞り込むことができます。
src/prompts/planner/config.json
ファイルで、augmentation.augmentation_type
を構成します。 以下のオプションがあります:
-
Sequence
: 複数のステップまたは複雑なロジックを必要とするタスクに適しています。 -
Monologue
:自然言語の理解と生成、柔軟性と創造性を必要とするタスクに適しています。
新しい追加関数をビルドする
src/prompts/planner/actions.json
ファイルで、アクション スキーマを定義します。[ ... { "name": "myFunction", "description": "The function description", "parameters": { "type": "object", "properties": { "parameter1": { "type": "string", "description": "The parameter1 description" }, }, "required": ["parameter1"] } } ]
src/app/actions.ts
ファイルで、アクション ハンドラーを定義します。// Define your own function export async function myFunction(context: TurnContext, state: TurnState, parameters): Promise<string> { // Implement your function logic ... // Return the result return "..."; }
src/app/app.ts
ファイルで、アクションを登録します。app.ai.action("myFunction", myFunction);
アシスタント作成をカスタマイズする
src/creator.ts
ファイルによって、新しい OpenAI Assistant が作成されます。 命令、モデル、ツール、関数などのパラメーターを更新することで、アシスタントをカスタマイズできます。
Assistants API add Functions を使用したビルド
アシスタントが関数とその引数を提供して実行する場合、SDK はこの関数を事前登録されたアクションに合わせます。 後でアクション ハンドラーをアクティブ化し、結果をアシスタントに送信します。 関数を統合するには、アプリ内でアクションを登録します。
src/app/actions.ts
ファイルで、アクション ハンドラーを定義します。// Define your own function export async function myFunction(context: TurnContext, state: TurnState, parameters): Promise<string> { // Implement your function logic ... // Return the result return "..."; }
src/app/app.ts
ファイルで、アクションを登録します。app.ai.action("myFunction", myFunction);
関連項目
Platform Docs