Teams で AI エージェント ボットを構築する

Microsoft Teams の AI エージェントは、大規模言語モデル (LLM) を使用してユーザーと対話する会話型チャットボットです。 ユーザーの意図を理解し、一連のアクションを選択して、チャットボットが一般的なタスクを完了できるようにします。

AI エージェント ボットの要求と応答をビルドするプロセスを示すスクリーンショット。

前提条件

インストール 使用するには...
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 エージェント プロジェクトをCreateする

  1. Visual Studio Code を開きます。

  2. Visual Studio Code アクティビティ バーの [Teams Toolkit] アイコンを選択します

  3. [新しいアプリCreate] を選択します

    スクリーンショットは、Teams Toolkit サイドバーの [新しいプロジェクト] リンクCreateの場所を示しています。

  4. [ カスタム Copilot] を選択します。

    作成する新しいプロジェクトとしてカスタム Copilot を選択するオプションを示すスクリーンショット。

  5. [ AI エージェント] を選択します。

    AI ライブラリ リストを使用してアプリ機能を選択するオプションを示すスクリーンショット。

  6. アプリをビルドするには、次のいずれかのオプションを選択します。

    1. [ Build New]\(新規作成\) を選択します

      使用可能な AI エージェントを選択するオプションを示すスクリーンショット。

    2. [ JavaScript] を選択します

      プログラミング言語を選択するオプションを示すスクリーンショット。

    3. 既定では 、OpenAI サービスが選択され、必要に応じて、OpenAI にアクセスするための資格情報を入力できます。 Enter キーを押します。

      Azure Open API キーを入力する場所を示すスクリーンショット。

    4. [ 既定のフォルダー] を選択します

      保存する場所アプリ フォルダーを示すスクリーンショット。

      既定の場所を変更するには、次の手順に従います。

      1. [ 参照] を選択します
      2. プロジェクト ワークスペースの場所を選択します。
      3. [ フォルダーの選択] を選択します
    5. アプリのアプリ名を入力し、 Enter キーを選択します。

      適切な名前を入力するオプションを示すスクリーンショット。

      AI エージェント ボットが正常に作成されました。

      AI チャットボットが作成され、readme ファイルが使用可能であることを示すスクリーンショット。

    6. [エクスプローラー] でenv.env.testtool.user> ファイルに移動します。

    7. 次の値を更新します。

      • SECRET_AZURE_OPENAI_API_KEY=<your-key>
      • AZURE_OPENAI_ENDPOINT=<your-endpoint>
      • AZURE_OPENAI_DEPLOYMENT_NAME=<your-deployment>

      env ファイルで更新された詳細を示すスクリーンショット。

    8. アプリをデバッグするには、 F5 キーを選択するか、左側のウィンドウで [ 実行とデバッグ] (Ctrl + Shift + D) を選択し、ドロップダウン リストから [ テスト ツール (プレビュー)] で [デバッグ ] を選択します。

      オプションの一覧からのデバッグ オプションの選択を示すスクリーンショット。

    テスト ツールは、Web ページでボットを開きます。

    AI エージェントビルドの新しいボットの最終的な出力を示すスクリーンショット。

    ボット アプリのソース コードのツアーを開始する

    フォルダー コンテンツ
    .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 これは、 teamsapp.yml Teams アプリ テスト ツールでローカル実行とデバッグを有効にするアクションでオーバーライドされます。

Teams AI ライブラリを使用して AI エージェントをCreateする

新しいビルド

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 アシスタントが作成されます。 命令、モデル、ツール、関数などのパラメーターを更新することで、アシスタントをカスタマイズできます。

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);
    

関連項目

Teams AI ライブラリ