次の方法で共有


チュートリアル: プロトタイプを作成するアイデア - エンタープライズ エージェントを構築して評価する

このチュートリアルでは、Microsoft Foundry 開発者体験の最初の段階 (最初のアイデアから実際のプロトタイプまで) について説明します。 Microsoft Foundry SDK を使用して、社内の知識と外部の技術ガイダンスを組み合わせた 最新のワークプレース アシスタント を構築します。

ビジネス シナリオ: 次の組み合わせによって従業員を支援する AI アシスタントを作成します。

  • 会社のポリシー (SharePoint ドキュメントから)
  • 技術的な実装ガイダンス (MCP 経由の Microsoft Learn から)
  • 完全なソリューション (ビジネス実装用に両方のソースを組み合わせる)
  • 現実的なビジネス シナリオでエージェントのパフォーマンスを検証するためのバッチ評価

チュートリアルの結果:最終的には、ポリシー、技術、および組み合わされた実装の質問に答えることができる最新のワークプレースアシスタントを実行できます。反復可能なバッチ評価スクリプト。と明確な拡張ポイント (他のツール、マルチエージェント パターン、より豊富な評価)。

そうするでしょう:

  • SharePoint と MCP の統合を使用してモダン ワークプレース アシスタントを構築します。
  • 内部知識と外部知識を組み合わせた実際のビジネス シナリオを示します。
  • 堅牢なエラー処理と正常な低下を実装します。
  • ビジネスに重点を置いたテスト用の評価フレームワークを作成します。
  • ガバナンスと運用環境へのデプロイの基礎を準備します。

この最小限のサンプルでは、現実的なビジネス シナリオを含むエンタープライズ対応のパターンを示します。

Important

この記事のコードでは、現在プレビュー段階にあるパッケージを使用します。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

[前提条件]

手順 1: サンプル コードを取得する

大きなリポジトリ ツリーを移動する代わりに、次のいずれかの方法を使用します。

オプション A (サンプル リポジトリ全体を複製)

ヒント

コードは Azure AI Projects 2.x を使用し、Azure AI Projects 1.x と互換性がありません。 Azure AI Projects 1.x バージョンについては、Foundry (クラシック) のドキュメントを参照してください

git clone --depth 1 https://github.com/microsoft-foundry/foundry-samples.git
cd foundry-samples/samples/python/enterprise-agent-tutorial/1-idea-to-prototype

オプション B (このチュートリアルのみスパース チェックアウト - ダウンロードの削減)

git clone --no-checkout https://github.com/microsoft-foundry/foundry-samples.git
cd foundry-samples
git sparse-checkout init --cone
git sparse-checkout set samples/python/enterprise-agent-tutorial/1-idea-to-prototype
git checkout
cd samples/python/enterprise-agent-tutorial/1-idea-to-prototype

オプション C (リポジトリの ZIP をダウンロード)

リポジトリ ZIP をダウンロードし、ローカル環境に展開して、チュートリアル フォルダーに移動します。

Important

運用環境を導入する場合は、スタンドアロン リポジトリを使用します。 このチュートリアルでは、共有サンプル リポジトリを使用します。 スパース チェックアウトは、ローカル ノイズを最小限に抑えます。

ZIP を抽出したら、 samples/python/enterprise-agent-tutorial/1-idea-to-prototypeに移動します。

最小構造には、重要なファイルのみが含まれています。

enterprise-agent-tutorial/
└── 1-idea-to-prototype/
   ├── .env                             # Create this file (local environment variables)
   ├── .gitkeep
   ├── evaluate.py                      # Business evaluation framework
   ├── evaluation_results.json
   ├── main.py                          # Modern Workplace Assistant
   ├── questions.jsonl                  # Business test scenarios (4 questions)
   ├── requirements.txt                 # Python dependencies
   └── sharepoint-sample-data/          # Sample business documents for SharePoint
      ├── collaboration-standards.docx
      ├── data-governance-policy.docx
      ├── remote-work-policy.docx
      └── security-guidelines.docx

手順 2: サンプルをすぐに実行する

まず、エージェントを実行して、実装の詳細を確認する前に作業機能を確認します。

環境のセットアップと仮想環境

  1. 「開発環境の準備」の説明に従って、必要な言語ランタイム、グローバル ツール、VS Code 拡張機能 をインストールします

  2. requirements.txtで次の発行済みパッケージ バージョンが使用されていることを確認します。

    azure-ai-projects==2.0.0b3
    azure-identity
    python-dotenv
    openai
    
  3. 依存関係をインストールします。

    python -m pip install -r requirements.txt
    

    インストールが成功したことを確認します。 Successfully installed azure-ai-projects-... (Python) または Restore completed (.NET) がエラーなしで表示されます。

  4. プロジェクトのウェルカム画面でプロジェクト エンドポイントを見つけます。

    エンドポイントの URL とコピー ボタンを示す Microsoft Foundry Models のようこそ画面のスクリーンショット。

  5. .envを構成します。

    言語に必要な環境の値を設定します。

.env.template.env にコピーします。

# Foundry configuration
PROJECT_ENDPOINT=https://<your-project>.aiservices.azure.com
MODEL_DEPLOYMENT_NAME=gpt-4o-mini

# The Microsoft Learn MCP Server (optional)
MCP_SERVER_URL=https://learn.microsoft.com/api/mcp

# SharePoint integration (optional - requires connection name)
SHAREPOINT_CONNECTION_NAME=<your-sharepoint-connection-name>

ファイル .env 開き、 PROJECT_ENDPOINThttps:// で始まり、 MODEL_DEPLOYMENT_NAME がプロジェクト内の配置済みモデルの名前と一致することを確認して、有効な値が含まれていることを確認します。

ヒント

テナント ID を取得するには、次を実行します。

# Get tenant ID
az account show --query tenantId -o tsv

プロジェクト エンドポイントを取得するには、Foundry ポータルでプロジェクトを開き、そこに表示されている値をコピーします。

エージェントを実行し、評価する

python main.py
python evaluate.py

予想される出力 (エージェントの最初の実行)

SharePoint での正常な実行:

🤖 Creating Modern Workplace Assistant...
✅ SharePoint tool configured successfully
✅ Agent created successfully (name: Modern Workplace Assistant, version: 1)

SharePoint を使わずに優雅な劣化

📁 SharePoint integration skipped (SHAREPOINT_CONNECTION_NAME not set)
✅ Agent created successfully (name: Modern Workplace Assistant, version: 1)

作業エージェントが作成されたので、次のセクションでは、そのしくみについて説明します。 これらのセクションを読んでいる間に何らかのアクションを実行する必要はありません。これらは説明用です。

手順 3: サンプルの SharePoint ビジネス ドキュメントを設定する

  1. SharePoint サイト (接続で構成済み) に移動します。

  2. ドキュメント ライブラリ "会社のポリシー" を作成します (または、既存の "ドキュメント" を使用します)。

  3. sharepoint-sample-data フォルダーに用意されている 4 つのサンプル Word 文書をアップロードします。

    • remote-work-policy.docx
    • security-guidelines.docx
    • collaboration-standards.docx
    • data-governance-policy.docx
  4. 続行する前に、ライブラリに 4 つのドキュメントが表示されることを確認します。

サンプル構造

📁 Company Policies/
├── remote-work-policy.docx      # VPN, MFA, device requirements
├── security-guidelines.docx     # Azure security standards
├── collaboration-standards.docx # Teams, SharePoint usage
└── data-governance-policy.docx  # Data classification, retention

アシスタントの実装を理解する

このセクションは参考用です。アクションは必要ありません。 既に実行したコードについて説明します。

このセクションでは、 main.py (Python) または ModernWorkplaceAssistant/Program.cs (C#) のコア コードについて説明します。 あなたはすでにエージェントを実行しました。 読んだ後、次のことができます。

  • 新しい内部および外部データ ツールを追加します。
  • 動的命令を拡張します。
  • マルチエージェント オーケストレーションを導入します。
  • 可観測性と診断を強化します。

このコードは、完全なサンプル コードに示されているように、次のメイン セクションに分かれています。

  1. インポートと認証を構成する
  2. Azure への認証を構成する
  3. SharePoint ツールを構成する
  4. MCP ツールの構成
  5. エージェントを作成してツールを接続する
  6. エージェントとの会話

Important

この記事のコードでは、現在プレビュー段階にあるパッケージを使用します。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

インポートと認証のセットアップ

このコードでは、Microsoft Foundry SDK のいくつかのクライアント ライブラリを使用して、堅牢なエンタープライズ エージェントを作成します。

import os
import time
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
    PromptAgentDefinition,
    SharepointPreviewTool,
    SharepointGroundingToolParameters,
    ToolProjectConnection,
    MCPTool,
)
from azure.identity import DefaultAzureCredential
from dotenv import load_dotenv
from openai.types.responses.response_input_param import (
    McpApprovalResponse,
)

Azure で認証を構成する

エージェントを作成する前に、Foundry への認証を設定します。

with (
    DefaultAzureCredential() as credential,
    AIProjectClient(endpoint=endpoint, credential=credential) as project_client,
    project_client.get_openai_client() as openai_client,
):
    print(f"✅ Connected to Foundry: {endpoint}")

エージェントの SharePoint ツールを作成する

エージェントは SharePoint を使用し、そこに格納されている会社のポリシーおよびプロシージャ ドキュメントにアクセスできます。 コードで SharePoint への接続を設定します。

sharepoint_connection_id = os.environ.get("SHAREPOINT_CONNECTION_ID")
sharepoint_tool = None

if sharepoint_connection_id:
    print("📁 Configuring SharePoint integration...")
    print(f"   Connection ID: {sharepoint_connection_id}")

    try:
        sharepoint_tool = SharepointPreviewTool(
            sharepoint_grounding_preview=SharepointGroundingToolParameters(
                project_connections=[
                    ToolProjectConnection(
                        project_connection_id=sharepoint_connection_id
                    )
                ]
            )
        )
        print("✅ SharePoint tool configured successfully")
    except Exception as e:
        print(f"⚠️  SharePoint tool unavailable: {e}")
        print("   Agent will operate without SharePoint access")
        sharepoint_tool = None
else:
    print("📁 SharePoint integration skipped (SHAREPOINT_CONNECTION_ID not set)")

エージェントの MCP ツールを作成する

mcp_server_url = os.environ.get("MCP_SERVER_URL")
mcp_tool = None

if mcp_server_url:
    print("📚 Configuring Microsoft Learn MCP integration...")
    print(f"   Server URL: {mcp_server_url}")

    try:
        mcp_tool = MCPTool(
            server_url=mcp_server_url,
            server_label="Microsoft_Learn_Documentation",
            require_approval="always",
        )
        print("✅ MCP tool configured successfully")
    except Exception as e:
        print(f"⚠️  MCP tool unavailable: {e}")
        print("   Agent will operate without Microsoft Learn access")
        mcp_tool = None
else:
    print("📚 MCP integration skipped (MCP_SERVER_URL not set)")

エージェントを作成してツールを接続する

エージェントを作成し、SharePoint ツールと MCP ツールを接続します。

print(f"🛠️  Creating agent with model: {os.environ['MODEL_DEPLOYMENT_NAME']}")

tools = []
if sharepoint_tool:
    tools.append(sharepoint_tool)
    print("   ✓ SharePoint tool added")
if mcp_tool:
    tools.append(mcp_tool)
    print("   ✓ MCP tool added")

print(f"   Total tools: {len(tools)}")

agent = project_client.agents.create_version(
    agent_name="Modern Workplace Assistant",
    definition=PromptAgentDefinition(
        model=os.environ["MODEL_DEPLOYMENT_NAME"],
        instructions=instructions,
        tools=tools if tools else None,
    ),
)

print(f"✅ Agent created successfully (name: {agent.name}, version: {agent.version})")
return agent

エージェントとの会話

最後に、エージェントと対話する対話型ループを実装します。

print("🤖 AGENT RESPONSE:")
response, status = create_agent_response(agent, scenario["question"], openai_client)

エージェントサンプルコードからの予想される出力

エージェントを実行すると、次の例のような出力が表示されます。 出力には、ビジネス シナリオに対するツール構成とエージェントの応答の成功が示されています。

✅ Connected to Foundry
🚀 Foundry - Modern Workplace Assistant
Tutorial 1: Building Enterprise Agents with Microsoft Foundry SDK
======================================================================
🤖 Creating Modern Workplace Assistant...
📁 Configuring SharePoint integration...
   Connection ID: /subscriptions/.../connections/ContosoCorpPoliciesProcedures
✅ SharePoint tool configured successfully
📚 Configuring Microsoft Learn MCP integration...
   Server URL: https://learn.microsoft.com/api/mcp
✅ MCP tool configured successfully
🛠️  Creating agent with model: gpt-4o-mini
   ✓ SharePoint tool added
   ✓ MCP tool added
   Total tools: 2
✅ Agent created successfully (name: Modern Workplace Assistant, version: 1)

======================================================================
🏢 MODERN WORKPLACE ASSISTANT - BUSINESS SCENARIO DEMONSTRATION
======================================================================
This demonstration shows how AI agents solve real business problems
using the Microsoft Foundry SDK.
======================================================================

📊 SCENARIO 1/3: 📋 Company Policy Question (SharePoint Only)
--------------------------------------------------
❓ QUESTION: What is Contosoʹs remote work policy?
🎯 BUSINESS CONTEXT: Employee needs to understand company-specific remote work requirements
🎓 LEARNING POINT: SharePoint tool retrieves internal company policies
--------------------------------------------------
🤖 AGENT RESPONSE:
✅ SUCCESS: Contosoʹs remote work policy, effective January 2024, outlines the following key points:

### Overview
Contoso Corp supports flexible work arrangements, including remote work, to enhance employee productivity and work-life balance.

### Eligibility
- **Full-time Employees**: Must have completed a 90...
   📏 Full response: 1530 characters
📈 STATUS: completed
--------------------------------------------------

📊 SCENARIO 2/3: 📚 Technical Documentation Question (MCP Only)
--------------------------------------------------
❓ QUESTION: According to Microsoft Learn, what is the correct way to implement Azure AD Conditional Access policies? Please include reference links to the official documentation.
🎯 BUSINESS CONTEXT: IT administrator needs authoritative Microsoft technical guidance
🎓 LEARNING POINT: MCP tool accesses Microsoft Learn for official documentation with links
--------------------------------------------------
🤖 AGENT RESPONSE:
✅ SUCCESS: To implement Azure AD Conditional Access policies correctly, follow these key steps outlined in the Microsoft Learn documentation:

### 1. Understanding Conditional Access
Conditional Access policies act as "if-then" statements that enforce organizational access controls based on various signals. Th...
   📏 Full response: 2459 characters
📈 STATUS: completed
--------------------------------------------------

📊 SCENARIO 3/3: 🔄 Combined Implementation Question (SharePoint + MCP)
--------------------------------------------------
❓ QUESTION: Based on our companyʹs remote work security policy, how should I configure my Azure environment to comply? Please include links to Microsoft documentation showing how to implement each requirement.
🎯 BUSINESS CONTEXT: Need to map company policy to technical implementation with official guidance
🎓 LEARNING POINT: Both tools work together: SharePoint for policy + MCP for implementation docs
--------------------------------------------------
🤖 AGENT RESPONSE:
✅ SUCCESS: To configure your Azure environment in compliance with Contoso Corpʹs remote work security policy, you need to focus on several key areas, including enabling Multi-Factor Authentication (MFA), utilizing Azure Security Center, and implementing proper access management. Below are specific steps and li...
   📏 Full response: 3436 characters
📈 STATUS: completed
--------------------------------------------------

✅ DEMONSTRATION COMPLETED!
🎓 Key Learning Outcomes:
   • Microsoft Foundry SDK usage for enterprise AI
   • Conversation management via the Responses API
   • Real business value through AI assistance
   • Foundation for governance and monitoring (Tutorials 2-3)

🎯 Try interactive mode? (y/n): n

🎉 Sample completed successfully!
📚 This foundation supports Tutorial 2 (Governance) and Tutorial 3 (Production)
🔗 Next: Add evaluation metrics, monitoring, and production deployment

手順 4: クラウド評価を使用してアシスタントを評価する

評価フレームワークは、Microsoft Foundry SDK の クラウド評価 機能を使用して、現実的なビジネス シナリオをテストします。 このパターンでは、カスタムローカルアプローチの代わりに、組み込みのエバリュエーター (builtin.violencebuiltin.fluencybuiltin.task_adherence) と openai_client.evals API を使用して、スケーラブルで反復可能な評価をクラウドで実行します。

この評価フレームワークは、次のことを示しています。

  • エージェントのターゲット設定: 評価では、 azure_ai_target_completionsを使用してエージェントに対して直接クエリを実行します。
  • 組み込みのエバリュエーター: 安全性 (暴力検出)、品質 (流暢さ)、タスクの準拠メトリック。
  • クラウドベースの実行: ローカル コンピューティング要件を排除し、CI/CD 統合をサポートします。
  • 構造化された結果: 各テストケースのための合格/失敗のラベル、スコア、および推論。

このコードは、次のメイン セクションに分かれています。

  1. 評価を構成します
  2. クラウド評価を実行します
  3. 評価結果を取得します。

ヒント

クラウド評価の詳細なガイダンスについては、「 クラウドで評価を実行する」を参照してください。 Foundry で使用できる組み込みエバリュエーターの包括的な一覧については、「 生成 AI の可観測性」を参照してください。

C# SDK では、型指定されたオブジェクトではなく、BinaryDataを持つBinaryContentが使用されます。 この方法では、JSON 応答を解析するためのヘルパー メソッドが必要です。 完全なパターンについては、 C# Evaluations SDK サンプル を参照してください。

評価を構成する

まず、データ スキーマとテスト条件を定義する評価オブジェクトを作成します。 この評価では、暴力の検出、流暢さ、タスクの準拠に組み込みのエバリュエーターを使用します。

Python では、OpenAI クライアントを直接使用します。 C# で、プロジェクト クライアントから EvaluationClient を取得します。

load_dotenv()
endpoint = os.environ["PROJECT_ENDPOINT"]
model_deployment_name = os.environ.get("MODEL_DEPLOYMENT_NAME", "gpt-4o-mini")

with (
    DefaultAzureCredential() as credential,
    AIProjectClient(endpoint=endpoint, credential=credential) as project_client,
    project_client.get_openai_client() as openai_client,
):
    # Create or retrieve the agent to evaluate
    agent = project_client.agents.create_version(
        agent_name="Modern Workplace Assistant",
        definition=PromptAgentDefinition(
            model=model_deployment_name,
            instructions="You are a helpful Modern Workplace Assistant that answers questions about company policies and technical guidance.",
        ),
    )
    print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")

    # Define the data schema for evaluation
    data_source_config = DataSourceConfigCustom(
        type="custom",
        item_schema={
            "type": "object",
            "properties": {"query": {"type": "string"}},
            "required": ["query"]
        },
        include_sample_schema=True,
    )

    # Define testing criteria with built-in evaluators
    testing_criteria = [
        {
            "type": "azure_ai_evaluator",
            "name": "violence_detection",
            "evaluator_name": "builtin.violence",
            "data_mapping": {"query": "{{item.query}}", "response": "{{sample.output_text}}"},
        },
        {
            "type": "azure_ai_evaluator",
            "name": "fluency",
            "evaluator_name": "builtin.fluency",
            "initialization_parameters": {"deployment_name": f"{model_deployment_name}"},
            "data_mapping": {"query": "{{item.query}}", "response": "{{sample.output_text}}"},
        },
        {
            "type": "azure_ai_evaluator",
            "name": "task_adherence",
            "evaluator_name": "builtin.task_adherence",
            "initialization_parameters": {"deployment_name": f"{model_deployment_name}"},
            "data_mapping": {"query": "{{item.query}}", "response": "{{sample.output_items}}"},
        },
    ]

    # Create the evaluation object
    eval_object = openai_client.evals.create(
        name="Agent Evaluation",
        data_source_config=data_source_config,
        testing_criteria=testing_criteria,
    )
    print(f"Evaluation created (id: {eval_object.id}, name: {eval_object.name})")

testing_criteria配列は、実行するエバリュエーターを指定します。

  • builtin.violence: 応答で、暴力や有害なコンテンツを検出します。
  • builtin.fluency: 応答の品質と読みやすさを評価します (モデルのデプロイが必要です)。
  • builtin.task_adherence: エージェントが命令に正しく従ったかどうかを評価します。

クラウド評価を実行する

エージェントを対象とする評価実行を作成します。 azure_ai_target_completions データ ソースは、エージェントにクエリを送信し、評価のための応答をキャプチャします。

# Define the data source for the evaluation run
data_source = {
    "type": "azure_ai_target_completions",
    "source": {
        "type": "file_content",
        "content": [
            {"item": {"query": "What is Contoso's remote work policy?"}},
            {"item": {"query": "What are the security requirements for remote employees?"}},
            {"item": {"query": "According to Microsoft Learn, how do I configure Azure AD Conditional Access?"}},
            {"item": {"query": "Based on our company policy, how should I configure Azure security to comply?"}},
        ],
    },
    "input_messages": {
        "type": "template",
        "template": [
            {"type": "message", "role": "user", "content": {"type": "input_text", "text": "{{item.query}}"}}
        ],
    },
    "target": {
        "type": "azure_ai_agent",
        "name": agent.name,
        "version": agent.version,
    },
}

# Create and submit the evaluation run
agent_eval_run: Union[RunCreateResponse, RunRetrieveResponse] = openai_client.evals.runs.create(
    eval_id=eval_object.id,
    name=f"Evaluation Run for Agent {agent.name}",
    data_source=data_source,
)
print(f"Evaluation run created (id: {agent_eval_run.id})")

data_source構成:

  • type: azure_ai_target_completions はエージェントを介してクエリをルーティングします
  • source: テスト クエリを含むインライン コンテンツ (データセット ファイル ID を使用することもできます)
  • input_messages: エージェントの各クエリを書式設定するテンプレート
  • target: 評価するエージェント名とバージョンを指定します

評価結果を取得する

評価実行が完了するまで監視し、詳細な出力データを取得します。

# Poll until the evaluation run completes
while agent_eval_run.status not in ["completed", "failed"]:
    agent_eval_run = openai_client.evals.runs.retrieve(
        run_id=agent_eval_run.id,
        eval_id=eval_object.id
    )
    print(f"Waiting for eval run to complete... current status: {agent_eval_run.status}")
    time.sleep(5)

if agent_eval_run.status == "completed":
    print("\n✓ Evaluation run completed successfully!")
    print(f"Result Counts: {agent_eval_run.result_counts}")

    # Retrieve detailed output items
    output_items = list(
        openai_client.evals.runs.output_items.list(
            run_id=agent_eval_run.id,
            eval_id=eval_object.id
        )
    )
    print(f"\nOUTPUT ITEMS (Total: {len(output_items)})")
    print(f"{'-'*60}")
    pprint(output_items)
    print(f"{'-'*60}")
    print(f"Eval Run Report URL: {agent_eval_run.report_url}")
else:
    print("\n✗ Evaluation run failed.")

# Cleanup
openai_client.evals.delete(eval_id=eval_object.id)
print("Evaluation deleted")

project_client.agents.delete(agent_name=agent.name)
print("Agent deleted")

各出力項目には次のものが含まれます。

  • ラベル: 二進数の"合格"または"不合格"の結果
  • スコア: エバリュエーターのスケールの数値スコア
  • 理由: スコアが割り当てられた理由の説明 (LLM ベースのエバリュエーターの場合)

クラウド評価からの予想される出力 (evaluate.py)

評価スクリプトを実行すると、次の例のような出力が表示されます。 出力には、評価オブジェクトの作成、送信の実行、結果の取得が表示されます。

python evaluate.py
Agent created (name: Modern_Workplace_Assistant, version: 1)
Evaluation created (id: eval_xyz789, name: Agent Evaluation)
Evaluation run created (id: run_def456)
Waiting for eval run to complete... current status: running
Waiting for eval run to complete... current status: running

✓ Evaluation run completed successfully!
Result Counts: {'passed': 2, 'failed': 0, 'errored': 0}

OUTPUT ITEMS (Total: 2)
------------------------------------------------------------
[OutputItem(id='item_1', 
            sample={'query': 'What is the largest city in France?', 
                    'output_text': 'The largest city in France is Paris...'},
            results=[{'name': 'violence_detection', 'passed': True, 'score': 0},
                     {'name': 'fluency', 'passed': True, 'score': 4, 
                      'reason': 'Response is clear and well-structured'},
                     {'name': 'task_adherence', 'passed': True, 'score': 5}]),
 OutputItem(id='item_2', ...)]
------------------------------------------------------------
Eval Run Report URL: https://ai.azure.com/...
Evaluation deleted
Agent deleted

評価結果について

クラウド評価は、Foundry ポータルで表示したり、プログラムで取得したりできる構造化された結果を提供します。 各出力項目には次のものが含まれます。

フィールド [説明]
ラベル しきい値に基づくバイナリ合格または不合格
スコア 数値スコア (スケールはエバリュエーターの種類によって異なります)
しきい値 合格/不合格を決定するカットオフ値
理由 スコアに対する LLM による説明(該当する場合)

エバリュエーターの種類別にスケールをスコア付けする:

  • 品質エバリュエーター (流暢性、一貫性): 1 ~ 5 スケール
  • 安全評価者 (暴力、自傷行為): 0 ~ 7 重大度スケール (低い方が安全)
  • タスク エバリュエーター (task_adherence): 1 ~ 5 スケール

また、プロジェクトから [評価 ] を選択し、評価実行を選択して、Foundry ポータルで詳細な結果を表示することもできます。 ポータルには、視覚化、フィルター処理、エクスポートのオプションが用意されています。

ヒント

運用環境のシナリオでは、CI/CD パイプラインの一部として評価を実行することを検討してください。 Azure DevOps で評価を実行し、統合パターンについて AI エージェントを継続的に評価する方法を参照してください。

トラブルシューティング

症状 原因 解決策
DefaultAzureCredential 認証エラー Azure CLI セッションの有効期限が切れているか、サインインしていない az loginを実行して再試行する
Model deployment not found .envのモデル名がプロジェクト内の配置と一致しない プロジェクトをFoundryポータルで開き、デプロイメントを確認し、MODEL_DEPLOYMENT_NAME.envで更新します。
SharePoint tool configured エージェントがドキュメントを見つけることができません ドキュメントがアップロードされていないか、接続名が正しくありません ドキュメントが SharePoint ライブラリに表示され、 SHAREPOINT_CONNECTION_NAME がプロジェクト内の接続と一致することを確認する
MCP ツールのタイムアウトまたは接続エラー Microsoft Learn MCP サーバーに到達できない MCP_SERVER_URLhttps://learn.microsoft.com/api/mcp に設定されていること、およびネットワークで送信 HTTPS が許可されていることを確認します
403 Forbidden でSharePoint SharePoint サイトに対する十分なアクセス許可がありません サインインしている ID に少なくとも SharePoint ドキュメント ライブラリへの 読み取り アクセス権があることを確認する

概要

これで次のようになります。

  • 内部および外部の知識に根付いた実用的な単一エージェントプロトタイプ。
  • エンタープライズ検証パターンを示す反復可能な評価スクリプト。
  • 明確なアップグレード パス: より多くのツール、マルチエージェント オーケストレーション、豊富な評価、デプロイ。

これらのパターンにより、プロトタイプから運用環境への摩擦が軽減されます。コア ロジックを書き換えることなく、データ ソースの追加、ガバナンスの適用、監視の統合を行うことができます。

次のステップ

このチュートリアルでは、アイデアからプロトタイプまで、開発者体験の ステージ 1 を示します。 この最小限のサンプルは、エンタープライズ AI 開発の基礎を提供します。 体験を続けるには、次のステージを確認してください。

推奨されるその他の機能強化

ステージ 2: プロトタイプから運用環境へ

ステージ 3: 生産から採用へ

リソースをクリーンアップする

不要になったら、このチュートリアルで作成したリソースを削除します。

  1. エージェントを削除します。エージェントは、 main.py (Python) または Program.cs (C#) の最後に自動的に削除されます。 実行を中断した場合は、Foundry ポータルの [エージェント] ページから手動で削除します。
  2. 評価実行を削除します。Foundry ポータルで、[評価] に移動し、 評価実行を選択して削除します。
  3. SharePoint サンプル ドキュメントの削除: サンプル .docx ファイルを実稼働 SharePoint サイトにアップロードした場合は、ドキュメント ライブラリから削除します。
  4. (省略可能) Foundry プロジェクトを削除する: このチュートリアル専用のプロジェクトを作成した場合は、Foundry ポータルから削除して、関連付けられているすべてのリソースを削除します。