AG2Agent im Agent Platform SDK können Sie KI-Agenten erstellen, die komplexe Aufgaben ausführen und in externe Tools eingebunden werden können.
In diesem Dokument wird erläutert, wie Sie einen AG2-Agenten entwickeln, einschließlich der Definition des Modells, des Hinzufügens von Tools und der Anpassung des Orchestrierungsablaufs.
Weitere Informationen zum Verwalten Ihrer bereitgestellten KI-Agenten finden Sie unter Bereitgestellte KI-Agenten verwalten.
So erstellen Sie einen AG2-Agenten:
- Ausführbares Programm definieren und konfigurieren
- Tool definieren und verwenden
- Optional: Orchestrierung anpassen
Hinweis
Folgen Sie der Anleitung unter Umgebung einrichten, um Ihre Umgebung einzurichten.
Schritt 1: Ausführbares Programm definieren und konfigurieren
Geben Sie das Modell an, das Sie verwenden möchten:
model = "gemini-3.5-flash"
Definieren Sie den Namen des ausführbaren Programms:
runnable_name = "Get Exchange Rate Agent"
Optional: Konfigurieren Sie das Modell:
from google.cloud.aiplatform.aiplatform import initializer
llm_config = {
"config_list": [{
"project_id": initializer.global_config.project,
"location": initializer.global_config.location,
"model": "gemini-3.5-flash",
"api_type": "google",
}]
}
Weitere Informationen zum Konfigurieren des Modells in AG2 finden Sie unter Model Configuration Deep-dive.
Optional: Konfigurieren Sie die Sicherheitseinstellungen des Modells. Das folgende Beispiel zeigt, wie Sie die Sicherheitseinstellungen konfigurieren können:
from vertexai.generative_models import HarmBlockThreshold, HarmCategory
safety_settings = {
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_ONLY_HIGH,
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_ONLY_HIGH,
HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_ONLY_HIGH,
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_ONLY_HIGH,
}
for config_item in llm_config["config_list"]:
config_item["safety_settings"] = safety_settings
Weitere Informationen zu den Optionen für Sicherheitseinstellungen in Gemini finden Sie unter Sicherheits attribute konfigurieren.
Erstellen Sie einen
AG2Agent
mit den Modellkonfigurationen:
from vertexai import agent_engines
agent = agent_engines.AG2Agent(
model=model, # Required.
runnable_name=runnable_name, # Required.
llm_config=llm_config, # Optional.
)
Wenn Sie in einer interaktiven Umgebung (z. B. einem Terminal oder Colab-Notebook) arbeiten, können Sie als Zwischenschritt eine Abfrage ausführen:
response = agent.query(input="What is the exchange rate from US dollars to SEK today?", max_turns=1)
print(response)
Die Antwort ist ein Python-Wörterbuch, das dem folgenden Beispiel ähnelt:
{'chat_id': None,
'chat_history': [{'content': 'What is the exchange rate from US dollars to Swedish currency?',
'role': 'assistant',
'name': 'user'},
{'content': 'I do not have access to real-time information, including currency exchange rates. To get the most up-to-date exchange rate from US dollars to Swedish Krona (SEK), I recommend using a reliable online currency converter or checking with your bank. \n',
'role': 'user',
'name': 'Exchange Rate Agent'}],
'summary': 'I do not have access to real-time information, including currency exchange rates. To get the most up-to-date exchange rate from US dollars to Swedish Krona (SEK), I recommend using a reliable online currency converter or checking with your bank. \n',
'cost': {'usage_including_cached_inference': {'total_cost': 5.2875e-06,
'gemini-3.5-flash': {'cost': 5.2875e-06,
'prompt_tokens': 34,
'completion_tokens': 62,
'total_tokens': 96}},
'usage_excluding_cached_inference': {'total_cost': 5.2875e-06,
'gemini-3.5-flash': {'cost': 5.2875e-06,
'prompt_tokens': 34,
'completion_tokens': 62,
'total_tokens': 96}}},
'human_input': []}
Optional: Erweiterte Anpassung
Die
AG2Agent
Vorlage verwendet api_type=="google" standardmäßig, da sie Zugriff auf alle
in Google Cloudverfügbaren Foundation Models bietet. Wenn Sie ein Modell verwenden möchten, das nicht
über api_type=="google"verfügbar ist, können Sie den llm_config
Parameter anpassen.
Eine Liste der in AG2 unterstützten Modelle und ihrer Funktionen finden Sie unter
Modellanbieter.
Die unterstützten Werte für llm_config= sind für jedes Chatmodell spezifisch. Weitere Informationen finden Sie in der entsprechenden Dokumentation.
Gemini
Standardmäßig installiert.
Wird in AG2Agent verwendet, wenn Sie das Argument llm_config
weglassen, z. B.
from vertexai import agent_engines
agent = agent_engines.AG2Agent(
model=model, # Required.
runnable_name=runnable_name # Required.
)
Anthropic
Folgen Sie zuerst der Dokumentation um ein Konto einzurichten und das Paket zu installieren.
Definieren Sie dann eine llm_config:
llm_config = {
"config_list": [{
"model": "claude-3-5-sonnet-20240620", # Required.
"api_key": "ANTHROPIC_API_KEY", # Required.
"api_type": "anthropic", # Required.
}]
}
Verwenden Sie sie schließlich in AG2Agent mit dem folgenden Code:
from vertexai import agent_engines
agent = agent_engines.AG2Agent(
model="claude-3-5-sonnet-20240620", # Required.
runnable_name=runnable_name, # Required.
llm_config=llm_config, # Optional.
)
OpenAI
Sie können OpenAI in Verbindung mit der ChatCompletions
API von Gemini verwenden.
Definieren Sie zuerst eine llm_config:
import google.auth
from google.cloud.aiplatform.aiplatform import initializer
project = initializer.global_config.project
location = initializer.global_config.location
base_url = f"https://{location}-aiplatform.googleapis.com/v1beta1/projects/{project}/locations/{location}/endpoints/openapi"
# Note: the credential lives for 1 hour by default.
# After expiration, it must be refreshed.
creds, _ = google.auth.default(scopes=["https://www.googleapis.com/auth/cloud-platform"])
auth_req = google.auth.transport.requests.Request()
creds.refresh(auth_req)
llm_config = {
"config_list": [{
"model": "google/gemini-3.5-flash", # Required.
"api_type": "openai", # Required.
"base_url": base_url, # Required.
"api_key": creds.token, # Required.
}]
}
Verwenden Sie sie schließlich in AG2Agent mit dem folgenden Code:
from vertexai import agent_engines
agent = agent_engines.AG2Agent(
model="google/gemini-3.5-flash", # Or "meta/llama3-405b-instruct-maas".
runnable_name=runnable_name, # Required.
llm_config=llm_config, # Optional.
)
Schritt 2: Tool definieren und verwenden
Nachdem Sie Ihr Modell definiert haben, definieren Sie im nächsten Schritt die Tools, die Ihr Modell für Logik verwendet. Ein Tool kann ein AG2-Tool oder eine Python-Funktion sein.
Wenn Sie Ihre Funktion definieren, ist es wichtig, Kommentare einzufügen, die die Parameter der Funktion, ihre Funktionsweise und die Rückgabe vollständig und klar beschreiben. Diese Informationen werden vom Modell verwendet, um zu bestimmen, welche Funktion verwendet werden soll. Sie müssen Ihre Funktion auch lokal testen, um zu bestätigen, dass sie funktioniert.
Verwenden Sie den folgenden Code, um eine Funktion zu definieren, die einen Wechselkurs zurückgibt:
def get_exchange_rate(
currency_from: str = "USD",
currency_to: str = "EUR",
currency_date: str = "latest",
):
"""Retrieves the exchange rate between two currencies on a specified date.
Uses the Frankfurter API (https://api.frankfurter.app/) to obtain
exchange rate data.
Args:
currency_from: The base currency (3-letter currency code).
Defaults to "USD" (US Dollar).
currency_to: The target currency (3-letter currency code).
Defaults to "EUR" (Euro).
currency_date: The date for which to retrieve the exchange rate.
Defaults to "latest" for the most recent exchange rate data.
Can be specified in YYYY-MM-DD format for historical rates.
Returns:
dict: A dictionary containing the exchange rate information.
Example: {"amount": 1.0, "base": "USD", "date": "2023-11-24",
"rates": {"EUR": 0.95534}}
"""
import requests
response = requests.get(
f"https://api.frankfurter.app/{currency_date}",
params={"from": currency_from, "to": currency_to},
)
return response.json()
Wenn Sie die Funktion testen möchten, bevor Sie sie in Ihrem KI-Agenten verwenden, führen Sie Folgendes aus:
get_exchange_rate(currency_from="USD", currency_to="SEK")
Die Antwort sollte in etwa so aussehen:
{'amount': 1.0, 'base': 'USD', 'date': '2024-02-22', 'rates': {'SEK': 10.3043}}
Wenn Sie das Tool in AG2Agent verwenden möchten, fügen Sie es der Liste der Tools unter dem Argument tools= hinzu:
from vertexai import agent_engines
agent = agent_engines.AG2Agent(
model=model, # Required.
runnable_name=runnable_name, # Required.
tools=[get_exchange_rate], # Optional.
)
Sie können den KI-Agenten lokal testen, indem Sie Testabfragen an ihn durchführen. Führen Sie den folgenden Befehl aus, um den KI-Agenten lokal mit US-Dollar und schwedischen Kronen zu testen:
response = agent.query(input="What is the exchange rate from US dollars to Swedish currency?", max_turns=2)
Die Antwort ist ein Wörterbuch, das dem folgenden ähnelt:
{'chat_id': None,
'chat_history': [{'content': 'What is the exchange rate from US dollars to Swedish currency?',
'role': 'assistant',
'name': 'user'},
{'content': '',
'tool_calls': [{'id': '2285',
'function': {'arguments': '{"currency_from": "USD", "currency_to": "SEK"}',
'name': 'get_exchange_rate'},
'type': 'function'}],
'role': 'assistant'},
{'content': "{'amount': 1.0, 'base': 'USD', 'date': '2025-02-27', 'rates': {'SEK': 10.6509}}",
'tool_responses': [{'tool_call_id': '2285',
'role': 'tool',
'content': "{'amount': 1.0, 'base': 'USD', 'date': '2025-02-27', 'rates': {'SEK': 10.6509}}"}],
'role': 'tool',
'name': 'user'},
{'content': 'The current exchange rate is 1 USD to 10.6509 SEK. \n',
'role': 'user',
'name': 'Get Exchange Rate Agent'},
{'content': 'What is the exchange rate from US dollars to Swedish currency?',
'role': 'assistant',
'name': 'user'},
{'content': '',
'tool_calls': [{'id': '4270',
'function': {'arguments': '{"currency_from": "USD", "currency_to": "SEK"}',
'name': 'get_exchange_rate'},
'type': 'function'}],
'role': 'assistant'},
{'content': "{'amount': 1.0, 'base': 'USD', 'date': '2025-02-27', 'rates': {'SEK': 10.6509}}",
'tool_responses': [{'tool_call_id': '4270',
'role': 'tool',
'content': "{'amount': 1.0, 'base': 'USD', 'date': '2025-02-27', 'rates': {'SEK': 10.6509}}"}],
'role': 'tool',
'name': 'user'},
{'content': 'The current exchange rate is 1 USD to 10.6509 SEK. \n',
'role': 'user',
'name': 'Get Exchange Rate Agent'}],
'summary': 'The current exchange rate is 1 USD to 10.6509 SEK. \n',
'cost': {'usage_including_cached_inference': {'total_cost': 0.0002790625,
'gemini-3.5-flash': {'cost': 0.0002790625,
'prompt_tokens': 757,
'completion_tokens': 34,
'total_tokens': 791}},
'usage_excluding_cached_inference': {'total_cost': 0.0002790625,
'gemini-3.5-flash': {'cost': 0.0002790625,
'prompt_tokens': 757,
'completion_tokens': 34,
'total_tokens': 791}}},
'human_input': []}
Schritt 3: Orchestrierung anpassen
Alle AG2-Agenten implementieren die ConversableAgent-Schnittstelle,
die Eingabe- und Ausgabeschemas für die Orchestrierung bereitstellt. Für die
AG2Agent
Vorlage muss ein ausführbares Programm erstellt werden, damit sie auf Abfragen antworten kann. Standardmäßig
erstellt
AG2Agent
ein solches ausführbares Programm, indem das Modell mit
Toolsverknüpft wird.
Sie können die Orchestrierung anpassen, wenn Sie (i) einen
Assistant
Agenten
implementieren möchten, der eine Aufgabe mit einem Modell löst, oder (ii) einen User Proxy
Agenten
implementieren möchten, der Code ausführen und Feedback an die anderen Agenten geben kann, oder (iii)
einen Reasoning
Agenten implementieren möchten, der
eine Aufgabe mit einem Modell und der Tree-of-Thought-Methode löst. Dazu müssen Sie
das ausführbare Standardprogramm beim Erstellen
AG2Agent
überschreiben, indem Sie das runnable_builder= Argument mit einer Python-Funktion der
folgenden Signatur angeben:
def runnable_builder(
**runnable_kwargs,
):
So haben Sie verschiedene Möglichkeiten, die Orchestrierungslogik anzupassen.
Assistant Agent
Im einfachsten Fall können Sie den runnable_builder für AG2Agent überschreiben, um einen Assistant Agent ohne Orchestrierung zu erstellen.
from vertexai import agent_engines
def runnable_builder(**kwargs):
from autogen import agentchat
return agentchat.AssistantAgent(**kwargs)
agent = agent_engines.AG2Agent(
model=model,
runnable_name=runnable_name,
runnable_builder=runnable_builder,
)
User Proxy Agent
Im einfachsten Fall können Sie den runnable_builder für AG2Agent überschreiben, um einen User Proxy Agent ohne Orchestrierung zu erstellen.
from vertexai import agent_engines
def runnable_builder(**kwargs):
from autogen import agentchat
return agentchat.UserProxyAgent(**kwargs)
agent = agent_engines.AG2Agent(
model=model,
runnable_name=runnable_name,
runnable_builder=runnable_builder,
)
Reasoning Agent
Im einfachsten Fall können Sie den runnable_builder für AG2Agent überschreiben, um einen Reasoning Agent ohne Orchestrierung zu erstellen.
from vertexai import agent_engines
def runnable_builder(**kwargs):
from autogen import agentchat
return agentchat.ReasoningAgent(**kwargs)
agent = agent_engines.AG2Agent(
model=model,
runnable_name=runnable_name,
runnable_builder=runnable_builder,
)
Nächste Schritte
KI-Agenten bereitstellen
Hier erfahren Sie mehr über die fünf Möglichkeiten, einen KI-Agenten in Agent Platform Runtime bereitzustellen.
KI-Agenten bewerten
Einen einfachen KI-Agenten erstellen und bereitstellen und den Gen AI Evaluation Service verwenden, um den KI-Agenten zu bewerten.
Fehlerbehebung bei der Erstellung von KI-Agenten
Hier erfahren Sie, wie Sie häufige Fehler beim Erstellen benutzerdefinierter KI-Agenten beheben.