このチュートリアルでは、Microsoft Foundry 開発者体験の最初の段階 (最初のアイデアから実際のプロトタイプまで) について説明します。 Microsoft Foundry SDK を使用して、社内の知識と外部の技術ガイダンスを組み合わせた 最新のワークプレース アシスタント を構築します。
ビジネス シナリオ: 次の組み合わせによって従業員を支援する AI アシスタントを作成します。
- Company policies (SharePoint ドキュメントから)
- 技術的な実装ガイダンス (MCP 経由の Microsoft Learn から)
- 完全なソリューション (ビジネス実装用に両方のソースを組み合わせる)
- 現実的なビジネス シナリオでエージェントのパフォーマンスを検証するためのバッチ評価
チュートリアルの結果:最終的には、ポリシー、技術、および組み合わされた実装の質問に答えることができる最新のワークプレースアシスタントを実行できます。反復可能なバッチ評価スクリプト。と明確な拡張ポイント (他のツール、マルチエージェント パターン、より豊富な評価)。
そうするでしょう:
- SharePointと MCP の統合を使用してモダン ワークプレース アシスタントを構築します。
- 内部知識と外部知識を組み合わせた実際のビジネス シナリオを示します。
- 堅牢なエラー処理と正常な低下を実装します。
- ビジネスに重点を置いたテスト用の評価フレームワークを作成します。
- ガバナンスと運用環境へのデプロイの基礎を準備します。
この最小限のサンプルでは、現実的なビジネス シナリオを含むエンタープライズ対応のパターンを示します。
Important
この記事のコードでは、現在プレビュー段階にあるパッケージを使用します。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「Microsoft Azure プレビューの使用条件を参照してください。
[前提条件]
Azure サブスクリプション。 ない場合は、無料で作成してください。
Azure CLI 2.67.0 以降。
az loginで認証されます (az versionで確認してください)デプロイされたモデル (たとえば、) を含む Foundry
gpt-4o-mini。 もしプロジェクトがない場合は、プロジェクトを作成し、次にモデルをデプロイしてください(モデルの概要はモデルカタログを参照してください)。Python 3.10 以降
.NET SDK 8.0 以降 (C# サンプルの場合)
プロジェクト内で構成されたSharePoint接続 (SharePointツールのドキュメント)
注
SharePoint接続用に Foundry プロジェクトを構成するには、SharePoint ツールのドキュメントを参照してください。
(省略可能)サンプル リポジトリを複製するためにインストールされた Git
手順 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: サンプルをすぐに実行する
まず、エージェントを実行して、実装の詳細を確認する前に作業機能を確認します。
環境のセットアップと仮想環境
「開発環境の準備」の説明に従って、必要な言語ランタイム、グローバル ツール、VS Code 拡張機能 をインストールします。
requirements.txtで次の発行済みパッケージ バージョンが使用されていることを確認します。azure-ai-projects>=2.0.0 azure-identity python-dotenv openai依存関係をインストールします。
インストールが成功したことを確認します。
Successfully installed azure-ai-projects-...(Python) またはRestore completed(.NET) がエラーなしで表示されます。-
プロジェクトのウェルカム画面でプロジェクト エンドポイントを見つけます。
.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_ENDPOINT が https:// で始まり、 MODEL_DEPLOYMENT_NAME がプロジェクト内の配置済みモデルの名前と一致することを確認して、有効な値が含まれていることを確認します。
ヒント
テナント ID を取得するには、次を実行します。
# Get tenant ID
az account show --query tenantId -o tsv
プロジェクト エンドポイントを取得するには、Foundry ポータルでプロジェクトを開き、そこに表示されている値をコピーします。
エージェントを実行し、評価する
予想される出力 (エージェントの最初の実行)
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サンプルを設定する
SharePoint サイト (接続で構成済み) に移動します。
ドキュメント ライブラリ "会社のポリシー" を作成します (または、既存の "ドキュメント" を使用します)。
sharepoint-sample-dataフォルダーに用意されている 4 つのサンプル Word ドキュメントをアップロードします。remote-work-policy.docxsecurity-guidelines.docxcollaboration-standards.docxdata-governance-policy.docx
続行する前に、ライブラリに 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#) のコア コードについて説明します。 すでにエージェントを実行しました。 読んだ後、次のことができます。
- 新しい内部および外部データ ツールを追加します。
- 動的命令を拡張します。
- マルチエージェント オーケストレーションを導入します。
- 可観測性と診断を強化します。
このコードは、完全なサンプル コードに示されているように、次のメイン セクションに分かれています。
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.violence、 builtin.fluency、 builtin.task_adherence) と openai_client.evals API を使用して、スケーラブルで反復可能な評価をクラウドで実行します。
この評価フレームワークは、次のことを示しています。
-
エージェントのターゲット設定: 評価では、
azure_ai_target_completionsを使用してエージェントに対して直接クエリを実行します。 - 組み込みのエバリュエーター: 安全性 (暴力検出)、品質 (流暢さ)、タスクの準拠メトリック。
- クラウドベースの実行: ローカル コンピューティング要件を排除し、CI/CD 統合をサポートします。
- 構造化された結果: 各テストケースのための合格/失敗のラベル、スコア、および推論。
このコードは、次のメイン セクションに分かれています。
- 評価を構成します。
- クラウド評価を実行します。
- 評価結果を取得します。
ヒント
クラウド評価の詳細なガイダンスについては、「 クラウドで評価を実行する」を参照してください。 Foundry で使用できる組み込みエバリュエーターの包括的な一覧については、「 生成 AI の可観測性」を参照してください。
注
C# サンプルでは、Pythonに示されているクラウド ProjectResponsesClient API ではなく、openai_client.evals でローカル バッチ評価アプローチを使用します。 エージェントにクエリを送信し、予想されるキーワードに対して応答を確認し、結果を evaluation_results.jsonに書き込みます。 C# のクラウド評価パターンについては、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_URLが https://learn.microsoft.com/api/mcp に設定されていること、およびネットワークで送信 HTTPS が許可されていることを確認します |
SharePoint の 403 Forbidden |
SharePoint サイトに対する十分なアクセス許可がありません | サインインしている ID に、SharePoint ドキュメント ライブラリに少なくとも Read アクセス権があることを確認します |
概要
これで次のようになります。
- 内部および外部の知識に根付いた実用的な単一エージェントプロトタイプ。
- エンタープライズ検証パターンを示す反復可能な評価スクリプト。
- 明確なアップグレード パス: より多くのツール、マルチエージェント オーケストレーション、豊富な評価、デプロイ。
これらのパターンにより、プロトタイプから運用環境への摩擦が軽減されます。コア ロジックを書き換えることなく、データ ソースの追加、ガバナンスの適用、監視の統合を行うことができます。
次のステップ
このチュートリアルでは、アイデアからプロトタイプまで、開発者体験の ステージ 1 を示します。 この最小限のサンプルは、エンタープライズ AI 開発の基礎を提供します。 体験を続けるには、次のステージを確認してください。
推奨されるその他の機能強化
- さらにデータ ソース (Azure AI Search、その他のソース) を追加します。
- 高度な評価方法 (AI 支援評価) を実装します。
- ビジネス固有の操作用の カスタム ツール を作成します。
- 会話メモリとパーソナル化を追加します。
ステージ 2: プロトタイプから運用環境へ
- 赤チームテストを使用して安全性評価を実装します。
- 品質メトリックを使用して包括的な評価データセットを作成します。
- 組織全体のガバナンス ポリシーとモデルの比較を適用します。
- フリート監視、CI/CD 統合、運用デプロイ エンドポイントを構成します。
ステージ 3: 生産から採用へ
- 運用環境のデプロイからトレース データとユーザー フィードバックを収集します。
- モデルを微調整し、継続的な改善のための評価分析情報を生成します。
- 継続的な品質監視を備えたゲートウェイAzure API Managementを統合します。
- フリート ガバナンス、コンプライアンス制御、コストの最適化を実装します。
リソースをクリーンアップする
不要になったら、このチュートリアルで作成したリソースを削除します。
-
エージェントの削除: エージェントは、
main.py(Python) またはProgram.cs(C#) の末尾に自動的に削除されます。 実行を中断した場合は、Foundry ポータルの [エージェント] ページから手動で削除します。 - 評価実行を削除します。Foundry ポータルで、[評価] に移動し、 評価実行を選択して削除します。
-
サンプル ドキュメントSharePoint削除: サンプル
.docxファイルを実稼働SharePoint サイトにアップロードした場合は、ドキュメント ライブラリから削除します。 - (省略可能) Foundry プロジェクトを削除する: このチュートリアル専用のプロジェクトを作成した場合は、Foundry ポータルから削除して、関連付けられているすべてのリソースを削除します。