Además de las instrucciones generales para usar un agente, en esta página, se describen las funciones específicas de AG2Agent.
Antes de comenzar
En este instructivo, se supone que leíste y seguiste las instrucciones que se indican en los siguientes documentos:
- Desarrolla un agente de AG2: Para desarrollar
agentcomo una instancia deAG2Agent. - Autenticación del usuario para autenticarse como usuario y consultar al agente
- Importa e inicializa el SDK para inicializar el cliente y obtener una instancia implementada (si es necesario).
Obtén una instancia de un agente
Para consultar un AG2Agent, primero debes crear una instancia nueva o obtener una instancia existente.
Para obtener el objeto AG2Agent correspondiente a un ID de recurso específico, haz lo siguiente:
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 del proyecto en el que desarrollas y despliegas agentes.LOCATIONes una de las regiones admitidas.RESOURCE_IDes el ID del agente implementado como un 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 de 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:
- Un
agent.api_resourcecon información sobre el agente implementado. También puedes llamar aagent.operation_schemas()para devolver la lista de operaciones que admite el agente. Consulta Operaciones admitidas para obtener más detalles. - 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 supone que tienes una instancia de AgentEngine, llamada agent.
Operaciones admitidas
Se admiten las siguientes operaciones para AG2Agent:
query: Para obtener una respuesta a una búsqueda de forma síncrona.
El método query admite los siguientes argumentos:
input: Es el mensaje que se enviará al agente.max_turns: Es la cantidad máxima de turnos de conversación permitidos. Cuando se usan herramientas, se requiere un mínimo demax_turns=2: un turno para generar argumentos de herramientas y un segundo para ejecutar la herramienta.
Consulta al agente
El método query() proporciona una forma simplificada de interactuar con el agente. Una llamada típica se ve de la siguiente manera:
response = agent.query(input="What is the exchange rate from US dollars to Swedish currency?", max_turns=2)
Este método controla la comunicación subyacente con el agente y devuelve la respuesta final del agente como un diccionario. Es equivalente a lo siguiente (en forma completa):
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 obtener una lista completa de los parámetros disponibles. Sin embargo, ten en cuenta que la plantilla AG2Agent siempre anulará user_input y lo establecerá en False.