Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft Agent Framework har stöd för att skapa agenter som använder Foundry Agent Service. Du kan skapa beständiga tjänstbaserade agentinstanser med tjänsthanterad chatthistorik.
Komma igång
Lägg till nödvändiga NuGet-paket i projektet.
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.AzureAI.Persistent --prerelease
Skapa Foundry-agenter
Som ett första steg måste du skapa en klient för att ansluta till agenttjänsten.
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());
Varning
DefaultAzureCredential är praktiskt för utveckling men kräver noggrant övervägande i produktion. I produktion bör du överväga att använda en specifik autentiseringsuppgift (t.ex. ManagedIdentityCredential) för att undvika problem med svarstid, oavsiktlig avsökning av autentiseringsuppgifter och potentiella säkerhetsrisker från reservmekanismer.
Om du vill använda agenttjänsten behöver du skapa en agentresurs i tjänsten. Detta kan göras antingen med hjälp av Azure.AI.Agents.Persistent SDK eller med hjälp av Microsoft Agent Framework-hjälp.
Använda den beständiga SDK:en
Skapa en beständig agent och hämta den som en AIAgent med hjälp av 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."));
Använda Agent Framework-verktyg
Du kan också skapa och returnera ett AIAgent i ett steg:
AIAgent agent2 = await persistentAgentsClient.CreateAIAgentAsync(
model: "gpt-4o-mini",
name: "Joker",
instructions: "You are good at telling jokes.");
Återanvända Foundry-agenter
Du kan återanvända befintliga Foundry-agenter genom att hämta dem med hjälp av deras ID:n.
AIAgent agent3 = await persistentAgentsClient.GetAIAgentAsync("<agent-id>");
Tips/Råd
Se .NET-exemplen för fullständiga körbara exempel.
Använda agenten
Agenten är en standard AIAgent och stöder alla standard åtgärder AIAgent.
Mer information om hur du kör och interagerar med agenter finns i självstudierna om att komma igång med agenten.
Konfiguration
Miljövariabler
Viktigt!
AzureAIAgentClient (Foundry Agent Service v1) och AzureAIClient (Foundry Agent Service v2) kräver båda en Azure AI Foundry-projektslutpunkt (format: https://<your-project>.services.ai.azure.com/api/projects/<project-id>), inte en Azure OpenAI-resursslutpunkt. Du måste ha ett Azure AI Foundry-projekt för att kunna använda den här providern. Om du har en fristående Azure OpenAI-resurs i stället kan du läsa sidan Azure OpenAI-provider.
Innan du använder Foundry-agenter måste du konfigurera dessa miljövariabler:
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"
Du kan också ange dessa värden direkt i koden.
Installation
Lägg till Agent Framework Azure AI-paketet i projektet:
pip install agent-framework-azure-ai --pre
Komma igång
Authentication
Foundry-agenter använder Azure-autentiseringsuppgifter för autentisering. Den enklaste metoden är att använda AzureCliCredential när du har kört az login. Alla Azure AI-klienter accepterar en enhetlig credential parameter som stöder TokenCredential, AsyncTokenCredentialeller en anropsbar tokenprovider – cachelagring och uppdatering av token hanteras automatiskt.
from azure.identity.aio import AzureCliCredential
async with AzureCliCredential() as credential:
# Use credential with Azure AI agent client
Skapa Foundry-agenter
Skapande av grundläggande agent
Det enklaste sättet att skapa en agent är att använda AzureAIAgentClient miljövariablerna:
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())
Explicit konfiguration
Du kan också ange konfiguration explicit i stället för att använda miljövariabler:
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())
Använda befintliga gjuteriagenter
Använda en befintlig agent
Om du har en befintlig agent i Foundry kan du använda den genom att ange dess 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())
Skapa och hantera beständiga agenter
Om du vill ha mer kontroll över agentens livscykel kan du skapa beständiga agenter med hjälp av Azure AI Projects-klienten:
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())
Agentfunktioner
Alternativ för resonemang och innehållsfiltrering
När du skapar agenter via Azure AI-projektleverantörer kan du ange default_options för att aktivera modellskäl och ansvarsfull AI-innehållsfiltrering.
Använd reasoning för resonemangskompatibla modeller:
Använd rai_config för att tillämpa en konfigurerad RAI-princip:
Funktionsverktyg
Du kan tillhandahålla anpassade funktionsverktyg till Foundry-agenter:
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())
Kodtolkare
Foundry-agenter stöder kodkörning via den värdbaserade kodtolkaren:
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())
Direktuppspelningssvar
Få svar medan de genereras genom strömmande data.
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())
Använda agenten
Agenten är en standard BaseAgent och stöder alla standardagentåtgärder.
Mer information om hur du kör och interagerar med agenter finns i självstudierna om att komma igång med agenten.