Azure AI Foundry Agent#

In AutoGen können Sie Agenten erstellen und bereitstellen, die vom Azure AI Foundry Agent Service unterstützt werden, indem Sie die Klasse AzureAIAgent verwenden. Hier werden wichtige Aspekte des Agenten, einschließlich des bereitgestellten Modells, der Tools (z. B. Code-Interpreter, Bing-Suchgrundlagen, Dateisuche usw.), der Beobachtbarkeit und der Sicherheit, von Azure verwaltet. Dadurch können Sie sich auf die Erstellung Ihres Agenten konzentrieren, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen.

In dieser Anleitung untersuchen wir ein Beispiel für die Erstellung eines Azure AI Foundry Agenten mit dem AzureAIAgent, der Aufgaben mit dem Azure Grounding mit Bing Search-Tool bewältigen kann.

# pip install "autogen-ext[azure]"  # For Azure AI Foundry Agent Service

Bing Search Grounding#

Einem AzureAIAgent kann eine Reihe von Tools zugewiesen werden, einschließlich Grounding mit Bing Search.

Grounding mit Bing Search ermöglicht Ihren Azure AI Agenten, Echtzeit-Daten aus dem öffentlichen Web in ihre Antworten einzubeziehen. Sie müssen eine Grounding mit Bing Search-Ressource erstellen und diese Ressource dann mit Ihren Azure AI Agenten verbinden. Wenn ein Benutzer eine Abfrage sendet, entscheiden die Azure AI Agenten, ob Grounding mit Bing Search genutzt werden soll oder nicht. Wenn ja, wird Bing verwendet, um öffentliche Webdaten zu durchsuchen und relevante Textabschnitte zurückzugeben. Abschließend verwenden die Azure AI Agenten die zurückgegebenen Textabschnitte, um eine Antwort zu generieren.

Voraussetzungen#

  • Sie benötigen ein Azure-Abonnement.

  • Sie benötigen die Azure CLI, die installiert und konfiguriert ist. (Melden Sie sich auch mit dem Befehl az login an, um Standardanmeldeinformationen zu aktivieren)

  • Sie benötigen das Paket autogen-ext[azure], das installiert ist.

Sie können eine Grounding mit Bing Search-Ressource im Azure-Portal erstellen. Beachten Sie, dass Sie für die Erstellung über die Rolle "Besitzer" oder "Mitwirkender" in Ihrem Abonnement oder Ihrer Ressourcengruppe verfügen müssen. Sobald Sie Ihre Ressource erstellt haben, können Sie diese mit dem Ressourcennamen an den Azure Foundry Agent übergeben.

Im folgenden Beispiel erstellen wir einen neuen Azure Foundry Agenten, der die Grounding mit Bing Search-Ressource verwendet.

import os

import dotenv
from autogen_agentchat.messages import TextMessage
from autogen_core import CancellationToken
from autogen_ext.agents.azure import AzureAIAgent
from azure.ai.agents.models import BingGroundingTool
from azure.ai.projects.aio import AIProjectClient
from azure.identity.aio import DefaultAzureCredential

dotenv.load_dotenv()


async def bing_example() -> None:
    async with DefaultAzureCredential() as credential:  # type: ignore
        async with AIProjectClient(  # type: ignore
            credential=credential, endpoint=os.getenv("AZURE_PROJECT_ENDPOINT", "")
        ) as project_client:
            conn = await project_client.connections.get(name=os.getenv("BING_CONNECTION_NAME", ""))

            bing_tool = BingGroundingTool(conn.id)
            agent_with_bing_grounding = AzureAIAgent(
                name="bing_agent",
                description="An AI assistant with Bing grounding",
                project_client=project_client,
                deployment_name="gpt-4o",
                instructions="You are a helpful assistant.",
                tools=bing_tool.definitions,
                metadata={"source": "AzureAIAgent"},
            )

            # For the bing grounding tool to return the citations, the message must contain an instruction for the model to do return them.
            # For example: "Please provide citations for the answers"

            result = await agent_with_bing_grounding.on_messages(
                messages=[
                    TextMessage(
                        content="What is Microsoft's annual leave policy? Provide citations for your answers.",
                        source="user",
                    )
                ],
                cancellation_token=CancellationToken(),
                message_limit=5,
            )
            print(result)


await bing_example()

Beachten Sie, dass Sie dem Agenten auch andere Azure-gestützte Tools und lokale clientseitige Funktionen bereitstellen können.

Weitere Details zur Erstellung eines Azure Foundry Agenten finden Sie in der API-Dokumentation der Klasse AzureAIAgent.