Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozhraní Microsoft Agent Framework podporuje vytváření agentů, kteří používají službu Foundry Agent. Pomocí historie chatu spravovaných službou můžete vytvářet trvalé instance agenta založené na službě.
Začínáme
Přidejte do projektu požadované balíčky NuGet.
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.AzureAI.Persistent --prerelease
Vytvoření agentů Foundry
Jako první krok je potřeba vytvořit klienta pro připojení ke službě agenta.
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());
Výstraha
DefaultAzureCredential je vhodný pro vývoj, ale vyžaduje pečlivé zvážení v produkčním prostředí. V produkčním prostředí zvažte použití konkrétních přihlašovacích údajů (např ManagedIdentityCredential. ) k zabránění problémům s latencí, neúmyslnému testování přihlašovacích údajů a potenciálním bezpečnostním rizikům z náhradních mechanismů.
Pokud chcete používat službu agenta, musíte ve službě vytvořit prostředek agenta. Můžete to provést pomocí sady Azure.AI.Agents.Persistent SDK nebo pomocníků rozhraní Microsoft Agent Framework.
Použití Persistent SDK
Vytvořte perzistentního agenta a načtěte ho jako
// 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."));
Použití pomocníků Agent Framework
Můžete také vytvořit a vrátit AIAgent v jednom kroku:
AIAgent agent2 = await persistentAgentsClient.CreateAIAgentAsync(
model: "gpt-4o-mini",
name: "Joker",
instructions: "You are good at telling jokes.");
Opětovné nasazení agentů Foundry
Existující agenty Foundry můžete znovu použít tak, že je načítáte pomocí jejich ID.
AIAgent agent3 = await persistentAgentsClient.GetAIAgentAsync("<agent-id>");
Návod
Najdete kompletní spustitelné příklady v ukázkách .NET.
Použití agenta
Agent AIAgent je standardní a podporuje všechny standardní AIAgent operace.
Další informace o tom, jak spouštět agenty a pracovat s nimi, najdete v úvodních kurzech agenta.
Konfigurace
Proměnné prostředí
Důležité
AzureAIAgentClient (Foundry Agent Service v1) a AzureAIClient (Foundry Agent Service v2) vyžadují koncový bod projektu Azure AI Foundry (formát: https://<your-project>.services.ai.azure.com/api/projects/<project-id>), nikoli koncový bod prostředku Azure OpenAI. Abyste mohli tohoto poskytovatele použít, musíte mít projekt Azure AI Foundry . Pokud máte místo toho samostatný prostředek Azure OpenAI, podívejte se na stránku poskytovatele Azure OpenAI.
Před použitím agentů Foundry musíte nastavit tyto proměnné prostředí:
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"
Případně můžete tyto hodnoty zadat přímo ve svém kódu.
Installation
Přidejte do projektu balíček Azure AI pro rozhraní Agent Framework:
pip install agent-framework-azure-ai --pre
Začínáme
Autentizace
Agenti Foundry používají k ověřování přihlašovací údaje Azure. Nejjednodušším přístupem je použít AzureCliCredential po spuštění az login. Všichni klienti Azure AI přijímají jednotný credential parametr, který podporuje TokenCredential, AsyncTokenCredentialnebo zprostředkovatele volatelného tokenu – ukládání tokenů do mezipaměti a aktualizace se zpracovává automaticky.
from azure.identity.aio import AzureCliCredential
async with AzureCliCredential() as credential:
# Use credential with Azure AI agent client
Vytvoření agentů Foundry
Základní vytvoření agenta
Nejjednodušší způsob, jak vytvořit agenta, je použití AzureAIAgentClient s proměnnými prostředí:
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())
Explicitní konfigurace
Konfiguraci můžete také explicitně zadat místo použití proměnných prostředí:
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())
Použití existujících agentů Foundry
Použití existujícího agenta
Pokud máte existujícího agenta v Foundry, můžete ho použít tak, že zadáte jeho ID:
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())
Vytváření a správa trvalých agentů
Pokud chcete mít větší kontrolu nad životním cyklem agenta, můžete vytvořit trvalé agenty pomocí klienta 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())
Funkce agenta
Možnosti odůvodnění a filtrování obsahu
Při vytváření agentů prostřednictvím poskytovatelů projektů Azure AI můžete nastavit default_options, abyste povolili důvodní činnost modelu a filtrování obsahu zodpovědné AI.
Slouží reasoning k vytváření modelů podporujících odůvodnění:
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(
Použijte rai_config k aplikaci nakonfigurované zásady 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(
Funkční nástroje
Agentům Foundry můžete poskytnout vlastní nástroje funkcí:
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())
Interpretátor kódu
Agenti Foundry podporují spouštění kódu prostřednictvím interpretu hostovaného kódu:
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())
Odpovědi na streamování
Získávejte odpovědi ihned, jakmile jsou generovány streamováním.
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())
Použití agenta
Agent je standardní BaseAgent a podporuje všechny standardní operace agentů.
Další informace o tom, jak spouštět agenty a pracovat s nimi, najdete v úvodních kurzech agenta.