Freigeben über


Azure KI-Gießerei-Agenten

Microsoft Agent Framework unterstützt das Erstellen von Agents, die den Azure AI Foundry Agents-Dienst verwenden. Sie können persistente dienstbasierte Agentinstanzen mit vom Dienst verwalteten Unterhaltungsthreads erstellen.

Erste Schritte

Fügen Sie dem Projekt die erforderlichen NuGet-Pakete hinzu.

dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.AzureAI.Persistent --prerelease

Erstellen von Azure AI Foundry Agents

Als erster Schritt müssen Sie einen Client erstellen, um eine Verbindung mit dem Azure AI Foundry Agents-Dienst herzustellen.

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 AzureCliCredential());

Um den Azure AI Foundry Agents-Dienst zu verwenden, benötigen Sie eine Agentressource im Dienst. Dazu können Sie entweder das Azure.AI.Agents.Persistent SDK oder microsoft Agent Framework-Hilfsprogramme verwenden.

Verwenden des Persistent SDK

Erstellen Sie einen beständigen Agenten und rufen Sie ihn als AIAgent mit PersistentAgentsClient ab.

// 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."));

Verwenden von Agent Framework-Hilfsprogramme

Sie können auch ein AIAgent in einem Schritt erstellen und zurückgeben.

AIAgent agent2 = await persistentAgentsClient.CreateAIAgentAsync(
    model: "gpt-4o-mini",
    name: "Joker",
    instructions: "You are good at telling jokes.");

Erneutes Verwenden von Azure AI Foundry Agents

Sie können vorhandene Azure AI Foundry Agents wiederverwenden, indem Sie sie mithilfe ihrer IDs abrufen.

AIAgent agent3 = await persistentAgentsClient.GetAIAgentAsync("<agent-id>");

Verwendung des Agenten

Der Agent ist ein AIAgent Standard und unterstützt alle AIAgent Standardoperationen.

Weitere Informationen zum Ausführen und Interagieren mit Agenten finden Sie in den Agenten-Einführungstutorials.

Konfiguration

Umgebungsvariablen

Bevor Sie Azure AI Foundry Agents verwenden, müssen Sie diese Umgebungsvariablen einrichten:

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"

Alternativ können Sie diese Werte direkt in Ihrem Code bereitstellen.

Installation

Fügen Sie Ihrem Projekt das Azure AI-Paket des Agent-Frameworks hinzu:

pip install agent-framework-azure-ai --pre

Erste Schritte

Authentifizierung

Azure AI Foundry Agents verwenden Azure-Anmeldeinformationen für die Authentifizierung. Der einfachste Ansatz besteht darin, AzureCliCredential nach der Ausführung von az login zu verwenden.

from azure.identity.aio import AzureCliCredential

async with AzureCliCredential() as credential:
    # Use credential with Azure AI agent client

Azure AI Foundry Agents erstellen

Grundlegende Agent-Erstellung

Der einfachste Weg, um einen Agenten zu erstellen, ist die Verwendung von AzureAIAgentClient zusammen mit Umgebungsvariablen:

import asyncio
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential

async def main():
    async with (
        AzureCliCredential() as credential,
        AzureAIAgentClient(async_credential=credential).create_agent(
            name="HelperAgent",
            instructions="You are a helpful assistant."
        ) as agent,
    ):
        result = await agent.run("Hello!")
        print(result.text)

asyncio.run(main())

Explizite Konfiguration

Sie können die Konfiguration auch explizit bereitstellen, anstatt Umgebungsvariablen zu verwenden:

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",
            async_credential=credential,
            agent_name="HelperAgent"
        ).create_agent(
            instructions="You are a helpful assistant."
        ) as agent,
    ):
        result = await agent.run("Hello!")
        print(result.text)

asyncio.run(main())

Verwenden von bestehenden Azure AI Foundry Agenten

Verwendung eines vorhandenen Agenten nach ID

Wenn Sie über einen vorhandenen Agent in Azure AI Foundry verfügen, können Sie ihn verwenden, indem Sie dessen ID angeben:

import asyncio
from agent_framework import ChatAgent
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential

async def main():
    async with (
        AzureCliCredential() as credential,
        ChatAgent(
            chat_client=AzureAIAgentClient(
                async_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())

Erstellen und Verwalten persistenter Agenten

Für eine bessere Kontrolle über den Agent-Lebenszyklus können Sie beständige Agents mithilfe des Azure AI Projects-Clients erstellen:

import asyncio
import os
from agent_framework import ChatAgent
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 ChatAgent(
                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())

Agentfeatures

Funktionstools

Sie können benutzerdefinierte Funktionstools für Azure AI Foundry-Agents bereitstellen:

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(async_credential=credential).create_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())

Codedolmetscher

Azure AI Foundry Agents unterstützen die Codeausführung über den gehosteten Codedolmetscher:

import asyncio
from agent_framework import HostedCodeInterpreterTool
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential

async def main():
    async with (
        AzureCliCredential() as credential,
        AzureAIAgentClient(async_credential=credential).create_agent(
            name="CodingAgent",
            instructions="You are a helpful assistant that can write and execute Python code.",
            tools=HostedCodeInterpreterTool()
        ) as agent,
    ):
        result = await agent.run("Calculate the factorial of 20 using Python code.")
        print(result.text)

asyncio.run(main())

Streaming-Antworten

Erhalten Sie Antworten, während sie mithilfe von Streaming generiert werden:

import asyncio
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential

async def main():
    async with (
        AzureCliCredential() as credential,
        AzureAIAgentClient(async_credential=credential).create_agent(
            name="StreamingAgent",
            instructions="You are a helpful assistant."
        ) as agent,
    ):
        print("Agent: ", end="", flush=True)
        async for chunk in agent.run_stream("Tell me a short story"):
            if chunk.text:
                print(chunk.text, end="", flush=True)
        print()

asyncio.run(main())

Den Agent verwenden

Der Agent ist ein Standard BaseAgent und unterstützt alle Standard-Agent-Vorgänge.

Weitere Informationen zum Ausführen und Interagieren mit Agenten finden Sie in den Agenten-Einführungstutorials.

Nächste Schritte