Desenvolva e implemente agentes no Vertex AI Agent Engine
Esta página demonstra como criar e implementar um agente que devolve a taxa de câmbio entre duas moedas numa data especificada, usando as seguintes estruturas de agentes:
Pipeline de consultas do LlamaIndex (pré-visualização)
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Utilizador do Vertex AI (
roles/aiplatform.user
) -
Administrador de armazenamento (
roles/storage.admin
) Execute o seguinte comando para instalar o SDK Vertex AI para Python e outros pacotes necessários:
ADK
pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,adk]>=1.112
LangGraph
pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,langchain]>=1.112
LangChain
pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,langchain]>=1.112
AG2
pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,ag2]>=1.112
LlamaIndex
pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,llama_index]>=1.112
Autentique-se como utilizador
Colab
Execute o seguinte código:
from google.colab import auth auth.authenticate_user(project_id="PROJECT_ID")
Cloud Shell
Não é necessária nenhuma ação.
Shell local
Execute o seguinte comando:
gcloud auth application-default login
Execute o seguinte código para importar o Vertex AI Agent Engine e inicializar o SDK:
import vertexai client = vertexai.Client( project="PROJECT_ID", # Your project ID. location="LOCATION", # Your cloud region. )
Onde:
PROJECT_ID
é o Google Cloud ID do projeto no qual desenvolve e implementa agentesLOCATION
é uma das regiões suportadas.
Para receber as autorizações de que precisa para usar o Vertex AI Agent Engine, peça ao seu administrador que lhe conceda as seguintes funções de IAM no seu projeto:
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Instale e inicialize o SDK Vertex AI para Python
Desenvolva um agente
Primeiro, desenvolva uma ferramenta:
def get_exchange_rate(
currency_from: str = "USD",
currency_to: str = "EUR",
currency_date: str = "latest",
):
"""Retrieves the exchange rate between two currencies on a specified date."""
import requests
response = requests.get(
f"https://api.frankfurter.app/{currency_date}",
params={"from": currency_from, "to": currency_to},
)
return response.json()
Em seguida, instancie um agente:
ADK
from google.adk.agents import Agent
from vertexai import agent_engines
agent = Agent(
model="gemini-2.0-flash",
name='currency_exchange_agent',
tools=[get_exchange_rate],
)
app = agent_engines.AdkApp(agent=agent)
LangGraph
from vertexai import agent_engines
agent = agent_engines.LanggraphAgent(
model="gemini-2.0-flash",
tools=[get_exchange_rate],
model_kwargs={
"temperature": 0.28,
"max_output_tokens": 1000,
"top_p": 0.95,
},
)
LangChain
from vertexai import agent_engines
agent = agent_engines.LangchainAgent(
model="gemini-2.0-flash",
tools=[get_exchange_rate],
model_kwargs={
"temperature": 0.28,
"max_output_tokens": 1000,
"top_p": 0.95,
},
)
AG2
from vertexai import agent_engines
agent = agent_engines.AG2Agent(
model="gemini-2.0-flash",
runnable_name="Get Exchange Rate Agent",
tools=[get_exchange_rate],
)
LlamaIndex
from vertexai.preview import reasoning_engines
def runnable_with_tools_builder(model, runnable_kwargs=None, **kwargs):
from llama_index.core.query_pipeline import QueryPipeline
from llama_index.core.tools import FunctionTool
from llama_index.core.agent import ReActAgent
llama_index_tools = []
for tool in runnable_kwargs.get("tools"):
llama_index_tools.append(FunctionTool.from_defaults(tool))
agent = ReActAgent.from_tools(llama_index_tools, llm=model, verbose=True)
return QueryPipeline(modules = {"agent": agent})
agent = reasoning_engines.LlamaIndexQueryPipelineAgent(
model="gemini-2.0-flash",
runnable_kwargs={"tools": [get_exchange_rate]},
runnable_builder=runnable_with_tools_builder,
)
Por fim, teste o agente localmente:
ADK
async for event in app.async_stream_query(
user_id="USER_ID",
message="What is the exchange rate from US dollars to SEK today?",
):
print(event)
onde USER_ID é um ID definido pelo utilizador com um limite de 128 carateres.
LangGraph
agent.query(input={"messages": [
("user", "What is the exchange rate from US dollars to SEK today?"),
]})
LangChain
agent.query(
input="What is the exchange rate from US dollars to SEK today?"
)
AG2
agent.query(
input="What is the exchange rate from US dollars to SEK today?"
)
LlamaIndex
agent.query(
input="What is the exchange rate from US dollars to SEK today?"
)
Implemente um agente
Para implementar o agente:
ADK
remote_agent = client.agent_engines.create(
agent=app,
config={
"requirements": ["google-cloud-aiplatform[agent_engines,adk]"],
}
)
LangGraph
remote_agent = client.agent_engines.create(
agent,
config={
"requirements": ["google-cloud-aiplatform[agent_engines,langchain]"],
},
)
LangChain
remote_agent = client.agent_engines.create(
agent,
config={
"requirements": ["google-cloud-aiplatform[agent_engines,langchain]"],
},
)
AG2
from vertexai import agent_engines
remote_agent = agent_engines.create(
agent,
config={
"requirements": ["google-cloud-aiplatform[agent_engines,ag2]"],
},
)
LlamaIndex
from vertexai import agent_engines
remote_agent = agent_engines.create(
agent,
config={
"requirements": ["google-cloud-aiplatform[agent_engines,llama_index]"],
},
)
Esta ação cria um recurso reasoningEngine
no Vertex AI.
Use um agente
Teste o agente implementado enviando uma consulta:
ADK
async for event in remote_agent.async_stream_query(
user_id="USER_ID",
message="What is the exchange rate from US dollars to SEK today?",
):
print(event)
LangGraph
remote_agent.query(input={"messages": [
("user", "What is the exchange rate from US dollars to SEK today?"),
]})
LangChain
remote_agent.query(
input="What is the exchange rate from US dollars to SEK today?"
)
AG2
remote_agent.query(
input="What is the exchange rate from US dollars to SEK today?"
)
LlamaIndex
remote_agent.query(
input="What is the exchange rate from US dollars to SEK today?"
)
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.
remote_agent.delete(force=True)