Desenvolver e implantar agentes no Vertex AI Agent Engine
Esta página mostra como criar e implantar um agente que retorna a taxa de câmbio entre duas moedas em uma data especificada usando os seguintes frameworks de agente:
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. -
Usuário da Vertex AI (
roles/aiplatform.user
) -
Administrador do Storage (
roles/storage.admin
) Execute o seguinte comando para instalar o SDK da 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
Autenticar como usuário
Colab
Execute o seguinte código:
from google.colab import auth auth.authenticate_user(project_id="PROJECT_ID")
Cloud Shell
Nenhuma ação é necessária.
Shell local
Execute este comando:
gcloud auth application-default login
Execute o código a seguir 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. )
Em que:
PROJECT_ID
é o Google Cloud ID do projeto em que você desenvolve e implanta agentes.LOCATION
é uma das regiões com suporte.
- USER_ID: escolha seu próprio ID de usuário com um limite de 128 caracteres.
Por exemplo,
user-123
.
Para receber as permissões necessárias para usar o mecanismo de agente da Vertex AI, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Instalar e inicializar o SDK do Vertex AI para Python
Desenvolver 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)
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?"
)
Implantar um agente
Para implantar 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]"],
},
)
Isso cria um recurso reasoningEngine
na Vertex AI.
Usar um agente
Teste o agente implantado 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)
em que USER_ID é o ID do usuário definido ao testar o agente
localmente. Por exemplo, currency-exchange
.
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 cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
remote_agent.delete(force=True)