借助Agent Identity,您可以使用 Agents CLI 和智能体开发套件 (ADK) 为您在 Gemini Enterprise Agent Platform 上的 Agent Runtime 中创建和部署的智能体预配代管式身份。然后,您部署的智能体可以向Cloud de Confiance by S3NS 服务进行身份验证,并从Agent Identity 身份验证管理器检索凭证,而无需手动管理凭证。
准备工作
启用 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终止服务器。将代理部署到 Cloud de Confiance:
uv run adk deploy agent_engine AGENT_NAME \ --project="PROJECT_ID" \ --region="LOCATION"
替换以下内容:
PROJECT_ID:您的 Cloud de Confiance 项目 ID。LOCATION:要在其中部署智能体的受支持区域(例如us-west1)。
部署可能需要几分钟才能完成。完成后,CLI 会输出一条确认消息,以及指向 Cloud de Confiance 控制台中代理 Playground 的链接。
检索智能体的 SPIFFE ID(智能体身份):
在 Cloud de Confiance 控制台中,前往部署页面。
如需将智能体的 SPIFFE ID 复制到剪贴板,请找到已部署智能体所在的行,然后点击该行身份列中的 复制到剪贴板。身份类似于以下内容:
principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/ENGINE_ID。