Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft Agent Framework поддерживает создание агентов, которые используют Foundry Agent Service. Можно создавать постоянные экземпляры агентов, основанных на услугах, с функцией управления историей чата.
Начало работы
Добавьте необходимые пакеты NuGet в проект.
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.AzureAI.Persistent --prerelease
Создание агентов Foundry
Сначала необходимо создать клиент для подключения к службе агента.
using System;
using Azure.AI.Agents.Persistent;
using Azure.Identity;
using Microsoft.Agents.AI;
var persistentAgentsClient = new PersistentAgentsClient(
"https://<myresource>.services.ai.azure.com/api/projects/<myproject>",
new DefaultAzureCredential());
Предупреждение
DefaultAzureCredential удобно для разработки, но требует тщательного рассмотрения в рабочей среде. В рабочей среде рекомендуется использовать определенные учетные данные (например, ManagedIdentityCredential), чтобы избежать проблем с задержкой, непреднамеренной проверки данных аутентификации и потенциальных рисков безопасности из-за резервных механизмов.
Чтобы использовать службу агента, необходимо создать ресурс агента в службе. Это можно сделать с помощью пакета SDK azure.AI.Agent.Persistent или вспомогательных средств Microsoft Agent Framework.
Использование постоянного SDK
Создайте постоянного агента и получите его как AIAgent, используя PersistentAgentsClient.
// Create a persistent agent
var agentMetadata = await persistentAgentsClient.Administration.CreateAgentAsync(
model: "gpt-4o-mini",
name: "Joker",
instructions: "You are good at telling jokes.");
// Retrieve the agent that was just created as an AIAgent using its ID
AIAgent agent1 = await persistentAgentsClient.GetAIAgentAsync(agentMetadata.Value.Id);
// Invoke the agent and output the text result.
Console.WriteLine(await agent1.RunAsync("Tell me a joke about a pirate."));
Использование вспомогательных средств Agent Framework
Вы также можете создать и вернуть AIAgent за один шаг:
AIAgent agent2 = await persistentAgentsClient.CreateAIAgentAsync(
model: "gpt-4o-mini",
name: "Joker",
instructions: "You are good at telling jokes.");
Повторное использование агентов Foundry
Вы можете повторно использовать существующие агенты Foundry, извлекая их с помощью идентификаторов.
AIAgent agent3 = await persistentAgentsClient.GetAIAgentAsync("<agent-id>");
Подсказка
Полные примеры запуска см. в примерах .NET .
Использование агента
Агент является стандартным AIAgent и поддерживает все стандартные AIAgent операции.
Дополнительные сведения о запуске и взаимодействии с агентами см. в руководствах по началу работы агента.
Конфигурация
Переменные среды
Перед использованием агентов Foundry необходимо настроить следующие переменные среды:
export AZURE_AI_PROJECT_ENDPOINT="https://<your-project>.services.ai.azure.com/api/projects/<project-id>"
export AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini"
Кроме того, эти значения можно указать непосредственно в коде.
Installation
Добавьте пакет Agent Framework Azure AI в проект:
pip install agent-framework-azure-ai --pre
Начало работы
Аутентификация
Агенты Foundry используют учетные данные Azure для проверки подлинности. Самый простой подход — использовать AzureCliCredential после выполнения az login. Все клиенты ИИ Azure принимают единый параметр credential, поддерживающий TokenCredential, AsyncTokenCredential или вызываемого поставщика токенов — кеширование и обновление токенов обрабатываются автоматически.
from azure.identity.aio import AzureCliCredential
async with AzureCliCredential() as credential:
# Use credential with Azure AI agent client
Создание агентов Foundry
Базовое создание агента
Самый простой способ создания агента — использовать AzureAIAgentClient переменные среды:
import asyncio
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentClient(credential=credential).as_agent(
name="HelperAgent",
instructions="You are a helpful assistant."
) as agent,
):
result = await agent.run("Hello!")
print(result.text)
asyncio.run(main())
Явная конфигурация
Кроме того, можно явно указать конфигурацию вместо использования переменных среды:
import asyncio
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentClient(
project_endpoint="https://<your-project>.services.ai.azure.com/api/projects/<project-id>",
model_deployment_name="gpt-4o-mini",
credential=credential,
agent_name="HelperAgent"
).as_agent(
instructions="You are a helpful assistant."
) as agent,
):
result = await agent.run("Hello!")
print(result.text)
asyncio.run(main())
Использование существующих агентов Foundry
Использование существующего агента
Если у вас есть существующий агент в Foundry, его можно использовать, указав его идентификатор:
import asyncio
from agent_framework import Agent
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
async def main():
async with (
AzureCliCredential() as credential,
Agent(
chat_client=AzureAIAgentClient(
credential=credential,
agent_id="<existing-agent-id>"
),
instructions="You are a helpful assistant."
) as agent,
):
result = await agent.run("Hello!")
print(result.text)
asyncio.run(main())
Создание постоянных агентов и управление ими
Для получения большего контроля над жизненным циклом агента можно создать постоянные агенты с помощью клиента Azure AI Projects:
import asyncio
import os
from agent_framework import Agent
from agent_framework.azure import AzureAIAgentClient
from azure.ai.projects.aio import AIProjectClient
from azure.identity.aio import AzureCliCredential
async def main():
async with (
AzureCliCredential() as credential,
AIProjectClient(
endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
credential=credential
) as project_client,
):
# Create a persistent agent
created_agent = await project_client.agents.create_agent(
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
name="PersistentAgent",
instructions="You are a helpful assistant."
)
try:
# Use the agent
async with Agent(
chat_client=AzureAIAgentClient(
project_client=project_client,
agent_id=created_agent.id
),
instructions="You are a helpful assistant."
) as agent:
result = await agent.run("Hello!")
print(result.text)
finally:
# Clean up the agent
await project_client.agents.delete_agent(created_agent.id)
asyncio.run(main())
Компоненты агента
Параметры фильтрации по причинам и содержимому
При создании агентов с помощью поставщиков проектов ИИ Azure можно настроить default_options для включения рассуждений модели и фильтрации содержимого, связанной с ответственным ИИ.
Используйте reasoning для моделей со способностью к рассуждению.
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.ai.projects.models import Reasoning
from azure.identity.aio import AzureCliCredential
async with (
AzureCliCredential() as credential,
AzureAIProjectAgentProvider(credential=credential) as provider,
):
agent = await provider.create_agent(
async with (
AzureCliCredential() as credential,
AzureAIProjectAgentProvider(credential=credential) as provider,
):
agent = await provider.create_agent(
Используйте rai_config для применения настроенной политики RAI.
from azure.ai.projects.models import RaiConfig
from azure.identity.aio import AzureCliCredential
async def main() -> None:
print("=== Azure AI Agent with Content Filtering ===\n")
# Replace with your RAI policy from Azure AI Foundry portal
rai_policy_name = (
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/"
"Microsoft.CognitiveServices/accounts/{accountName}/raiPolicies/{policyName}"
)
async with (
AzureCliCredential() as credential,
AzureAIProjectAgentProvider(credential=credential) as provider,
):
# Create agent with content filtering enabled via default_options
agent = await provider.create_agent(
Инструменты функций
Вы можете предоставить инструменты пользовательской функции агентам Foundry:
import asyncio
from typing import Annotated
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
from pydantic import Field
def get_weather(
location: Annotated[str, Field(description="The location to get the weather for.")],
) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is sunny with a high of 25°C."
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentClient(credential=credential).as_agent(
name="WeatherAgent",
instructions="You are a helpful weather assistant.",
tools=get_weather
) as agent,
):
result = await agent.run("What's the weather like in Seattle?")
print(result.text)
asyncio.run(main())
Интерпретатор кода
Агенты Foundry поддерживают выполнение кода с помощью интерпретатора размещенного кода:
import asyncio
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentClient(credential=credential) as client,
client.as_agent(
name="CodingAgent",
instructions="You are a helpful assistant that can write and execute Python code.",
tools=client.get_code_interpreter_tool(),
) as agent,
):
result = await agent.run("Calculate the factorial of 20 using Python code.")
print(result.text)
asyncio.run(main())
Ответы потоковые
Получение ответов по мере их создания с помощью потоковой передачи:
import asyncio
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentClient(credential=credential).as_agent(
name="StreamingAgent",
instructions="You are a helpful assistant."
) as agent,
):
print("Agent: ", end="", flush=True)
async for chunk in agent.run("Tell me a short story", stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
asyncio.run(main())
Использование агента
Агент стандартный BaseAgent и поддерживает все стандартные операции агента.
Дополнительные сведения о запуске и взаимодействии с агентами см. в руководствах по началу работы агента.