En plus des instructions générales pour utiliser un agent, cette page décrit les fonctionnalités spécifiques à AG2Agent
.
Avant de commencer
Ce tutoriel suppose que vous avez lu et suivi les instructions de :
- Développer un agent AG2 : pour développer
agent
en tant qu'instance deAG2Agent
. - Authentification de l'utilisateur pour s'authentifier en tant qu'utilisateur afin d'interroger l'agent.
- Importez et initialisez le SDK pour initialiser le client afin d'obtenir une instance déployée (si nécessaire).
Obtenir une instance d'un agent
Pour interroger un AG2Agent
, vous devez d'abord créer une instance ou obtenir une instance existante.
Pour obtenir le AG2Agent
correspondant à un ID de ressource spécifique :
SDK Vertex AI pour Python
Exécutez le code suivant :
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)
Où :
PROJECT_ID
correspond à l'ID de projet Google Cloud sous lequel vous développerez et déploierez des agents.LOCATION
désigne l'une des régions compatibles.RESOURCE_ID
est l'ID de l'agent déployé en tant que ressourcereasoningEngine
.
Bibliothèque de requêtes Python
Exécutez le code suivant :
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()}",
},
)
API REST
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
Lorsque vous utilisez le SDK Vertex AI pour Python, l'objet agent
correspond à une classe AgentEngine
qui contient les éléments suivants :
- un
agent.api_resource
contenant des informations sur l'agent déployé. Vous pouvez également appeleragent.operation_schemas()
pour renvoyer la liste des opérations compatibles avec l'agent. Pour en savoir plus, consultez Opérations compatibles. - un
agent.api_client
qui permet des interactions de service synchrones. - un
agent.async_api_client
qui permet des interactions de service asynchrones.
Le reste de cette section suppose que vous disposez d'une instance AgentEngine
nommée agent
.
Opérations compatibles
Les opérations suivantes sont acceptées pour AG2Agent
:
query
: pour obtenir une réponse à une requête de manière synchrone.
La méthode query
accepte les arguments suivants :
input
: message à envoyer à l'agent.max_turns
: nombre maximal de tours de conversation autorisés. Lorsque vous utilisez des outils, un minimum demax_turns=2
est requis : un tour pour générer les arguments de l'outil et un second pour exécuter l'outil.
Interroger l'agent
La méthode query()
permet d'interagir plus facilement avec l'agent. Un appel type se présente comme suit :
response = agent.query(input="What is the exchange rate from US dollars to Swedish currency?", max_turns=2)
Cette méthode gère la communication sous-jacente avec l'agent et renvoie la réponse finale de l'agent sous forme de dictionnaire. Il est équivalent à ce qui suit (sous forme complète) :
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
)
Vous pouvez personnaliser le comportement de l'agent au-delà de input
et max_turns
en transmettant des arguments de mots clés supplémentaires à query()
.
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)
Consultez la documentation ConversableAgent.run
pour obtenir la liste complète des paramètres disponibles. Toutefois, n'oubliez pas que user_input
sera toujours remplacé par False
par le modèle AG2Agent
.