AG2-Agent verwenden

Zusätzlich zu den allgemeinen Anleitungen für die Verwendung eines Agents werden auf dieser Seite Funktionen beschrieben, die speziell für AG2Agent gelten.

Hinweis

In dieser Anleitung wird davon ausgegangen, dass Sie die Anleitung unter folgenden Links gelesen und befolgt haben:

Instanz eines Agents abrufen

Wenn Sie eine AG2Agent abfragen möchten, müssen Sie zuerst eine neue Instanz erstellen oder eine vorhandene Instanz abrufen.

So rufen Sie die AG2Agent ab, die einer bestimmten Ressourcen-ID entspricht:

Agent Platform SDK

Führen Sie den folgenden Code aus:

import vertexai

client = vertexai.Client(  # For service interactions via client.agent_engines
    project="PROJECT_ID",
    location="LOCATION",
)

agent = client.agent_engines.get(name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID")

print(agent)

Dabei gilt:

Python-Bibliothek „requests“

Führen Sie den folgenden Code aus:

from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests

def get_identity_token():
    credentials, _ = google_auth.default()
    auth_request = google_requests.Request()
    credentials.refresh(auth_request)
    return credentials.token

response = requests.get(
f"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID",
    headers={
        "Content-Type": "application/json; charset=utf-8",
        "Authorization": f"Bearer {get_identity_token()}",
    },
)

REST API

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID

Wenn Sie das Agent Platform SDK verwenden, entspricht das agent-Objekt einer AgentEngine-Klasse, die Folgendes enthält:

  • agent.api_resource mit Informationen zum bereitgestellten Agenten. Sie können auch agent.operation_schemas() aufrufen, um die Liste der Vorgänge zurückzugeben, die von agent unterstützt werden. Weitere Informationen finden Sie unter Unterstützte Vorgänge.
  • agent.api_client, die synchrone Dienstinteraktionen ermöglicht
  • agent.async_api_client, das asynchrone Dienstinteraktionen ermöglicht

Im weiteren Verlauf dieses Abschnitts wird davon ausgegangen, dass Sie eine AgentEngine-Instanz mit dem Namen agent haben.

Unterstützte Vorgänge

Die folgenden Vorgänge werden für AG2Agent unterstützt:

  • query: zum synchronen Abrufen einer Antwort auf eine Anfrage.

Die Methode query unterstützt die folgenden Argumente:

  • input: die Nachricht, die an den Agenten gesendet werden soll.
  • max_turns: die maximal zulässige Anzahl von Gesprächsrunden. Bei der Verwendung von Tools sind mindestens max_turns=2 erforderlich: ein Zug, um Tool-Argumente zu generieren, und ein zweiter, um das Tool auszuführen.

Agent abfragen

Die query()-Methode bietet eine vereinfachte Möglichkeit, mit dem Agenten zu interagieren. Ein typischer Aufruf sieht so aus:

response = agent.query(input="What is the exchange rate from US dollars to Swedish currency?", max_turns=2)

Diese Methode übernimmt die zugrunde liegende Kommunikation mit dem Agenten und gibt die endgültige Antwort des Agenten als Dictionary zurück. Sie entspricht dem Folgenden (in der Langform):

from autogen import ConversableAgent
import dataclasses
import json

input_message: str = "What is the exchange rate from US dollars to Swedish currency?"
max_turns: int = 2

with agent._runnable._create_or_get_executor(
    tools=agent._ag2_tool_objects,            # Use the agent's existing tools
    agent_name="user",                        # Default
    agent_human_input_mode="NEVER",           # query() enforces this
) as executor:
    chat_result = executor.initiate_chat(
        agent._runnable,
        message=input_message,
        max_turns=max_turns,
        clear_history=False,                  # Default
        summary_method="last_msg"             # Default
    )

response = json.loads(
  json.dumps(dataclasses.asdict(chat_result)) # query() does this conversion
)

Sie können das Verhalten des Agents über input und max_turns hinaus anpassen, indem Sie zusätzliche Schlüsselwortargumente an query() übergeben.

response = agent.query(
    input="What is the exchange rate from US dollars to Swedish currency?",
    max_turns=2,
    msg_to="user"  # Start the conversation with the "user" agent
)
print(response)

Eine vollständige Liste der verfügbaren Parameter finden Sie in der ConversableAgent.run-Dokumentation. Beachten Sie jedoch, dass user_input in der Vorlage AG2Agent immer durch False überschrieben wird.

Nächste Schritte