Desenvolver e implantar agentes no Vertex AI Agent Engine

Esta página demonstra 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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI and Cloud Storage APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI and Cloud Storage APIs.

    Enable the APIs

Para receber as permissões necessárias a fim de usar o Vertex AI Agent Engine, peça que o administrador conceda 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 por meio de papéis personalizados ou de outros papéis predefinidos.

Instalar e inicializar o SDK do Vertex AI para Python

  1. 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]

    LangGraph

    pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,langchain]

    LangChain

    pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,langchain]

    AG2

    pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,ag2]

    LlamaIndex

    pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,llama_index]
  2. 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
  3. Execute o código abaixo para importar o Vertex AI Agent Engine e inicializar o SDK:

    import vertexai
    from vertexai import agent_engines
    
    vertexai.init(
        project="PROJECT_ID",               # Your project ID.
        location="LOCATION",                # Your cloud region.
        staging_bucket="gs://BUCKET_NAME",  # Your staging bucket.
    )
    

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.preview.reasoning_engines import AdkApp

agent = Agent(
    model="gemini-2.0-flash",
    name='currency_exchange_agent',
    tools=[get_exchange_rate],
)

app = 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

for event in app.stream_query(
    user_id="USER_ID",
    message="What is the exchange rate from US dollars to SEK today?",
):
    print(event)

em que USER_ID é um ID definido pelo usuário com um limite de 128 caracteres.

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

from vertexai import agent_engines

remote_agent = agent_engines.create(
    app,
    requirements=["google-cloud-aiplatform[agent_engines,adk]"],
)

LangGraph

from vertexai import agent_engines

remote_agent = agent_engines.create(
    agent,
    requirements=["google-cloud-aiplatform[agent_engines,langchain]"],
)

LangChain

from vertexai import agent_engines

remote_agent = agent_engines.create(
    agent,
    requirements=["google-cloud-aiplatform[agent_engines,langchain]"],
)

AG2

from vertexai import agent_engines

remote_agent = agent_engines.create(
    agent,
    requirements=["google-cloud-aiplatform[agent_engines,ag2]"],
)

LlamaIndex

from vertexai import agent_engines

remote_agent = agent_engines.create(
    agent,
    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

for event in remote_agent.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 cobranças na conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.

remote_agent.delete(force=True)

A seguir