在 Vertex AI Agent Engine 上开发和部署智能体

本页面演示了如何使用以下智能体框架创建智能体并将其部署到 Vertex AI Agent Engine 运行时:

本快速入门将引导您完成以下步骤:

  • 设置 Google Cloud 项目。

  • 安装 Vertex AI SDK for Python 和您选择的框架。

  • 开发货币兑换代理。

  • 将代理部署到 Vertex AI Agent Engine 运行时。

  • 测试已部署的代理。

如需了解使用智能体开发套件的快速入门,请参阅使用智能体开发套件在 Vertex AI Agent Engine 上开发和部署智能体

准备工作

  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.

    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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. 如需获得使用 Vertex AI Agent Engine 所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

    安装并初始化 Python 版 Vertex AI SDK

    1. 运行以下命令以安装 Vertex AI SDK for Python 和其他所需的软件包:

      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
    2. 以用户身份进行身份验证

      Colab

      运行以下代码:

      from google.colab import auth
      
      auth.authenticate_user(project_id="PROJECT_ID")
      

      Cloud Shell

      您无需执行任何操作。

      本地 Shell

      运行以下命令:

      gcloud auth application-default login

      快速模式

      如果您使用的是快速模式下的 Vertex AI,则无需执行任何操作。

    3. 运行以下代码以导入 Vertex AI Agent Engine 并初始化 SDK:

      1. (可选)在测试您开发的代理之前,您需要导入 Vertex AI Agent Engine 并初始化 SDK,如下所示:

        Google Cloud 项目

        import vertexai
        
        vertexai.init(
            project="PROJECT_ID",               # Your project ID.
            location="LOCATION",                # Your cloud region.
        )
        

        其中:

        快速模式

        如果您使用快速模式下的 Vertex AI,请运行以下代码:

        import vertexai
        
        vertexai.init(
            api_key="API_KEY"
        )
        

        其中 API_KEY 是您用于对代理进行身份验证的 API 密钥。

      2. 部署智能体之前,您需要导入 Vertex AI Agent Engine 并按如下方式初始化 SDK:

        Google Cloud 项目

        import vertexai
        
        client = vertexai.Client(
            project="PROJECT_ID",               # Your project ID.
            location="LOCATION",                # Your cloud region.
        )
        

        其中:

        快速模式

        如果您使用快速模式下的 Vertex AI,请运行以下代码:

        import vertexai
        
        client = vertexai.Client(
            api_key="API_KEY"
        )
        

        其中 API_KEY 是您用于对代理进行身份验证的 API 密钥。

    开发代理

    1. 为智能体开发货币兑换工具:

      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()
      
    2. 实例化代理:

      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,
      )
      
    3. 在本地测试代理:

      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?"
      )
      

    部署代理

    通过在 Vertex AI 中创建 reasoningEngine 资源来部署智能体:

    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

    remote_agent = client.agent_engines.create(
        agent,
        config={
            "requirements": ["google-cloud-aiplatform[agent_engines,ag2]"],
        },
    )
    

    LlamaIndex

    remote_agent = client.agent_engines.create(
        agent,
        config={
            "requirements": ["google-cloud-aiplatform[agent_engines,llama_index]"],
        },
    )
    

    使用代理

    通过发送查询来测试部署的智能体:

    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?"
    )
    

    清理

    为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

    remote_agent.delete(force=True)
    

    后续步骤