Além das instruções gerais para usar um agente, esta página descreve funcionalidades específicas do AG2Agent.
Antes de começar
Este tutorial pressupõe que leu e seguiu as instruções em:
- Desenvolver um agente AG2: para desenvolver
agentcomo uma instância deAG2Agent. - Autenticação do utilizador para autenticar como utilizador para consultar o agente.
- Importe e inicialize o SDK para inicializar o cliente para obter uma instância implementada (se necessário).
Obtenha uma instância de um agente
Para consultar um AG2Agent, primeiro tem de
criar uma nova instância ou
obter uma instância existente.
Para obter o AG2Agent correspondente a um ID do recurso específico:
SDK Vertex AI para Python
Execute o seguinte 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)
onde
PROJECT_IDé o Google Cloud ID do projeto no qual desenvolve e implementa agentes, eLOCATIONé uma das regiões suportadas.RESOURCE_IDé o ID do agente implementado como um recursoreasoningEngine.
Biblioteca de pedidos Python
Execute o seguinte 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_IDQuando usa o SDK Vertex AI para Python, o objeto agent corresponde a uma classe AgentEngine que contém o seguinte:
- Um
agent.api_resourcecom informações sobre o agente implementado. Também pode chamaragent.operation_schemas()para devolver a lista de operações que o agente suporta. Consulte o artigo Operações suportadas para ver detalhes. - Um
agent.api_clientque permite interações de serviço síncronas - Um
agent.async_api_clientque permite interações de serviço assíncronas
O resto desta secção pressupõe que tem uma instância do AgentEngine, denominada agent.
Operações compatíveis
As seguintes operações são suportadas para AG2Agent:
query: para receber uma resposta a uma consulta de forma síncrona.
O método query suporta os argumentos:
input: a mensagem a enviar ao agente.max_turns: o número máximo de interações de conversa permitidas. Quando usa ferramentas, são necessários, no mínimo,max_turns=2turnos: um para gerar argumentos de ferramentas e um segundo para executar a ferramenta.
Consultar o agente
O método query() oferece uma forma simplificada de interagir com o agente. Uma chamada típica tem o seguinte aspeto:
response = agent.query(input="What is the exchange rate from US dollars to Swedish currency?", max_turns=2)
Este método processa a comunicação subjacente com o agente e devolve a resposta final do agente como um dicionário. É equivalente ao seguinte (na 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
)
Pode personalizar o comportamento do agente além de input e max_turns transmitindo argumentos de palavras-chave adicionais 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)
Consulte a
ConversableAgent.run documentação
para ver uma lista completa dos parâmetros disponíveis. No entanto, tenha em atenção que o valor
user_input é sempre substituído por False no modelo AG2Agent.