Zusätzlich zu den allgemeinen Anleitungen zur Verwendung eines Agents werden auf dieser Seite Funktionen beschrieben, die speziell für AG2Agent gelten.
Hinweise
In dieser Anleitung wird davon ausgegangen, dass Sie die Anleitung unter folgenden Links gelesen und befolgt haben:
- AG2-Agent entwickeln:
agentals Instanz vonAG2Agententwickeln. - Nutzerauthentifizierung, um sich als Nutzer zu authentifizieren und den Agenten abzufragen.
- Importieren und initialisieren Sie das SDK, um den Client zum Abrufen einer bereitgestellten Instanz zu initialisieren (falls erforderlich).
Instanz eines Agenten 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 für eine bestimmte Ressourcen-ID ab:
Vertex AI SDK für Python
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:
PROJECT_IDist die Google Cloud Projekt-ID, unter der Sie Agents entwickeln und bereitstellen.LOCATIONist eine der unterstützten Regionen.RESOURCE_IDist die ID des bereitgestellten Agents alsreasoningEngine-Ressource.
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_IDWenn Sie das Vertex AI SDK for Python verwenden, entspricht das agent-Objekt einer AgentEngine-Klasse, die Folgendes enthält:
- eine
agent.api_resourcemit Informationen zum bereitgestellten Agent. Sie können auchagent.operation_schemas()aufrufen, um die Liste der Vorgänge zurückzugeben, die vom Agent unterstützt werden. Weitere Informationen finden Sie unter Unterstützte Vorgänge. - eine
agent.api_client, die synchrone Dienstinteraktionen ermöglicht - ein
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: um synchron eine Antwort auf eine Anfrage zu erhalten.
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 mindestensmax_turns=2erforderlich: ein Turn zum Generieren von Tool-Argumenten und ein zweiter zum Ausführen des Tools.
Agent abfragen
Die query()-Methode bietet eine vereinfachte Möglichkeit, mit dem Agent 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. Das entspricht der folgenden (vollständigen) Form:
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.