Además de las instrucciones generales para usar un agente, en esta página se describen las funciones específicas de AG2Agent.
Antes de empezar
En este tutorial se da por hecho que has leído y seguido las instrucciones de los siguientes artículos:
- Desarrollar un agente de AG2: para desarrollar
agentcomo instancia deAG2Agent. - Autenticación de usuario: para autenticarte como usuario y consultar al agente.
- Importa e inicializa el SDK para inicializar el cliente y obtener una instancia implementada (si es necesario).
Obtener una instancia de un agente
Para consultar un AG2Agent, primero debes crear una instancia o obtener una instancia que ya tengas.
Para obtener el AG2Agent correspondiente a un ID de recurso específico, sigue estos pasos:
SDK de Vertex AI para Python
Ejecuta el siguiente código:
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)
donde
PROJECT_IDes el Google Cloud ID de proyecto en el que desarrollas y despliegas agentes.LOCATIONes una de las regiones admitidas.RESOURCE_IDes el ID del agente implementado como recursoreasoningEngine.
Biblioteca de solicitudes de Python
Ejecuta el siguiente código:
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_IDCuando se usa el SDK de Vertex AI para Python, el objeto agent corresponde a una clase AgentEngine que contiene lo siguiente:
- una
agent.api_resourcecon información sobre el agente implementado. También puedes llamar aagent.operation_schemas()para que se devuelva la lista de operaciones que admite el agente. Consulta Operaciones admitidas para obtener más información. - un
agent.api_clientque permite interacciones de servicio síncronas - un
agent.async_api_clientque permite interacciones de servicio asíncronas
En el resto de esta sección se presupone que tienes una instancia de AgentEngine llamada agent.
Operaciones admitidas
Se admiten las siguientes operaciones para AG2Agent:
query: para obtener una respuesta a una consulta de forma síncrona.
El método query admite los siguientes argumentos:
input: el mensaje que se enviará al agente.max_turns: número máximo de turnos de conversación permitidos. Cuando se usan herramientas, se necesita un mínimo demax_turns=2: un turno para generar argumentos de herramientas y otro para ejecutar la herramienta.
Consultar el agente
El método query() ofrece una forma simplificada de interactuar con el agente. Una llamada típica tiene este aspecto:
response = agent.query(input="What is the exchange rate from US dollars to Swedish currency?", max_turns=2)
Este método gestiona la comunicación subyacente con el agente y devuelve la respuesta final del agente como un diccionario. Es equivalente a lo siguiente (en formato completo):
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
)
Puedes personalizar el comportamiento del agente más allá de input y max_turns pasando argumentos de palabras clave adicionales a 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)
Consulta la documentación de ConversableAgent.run para ver una lista completa de los parámetros disponibles. Sin embargo, ten en cuenta que user_input siempre se sustituirá por False en la plantilla AG2Agent.