Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете расширить возможности агента Azure AI Foundry, подключив его к средствам, размещенным на серверах удаленного протокола контекста модели (MCP), (приведя собственную конечную точку сервера MCP).
Использование средства протокола контекста модели
В этом разделе объясняется, как создать агент ИИ с помощью Azure Foundry (Azure AI) с интеграцией сервера размещенного протокола контекста модели (MCP). Агент может использовать средства MCP, управляемые и выполняемые службой Azure Foundry, что позволяет обеспечить безопасный и контролируемый доступ к внешним ресурсам.
Ключевые функции
- Размещенный сервер MCP: сервер MCP размещается и управляется Azure AI Foundry, устраняя необходимость управления инфраструктурой сервера
- Постоянные агенты: агенты создаются и хранятся на стороне сервера, что позволяет беседам с отслеживанием состояния
- Рабочий процесс утверждения средства: настраиваемые механизмы утверждения для вызовов инструментов MCP
Принцип работы
1. Настройка среды
Для примера требуются две переменные среды:
-
AZURE_FOUNDRY_PROJECT_ENDPOINT: URL-адрес конечной точки проекта Azure AI Foundry -
AZURE_FOUNDRY_PROJECT_MODEL_ID: имя развертывания модели (по умолчанию — gpt-4.1-mini)
var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT")
?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set.");
var model = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_MODEL_ID") ?? "gpt-4.1-mini";
2. Конфигурация агента
Агент настраивается с определенными инструкциями и метаданными:
const string AgentName = "MicrosoftLearnAgent";
const string AgentInstructions = "You answer questions by searching the Microsoft Learn content only.";
Это создает агент, специализированный для ответов на вопросы с помощью документации Microsoft Learn.
3. Определение инструмента MCP
В примере создается определение инструмента MCP, указывающее на размещенный сервер MCP:
var mcpTool = new MCPToolDefinition(
serverLabel: "microsoft_learn",
serverUrl: "https://learn.microsoft.com/api/mcp");
mcpTool.AllowedTools.Add("microsoft_docs_search");
Ключевые компоненты:
- serverLabel: уникальный идентификатор для экземпляра сервера MCP
- serverUrl: URL-адрес размещенного сервера MCP
- AllowedTools: указывает, какие средства на сервере MCP могут использовать агент.
4. Создание постоянного агента
Агент создается на стороне сервера с помощью пакета SDK постоянных агентов Azure AI Foundry:
var persistentAgentsClient = new PersistentAgentsClient(endpoint, new AzureCliCredential());
var agentMetadata = await persistentAgentsClient.Administration.CreateAgentAsync(
model: model,
name: AgentName,
instructions: AgentInstructions,
tools: [mcpTool]);
При этом создается постоянный агент, который:
- Живет в службе Azure AI Foundry
- Имеет доступ к указанным средствам MCP
- Может поддерживать состояние беседы в нескольких взаимодействиях
5. Извлечение и выполнение агента
Созданный агент извлекается как AIAgent экземпляр:
AIAgent agent = await persistentAgentsClient.GetAIAgentAsync(agentMetadata.Value.Id);
6. Конфигурация ресурсов средства
Пример настраивает ресурсы средства с параметрами утверждения:
var runOptions = new ChatClientAgentRunOptions()
{
ChatOptions = new()
{
RawRepresentationFactory = (_) => new ThreadAndRunOptions()
{
ToolResources = new MCPToolResource(serverLabel: "microsoft_learn")
{
RequireApproval = new MCPApproval("never"),
}.ToToolResources()
}
}
};
Конфигурация ключа:
- MCPToolResource: связывает экземпляр сервера MCP с выполнением агента
-
RequireApproval: управляет, когда требуется утверждение пользователя для вызовов инструментов
-
"never": средства выполняются автоматически без утверждения -
"always": для всех вызовов инструментов требуется утверждение пользователя - Настраиваемые правила утверждения также можно настроить
-
7. Выполнение агента
Агент вызывается с вопросом и выполняется с помощью настроенных средств MCP:
AgentThread thread = agent.GetNewThread();
var response = await agent.RunAsync(
"Please summarize the Azure AI Agent documentation related to MCP Tool calling?",
thread,
runOptions);
Console.WriteLine(response);
8. Очистка
В примере демонстрируется правильная очистка ресурсов:
await persistentAgentsClient.Administration.DeleteAgentAsync(agent.Id);
Интеграция Azure AI Foundry MCP с Python
Azure AI Foundry обеспечивает простую интеграцию с серверами протокола MCP модели с помощью платформы агента Python. Служба управляет размещением и выполнением сервера MCP, устраняя управление инфраструктурой, обеспечивая безопасный, контролируемый доступ к внешним средствам.
Настройка среды
Настройте учетные данные проекта Azure AI Foundry с помощью переменных среды:
import os
from azure.identity.aio import AzureCliCredential
from agent_framework.azure import AzureAIAgentClient
# Required environment variables
os.environ["AZURE_AI_PROJECT_ENDPOINT"] = "https://<your-project>.services.ai.azure.com/api/projects/<project-id>"
os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"] = "gpt-4o-mini" # Optional, defaults to this
Базовая интеграция MCP
Создайте агент Azure AI Foundry с размещенными средствами MCP:
import asyncio
from agent_framework import HostedMCPTool
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
async def basic_foundry_mcp_example():
"""Basic example of Azure AI Foundry agent with hosted MCP tools."""
async with (
AzureCliCredential() as credential,
AzureAIAgentClient(async_credential=credential) as chat_client,
):
# Enable Azure AI observability (optional but recommended)
await chat_client.setup_azure_ai_observability()
# Create agent with hosted MCP tool
agent = chat_client.create_agent(
name="MicrosoftLearnAgent",
instructions="You answer questions by searching Microsoft Learn content only.",
tools=HostedMCPTool(
name="Microsoft Learn MCP",
url="https://learn.microsoft.com/api/mcp",
),
)
# Simple query without approval workflow
result = await agent.run(
"Please summarize the Azure AI Agent documentation related to MCP tool calling?"
)
print(result)
if __name__ == "__main__":
asyncio.run(basic_foundry_mcp_example())
Настройка MCP с несколькими инструментами
Используйте несколько размещенных средств MCP с одним агентом:
async def multi_tool_mcp_example():
"""Example using multiple hosted MCP tools."""
async with (
AzureCliCredential() as credential,
AzureAIAgentClient(async_credential=credential) as chat_client,
):
await chat_client.setup_azure_ai_observability()
# Create agent with multiple MCP tools
agent = chat_client.create_agent(
name="MultiToolAgent",
instructions="You can search documentation and access GitHub repositories.",
tools=[
HostedMCPTool(
name="Microsoft Learn MCP",
url="https://learn.microsoft.com/api/mcp",
approval_mode="never_require", # Auto-approve documentation searches
),
HostedMCPTool(
name="GitHub MCP",
url="https://api.github.com/mcp",
approval_mode="always_require", # Require approval for GitHub operations
headers={"Authorization": "Bearer github-token"},
),
],
)
result = await agent.run(
"Find Azure documentation and also check the latest commits in microsoft/semantic-kernel"
)
print(result)
if __name__ == "__main__":
asyncio.run(multi_tool_mcp_example())
Платформа агента Python обеспечивает простую интеграцию с размещенными возможностями MCP Azure AI Foundry, обеспечивая безопасный и масштабируемый доступ к внешним средствам при сохранении гибкости и контроля, необходимых для рабочих приложений.