本指南介绍了如何在启用智能体身份的 Gemini Enterprise Agent Platform 上的 Agent Runtime 中创建和部署智能体。
代理身份会为已部署的代理分配安全的 SPIFFE 身份。代理使用此身份向 Google Cloud 服务进行身份验证,并从代理身份验证管理器中检索凭据。
准备工作
启用 Agent Identity API、Agent Platform API、Agent Registry API 和 App Hub API。
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。确保您拥有项目的 Agent Platform User (
roles/aiplatform.user) 角色。
创建和部署代理
使用 google-agents-cli 创建示例代理,并使用代理身份信息进行部署:
安装
uv,然后运行google-agents-cli设置:pip install uv uvx google-agents-cli setup
使用原型模板创建代理项目:
uvx google-agents-cli create AGENT_PROJECT --prototype --yes
将
AGENT_PROJECT替换为新代理项目目录的名称(例如maps-agent)。此命令会生成以下项目目录结构:
AGENT_PROJECT/ ├── app/ # Core agent code │ ├── agent.py # Main agent logic │ ├── fast_api_app.py # Client application logic │ └── app_utils/ # App utilities and helpers ├── tests/ # Unit and integration tests ├── GEMINI.md # Development guide └── pyproject.toml # Project dependencies
将默认应用文件夹 (
app) 重命名为与您的代理名称 (AGENT_NAME,例如maps_agent) 一致。代理名称必须是有效的 Python 标识符:必须以字母开头,并且只能包含字母、数字和下划线。cd AGENT_PROJECT mv app AGENT_NAME
更新
agent.py配置文件以反映新名称:# In AGENT_PROJECT/AGENT_NAME/agent.py app = App( root_agent=root_agent, name="
AGENT_NAME", )根据模型的区域可用性选择要使用的模型。 更新
agent.py中MODEL的值,以与您选择的型号相匹配。仅在
global区域提供的模型的解决方法如需使用仅在
global区域提供的模型,您必须修改agent.py,以便您的代理可以访问该模型。-
添加以下 import 命令:
from functools import cached_property from google.genai import Client
-
在导入内容后添加以下子类:
class GlobalGemini(Gemini): @cached_property def api_client(self) -> Client: return Client(enterprise=True, location="global")
-
找到以下代码:
root_agent = Agent( name="root_agent", model=Gemini(
将其更改为引用新的子类:
root_agent = Agent( name="root_agent", model=GlobalGemini(
-
通过创建配置文件来启用代理身份:
echo '{ "identity_type": "AGENT_IDENTITY" }' > AGENT_NAME/.agent_engine_config.json
为部署依赖项创建一个
requirements.txt文件:uv export \ --no-emit-workspace \ --no-hashes \ --format requirements.txt \ --output-file AGENT_NAME/requirements.txt
验证项目目录结构:
AGENT_PROJECT/ ├── AGENT_NAME/ # Agent application folder │ ├── .agent_engine_config.json # Agent Identity configuration │ ├── agent.py # Main agent logic │ ├── fast_api_app.py # Client application logic │ ├── requirements.txt # Deployment dependencies │ └── app_utils/ # App helpers ├── tests/ # Tests ├── GEMINI.md # Development guide └── pyproject.toml # Project dependencies
在本地测试智能体:
uv run adk web . --port 8501 --reload_agents
如需验证代理,请执行以下操作:
转到
http://localhost:8501。或者,如果您使用的是 Cloud Shell,请点击 Web 服务器输出提供的链接。在聊天界面中,发送测试提示以验证回答。
使用
CTRL+C终止服务器。将代理部署到 Google Cloud:
uv run adk deploy agent_engine AGENT_NAME \ --project="PROJECT_ID" \ --region="LOCATION"
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目 ID。LOCATION:您希望在其中部署代理的受支持区域(例如us-west1)。
部署过程可能需要几分钟才能完成。完成后,CLI 会输出一条确认消息,以及 Google Cloud 控制台中代理的 Playground 的链接。
检索代理的 SPIFFE ID(代理身份):
在 Google Cloud 控制台中,前往部署页面。
如需将代理的 SPIFFE ID 复制到剪贴板,请找到已部署的代理所在的行,然后在该行的身份列中点击 复制到剪贴板。 身份信息类似于以下内容:
principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/ENGINE_ID。