Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Microsoft Agent Framework biedt ondersteuning voor het maken van agents die gebruikmaken van de Foundry Agent-service. U kunt permanente agentexemplaren op basis van een service maken met de door de service beheerde chatgeschiedenis.
Aan de slag komen
Voeg de vereiste NuGet-pakketten toe aan uw project.
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.AzureAI.Persistent --prerelease
Agents voor Foundry aanmaken
Als eerste stap moet u een client maken om verbinding te maken met de agentservice.
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());
Waarschuwing
DefaultAzureCredential is handig voor ontwikkeling, maar vereist zorgvuldige overwegingen in de productieomgeving. Overweeg in productie een specifieke referentie te gebruiken (bijvoorbeeld ManagedIdentityCredential) om latentieproblemen, onbedoelde referentieprobing en potentiële beveiligingsrisico's van terugvalmechanismen te voorkomen.
Als u de agentservice wilt gebruiken, moet u een agentresource in de service maken. U kunt dit doen met behulp van de Azure.AI.Agents.Persistent SDK of met behulp van Microsoft Agent Framework-helpers.
De permanente SDK gebruiken
Maak een persistent agent en haal deze op als een AIAgent met behulp van de 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-helpers gebruiken
U kunt ook een AIAgent in één stap maken en retourneren:
AIAgent agent2 = await persistentAgentsClient.CreateAIAgentAsync(
model: "gpt-4o-mini",
name: "Joker",
instructions: "You are good at telling jokes.");
De Foundry Agents hergebruiken
U kunt bestaande Foundry-agents opnieuw gebruiken door ze op te halen met behulp van hun id's.
AIAgent agent3 = await persistentAgentsClient.GetAIAgentAsync("<agent-id>");
Aanbeveling
Zie de .NET-voorbeelden voor volledige runnable voorbeelden.
De agent gebruiken
De agent is een standaard AIAgent en ondersteunt alle standaard AIAgent bewerkingen.
Voor meer informatie over hoe je agents uitvoert en ermee werkt, raadpleeg de Aan de slag met agent-tutorials.
Configuratie
Omgevingsvariabelen
Belangrijk
AzureAIAgentClient (Foundry Agent Service v1) en AzureAIClient (Foundry Agent Service v2) vereisen beide een Azure AI Foundry-projecteindpunt (indeling: https://<your-project>.services.ai.azure.com/api/projects/<project-id>), niet een Azure OpenAI-resource-eindpunt. U moet een Azure AI Foundry-project hebben om deze provider te kunnen gebruiken. Als u in plaats daarvan een zelfstandige Azure OpenAI-resource hebt, raadpleegt u de azure OpenAI-providerpagina.
Voordat u Foundry-agents gebruikt, moet u deze omgevingsvariabelen instellen:
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"
U kunt deze waarden ook rechtstreeks in uw code opgeven.
Installation
Voeg het Azure AI-pakket agentframework toe aan uw project:
pip install agent-framework-azure-ai --pre
Aan de slag komen
Authentication
Foundry-agents gebruiken Azure-referenties voor verificatie. De eenvoudigste methode is om AzureCliCredential te gebruiken na het uitvoeren van az login. Alle Azure AI-clients accepteren een geïntegreerde credential-parameter die TokenCredential, AsyncTokenCredential, of een aanroepbare tokenprovider ondersteunt: token-caching en vernieuwing worden automatisch verwerkt.
from azure.identity.aio import AzureCliCredential
async with AzureCliCredential() as credential:
# Use credential with Azure AI agent client
Agents voor Foundry aanmaken
Basisagent maken
De eenvoudigste manier om een agent te maken, is het gebruik van de AzureAIAgentClient omgevingsvariabelen:
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())
Expliciete configuratie
U kunt ook expliciet configuratie opgeven in plaats van omgevingsvariabelen te gebruiken:
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())
Bestaande Foundry-agenten gebruiken
Een bestaande agent gebruiken
Als u een bestaande agent in Foundry hebt, kunt u deze gebruiken door de id op te geven:
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())
Permanente agents maken en beheren
Voor meer controle over de levenscyclus van agents kunt u permanente agents maken met behulp van de Azure AI Projects-client:
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())
Agent functies
Opties voor redeneren en filteren van inhoud
Wanneer u agents maakt via Azure AI-projectproviders, kunt u default_options instellen om modelredenering en filtering van verantwoordelijke AI-inhoud mogelijk te maken.
Gebruik reasoning voor modellen die geschikt zijn voor redenering:
Gebruik rai_config dit om een geconfigureerd RAI-beleid toe te passen:
Functiehulpmiddelen
U kunt aangepaste functiehulpprogramma's opgeven voor Foundry-agents:
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())
Code-interpreter
Foundry-agents ondersteunen het uitvoeren van code via de gehoste code-interpreter:
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())
Streamingreacties
Antwoorden ophalen terwijl ze worden gegenereerd met behulp van streaming:
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())
De agent gebruiken
De agent is een standaard BaseAgent en ondersteunt alle standaardagentbewerkingen.
Voor meer informatie over hoe je agents uitvoert en ermee werkt, raadpleeg de Aan de slag met agent-tutorials.