Utiliser un agent AG2

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 :

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 qui correspond à un ID de ressource spécifique :

SDK Agent Platform

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ù :

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 Agent Platform, l'objet agent correspond à une classe AgentEngine qui contient les éléments suivants :

Le reste de cette section suppose que vous disposez d'une instance AgentEngine nommée agent.

Opérations prises en charge

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 de max_turns=2 est requis : un tour pour générer des arguments d'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 typique ressemble à ceci :

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 équivaut à 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, gardez à l'esprit que user_input sera toujours remplacé par False dans le modèle AG2Agent.

Étapes suivantes