エージェント開発ライフサイクル

Microsoft Foundry のエージェント開発ライフサイクルは、初期作成から運用監視まで多岐にわたります。 すべてのエージェントの中核となるのは、推論と応答の生成を促進する Foundry モデル カタログのモデルです。 このライフサイクルに従うことで、信頼性の高いエージェントを構築し、問題を早期にキャッチし、自信を持って出荷することができます。 Foundry ポータルまたはコードを使用して、エージェントの動作をビルド、カスタマイズ、テストします。 その後、トレース、評価、監視を繰り返して、品質と信頼性を向上させます。 準備ができたら、エージェントをエージェント アプリケーションとして発行して共有し、アプリに統合します。

この記事は、運用環境に対応したエージェントをビルド、テスト、出荷する開発者を対象としています。

前提 条件

ライフサイクルの概要

このライフサイクルは、エージェントをビルドして出荷する際の実用的なチェックリストとして使用します。

  1. エージェントの種類を選択します。プロンプト ベースのエージェントまたはホストされているエージェントから開始します。
  2. エージェントを作成してテストを開始する: プレイグラウンドまたはコードで反復処理します。
  3. ツールとデータを追加する: 取得とアクション用のツールをアタッチし、保存する前に構成を検証します。
  4. 変更をバージョンとして保存する: 意味のあるマイルストーンをキャプチャし、バージョンを比較します。
  5. トレースを使用したデバッグ: トレースを使用して、ツールの呼び出し、待機時間、エンド ツー エンドの動作を確認します。 詳細については、 エージェントトレースの概要を参照してください。
  6. 品質と安全性を評価する: 繰り返し可能な評価を実行して、発行前に回帰をキャッチします。 概念的なガイダンスについては、 エージェント エバリュエーターを参照してください。
  7. ホストされるエージェントを最適化する (プレビュー):ホストされているエージェントの指示を自動的に改善し、 エージェント オプティマイザーを使用してスキルを検出します。
  8. 発行と統合: 安定したエンドポイントを発行し、アプリケーションに統合します。 手順については、「Microsoft Foundry の Agent アプリケーション」を参照してください。
  9. 監視と反復処理: 運用環境のパフォーマンスと品質を監視し、必要に応じて更新および再発行します。 ガイダンスについては、「 エージェントの監視」を参照してください。

Microsoft Foundry のエージェントの種類

エージェントには次の 2 種類があります。

  • プロンプトベース: プロンプトベースのエージェントは、Foundry モデル、命令、ツール、自然言語プロンプトを組み合わせて動作を促進する宣言型に定義された単一のエージェントです。 知識とメモリ用のツールをアタッチして拡張します。 Foundry ポータルの Agents プレイグラウンド からプロンプト ベースのエージェントを編集、バージョン管理、テスト、評価、監視、発行します。

  • ホステッド: ホストされるエージェントは、サポートされているフレームワークまたはカスタム コードを使用してコードでビルドするコンテナー化されたエージェントです。 Foundry Agent Service は、これらのエージェントをデプロイおよび管理します。 エージェント構築 UI でホストされているエージェントは編集しませんが、引き続きそれらを呼び出し、評価、監視、発行できます。 詳細については、「ホストされるエージェントとは」を参照してください。

CLI、SDK、または REST API を使用して、Foundry ポータルまたは独自の開発環境でプロンプト ベースのエージェントを作成します。 詳細については、 クイック スタートを参照してください。

プロンプト ベースのエージェントの作成

作成するエージェントの種類が既にわかっている場合は、名前を付けてから、モデルの指示とツールの構成を開始します。

メモ

エージェントに名前を付けた後は、名前を変更できません。 コードでは、 <agent_name>:<version>によってエージェントを参照します。

コードでエージェントを開発する

コードで作業する場合は、サポートされている方法を使用して、エージェント コードを開発環境に取り込み、そこからローカルでテストし、Azureにデプロイできます。

エージェントプレイグラウンドのチャット ウィンドウの Code タブから、エージェントを Web クラウド環境専用のVisual Studio Codeに参照するコード スニペットを取得できます。 このスニペットは、必要なパッケージと拡張機能と共に、Foundry エージェントを効率的に開発してAzureにデプロイするための手順と共に事前に構成されています。 また、コード スニペットを好みの開発環境に直接コピーすることもできます。 詳細については、プレイグラウンドの ドキュメントを参照してください。

エージェント開発ライフサイクルのコア機能

エージェント構築エクスペリエンスは、エージェント開発ライフサイクルのコア ステップごとに統合されたエクスペリエンスを提供します。 運用対応のエージェント アプリケーションを開発するときは、これらのコア機能を使用します。 各機能には詳細なドキュメントがあり、詳細を確認できます。

変更をバージョンとして保存する

プロンプト ベースのエージェントの最初のバージョンを作成した後、以降の変更を新しいバージョンとして保存します。 エージェントのプレイグラウンドで未保存の変更をテストできます。 ただし、会話履歴を表示したり、エージェントのパフォーマンスを監視したり、完全な評価を実行したりする場合は、変更を保存する必要があります。

エージェントのバージョン管理には、エージェントの構成とイテレーションを管理するための次の機能が用意されています。 このシステムにより、すべての変更が追跡され、テスト可能で、バージョン間で比較可能になります。

  • バージョンの不変性: エージェントの各バージョンは、保存後に変更できません。 既存のバージョンを変更するには、保存して新しいバージョンを作成する必要があります。 この要件は、バージョンの整合性を確保し、誤って上書きされるのを防ぐのに役立ちます。

  • ドラフト状態管理: 未保存状態のエージェントを実験用にテストできます。 Foundry ポータルを終了すると、保存されていない変更が失われるので、重要な変更を保持するために頻繁に保存してください。

  • バージョン管理操作: 特定のエージェント バージョンに要求を送信して、制御されたデプロイとロールバックの機能を有効にすることができます。

  • バージョン履歴ナビゲーション: エージェントのバージョン履歴にアクセスし、特定のバージョンに移動して、次の比較を実行します。

    比較の種類 説明
    エージェントのセットアップ バージョン ドロップダウン リストを使用してバージョン間で構成設定を比較する
    チャットの出力 同じ入力を使用してエージェントのバージョン間の応答の違いを分析する
    YAML 定義 エージェント定義の違いを確認する

安定した get-or-create パターンを持つ参照エージェント

コードでは、 <agent_name>:<version>によってエージェントを参照します。 各エージェントを 1 回作成し、セッションとプロセス間でその識別子を保持して再利用します。

  • 1 回作成し、ID を再利用します。 アプリケーションが依存するエージェント名または ID をキャッシュします。 すべての実行で再作成しないでください。
  • 404 をターミナルとして扱います。 GET、run、または use の呼び出しで、以前に作成した ID に対して 404 Not Found が返された場合、そのエージェントは削除されています。 再作成します。 ループ内で同じ ID を再試行しないでください。
  • get-or-create を優先します。 起動時に、名前でエージェントを検索し、ルックアップが 404 を返す場合にのみエージェントを作成します。 このアプローチでは、単一の安定したIDを維持し、孤立した重複の発生を回避します。

ツールの追加

エージェントに知識 (特定のファイルまたはインデックス) を与えるか、アクションの実行 (外部 API の呼び出し) を許可することで、エージェントをより強力にします。 ツールは、単純なファイルのアップロードからカスタム モデル コンテキスト プロトコル (MCP) サーバー接続まで、ほとんどのユース ケースで使用できます。 より複雑なツールの場合は、認証を構成するか、エージェントへの接続の一部として接続を追加する必要があります。

ツールがアタッチされたエージェントを保存するには、ツールを正常に構成する必要があります。 エージェント間で構成済みのツールを再利用します。 ツールボックスを使用してエージェント用のツールを追加する方法と使用可能な機能については、「 ツールボックスの概要」を参照してください。

トレースを使用したデバッグと検証 (プレビュー)

ツールを追加してプロンプトを反復処理するときは、トレースを使用してエンドツーエンドの動作を検証します。

  • エージェントが予期したツールを呼び出したかどうかを確認します。
  • ツールの入力と出力を検査します。
  • モデル呼び出しとツール呼び出し全体の待機時間のホットスポットを特定します。

詳細については、「 エージェントトレースの概要」を参照してください。

品質と安全性の評価 (プレビュー)

エージェントを発行する前 (および意味のある変更の後) に、評価を実行して回帰をキャッチし、バージョン間で品質を一貫して測定します。

発行後の監視

エージェント アプリケーションを発行したら、運用ソフトウェアのように扱います。

  • 品質と安全信号を監視します。
  • 動作が変更されたときのトレースを確認します。
  • 問題を修正したり、改善を加えたりするときに、更新と再発行を行います。

ガイダンスについては、「 トレース エージェント」を参照してください。

ID とアクセス許可の計画

多くの場合、ツールとダウンストリーム リソースには認証が必要です。 エージェントを発行すると、その ID とアクセス許可モデルが変更される可能性があります。 公開されたエージェントに必要なアクセス権のみが付与されていることを確認します。

詳細については、Microsoft Foundry の Agent ID の概念に関するページを参照してください。

セキュリティとアクセス

エージェント構成をアプリケーション コードのように扱います。 ライフサイクル全体を通じてシークレットとアクセス許可を保護します。

  • キーを埋め込む代わりに、最小限の特権とロールの割り当てを使用します。 詳細については、 Foundry ポータルでのロールベースのアクセス制御に関するページを参照してください。
  • シークレットは、コード、構成ファイル、またはプロンプトにハードコーディングするのではなく、マネージド シークレット ストアに格納し、接続を介して参照します。 ガイダンスについては、「 Key Vault接続を設定する」を参照>。
  • 発行する前に、公開されたエージェント アプリケーションのエージェント ID とツール接続に必要なアクセス権のみが付与されていることを確認します。 詳細については、Microsoft Foundry の Agent ID の概念に関するページを参照してください。

エージェントを公開する

問題のないエージェント バージョンを作成したら、 エージェント アプリケーションとして発行します。 ブラウザーで開いてテストしたり、他のユーザーと共有したり、既存のアプリケーションに埋め込んだりできる安定したエンドポイントが得られます。 あなたとコラボレーターは、パフォーマンスを検証し、改善が必要なものを特定できます。 必要な更新を行い、いつでも新しいバージョンを再発行します。

重要

プロジェクト ID に割り当てられたアクセス許可は、発行されたエージェントに自動的に転送されません。 発行後、必要な特権をエージェント アプリケーションの ID に再割り当てします。

エージェント開発の一般的な落とし穴

  • 保存されていない変更は一時的なものです。バージョンの比較、履歴の表示、または完全な評価の実行を行う場合は、変更をバージョンとして保存します。
  • 保存する前にツールを構成する必要があります。ツールで認証または接続が必要な場合は、保存する前にセットアップを完了してください。
  • 発行にはアクセス許可の更新が必要な場合があります。発行後、発行されたエージェント ID のリソース アクセスを再確認し、エージェントに不要になったアクセス権を削除します。
  • 削除されたエージェントの ID を再利用する: エージェントが削除されると、エージェント ID が無効になります。 削除された ID または作成されていない ID を参照する呼び出しは、 404 Not Foundを返します。 以前に有効な ID に対して 404 をターミナルとして扱います。 同じ ID を再試行するのではなく、エージェントを再作成 (または get または create パターンを使用) します。 削除された ID を繰り返しポーリングしても成功することはなく、エラー トラフィックのみが生成されます。

エージェントの種類の詳細については、以下を参照してください。

エージェントの構成と拡張:

エージェントのデプロイと監視:

デバッグと評価: