Software-as-a-service (SaaS) 正在向 Agents-as-a-service (AaaS) 演进,这一点已经越来越清晰。开发者不再构建孤立的应用程序,而是创建基于标准化开放协议(比如 Agent2Agent (A2A) 协议)互操作的 AI 袋里,并通过 Gemini Enterprise Agent Platform 这类集中式袋里平台进行编排。
当为特定用例构建时,目标始终是设计高质量的袋里——既能保持自主性,又能可靠地执行复杂、多步骤的工作流,从而带来清晰的业务价值。对于希望在 Google Cloud Marketplace 上发布和商业化这些高影响力的第三方袋里,并将其部署到 Gemini Enterprise 应用中的构建者和开发者来说,下面的指南提供了一条通往完整集成、可上架解决方案的逐步路径。
1. 为 Marketplace 集成设计袋里架构
最终状态的架构需要打通三个关键环节:Google Cloud Marketplace 计费、身份提供者 (IdP) 安全,以及 Gemini Enterprise Agent Platform。
以下是这些架构元素的概览:
- 客户项目:用户通过 Google Cloud Marketplace 中的专用“Agent Marketplace”类别发现袋里,并通过 Gemini Enterprise 应用与这些袋里交互。
- 合作伙伴项目:托管你的袋里以及 marketplace handler(负责处理采购逻辑和动态客户端注册 DCR 的授权)。
- 合作伙伴 Marketplace 项目:管理 Partner Procurement API 和用于 Marketplace 事件(如账户创建或权限批准)的 Pub/Sub 主题。
2. 检查在 Marketplace 上销售的组织条件
- 加入 Google Cloud 合作伙伴网络:如果你是首次在 Marketplace 上提供解决方案,请先加入 Google Cloud 合作伙伴网络。
- 审查 Agent-as-a-Service 上架要求:确认你的组织满足在 Marketplace 上列出的要求。
- Marketplace 供应商协议:审阅并签署 Marketplace 供应商协议 (MVA)。
- 提名你的袋里:联系你的 Google Cloud 代表,为袋里申请上架。
所有在 Marketplace 上列出的袋里都必须满足上述标准要求,外加以下几点袋里专属要求:
- 定义袋里用例:建议明确具体的、袋里性的用例,面向高价值的企业功能,解决实际痛点,并能够跨多个企业客户规模化。
- A2A 协议遵从:袋里必须符合 A2A 协议规范以实现互操作性。这可以包括 A2UI 协议,允许袋里生成丰富的交互式用户界面。
- A2A Agent Card:创建一个 Agent Card,这是一个 JSON 文件,声明能力(技能)、认证方法和服务端点。
- 认证:袋里必须支持公共访问或 OAuth 2.0 授权码授权流程。
- Marketplace 集成:必须集成 Procurement API 和 Pub/Sub,用于权限生命周期管理。
3. 审查袋里与 Marketplace 及 Gemini Enterprise 应用兼容的技术要求
A2A 协议
设计和实现袋里时,请务必遵循 A2A 协议文档。它会指导你选择袋里可以提供的交互模式(例如流式或异步任务),并可能包括使用 A2UI 协议集成交互式 UI 体验。使用 A2UI 可以让你利用最新、最棒的 UX 控件——比如高级动态图表和现代交互模型。通过利用这些原生用户控件,你能确保袋里不仅功能可靠,而且在 Gemini Enterprise 应用中呈现出一种精工细作的品质感。
A2A Agent Card
要在 Marketplace 上列出你的 Agent-as-a-Service 产品,必须为袋里提供 A2A Agent Card。Agent Card 是一个 JSON 文件,声明了袋里的能力(技能)、支持的认证/授权方法和服务端点。Gemini Enterprise 应用会依赖你的 Agent Card 来完成以下操作:
- 显示袋里名称、描述和其他必要的元数据。
- 定位动态客户端注册的端点(如果支持)。
- 发现袋里入口点,用于发送消息或获取任务执行状态更新。
- 确定所需的认证/授权方法。
下面是一个 Agent Card 示例及其定义:
{
"name": "AI Agent Example",
"protocolVersion": "1.0",
"description": "Marketplace agent example.",
"url": $AGENT_APP_URL,
"preferredTransport": "JSONRPC",
"provider": {
"organization": $AGENT_PROVIDER_ORGANIZATION,
"url": $AGENT_PROVIDER_URL
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"extensions": [
{
"uri": "https://cloud.google.com/marketplace/docs/partners/ai-agents/setup-dcr",
"params": {
"target_url": $AGENT_DCR_URL
}
}
]
},
"defaultInputModes": ["application/json"],
"defaultOutputModes": ["application/json"],
"skills": [
{
"id": "current_time_generation",
"name": "Current time generation",
"description": "Generates a current time.",
"tags": ["time"],
"examples": ["What time is it?"]
}
],
"supportsAuthenticatedExtendedCard": false,
"iconUrl": $AGENT_ICON_URL,
"security": [
{
"oauth2": [$AUTH_SCOPE]
}
],
"securitySchemes": {
"oauth2": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"authorizationUrl": $AUTHZ_URL,
"tokenUrl": $TOKEN_URL,
"refreshUrl": $REFRESH_URL,
"scopes": {
$AUTH_SCOPE: $AUTH_SCOPE_DESCRIPTION
}
}
}
}
}
}
- $AGENT_APP_URL(必填):袋里的可达基础 URL 端点,所有 API 调用以此为基础路径。
- $AGENT_PROVIDER_ORGANIZATION(必填):袋里提供者的组织名称。
- $AGENT_PROVIDER_URL(必填):袋里提供者的网站或相关文档 URL。
- $AGENT_DCR_URL(若实现 DCR 则必填):动态客户端注册端点 URL。
- $AGENT_ICON_URL(可选):图标图片的 URL,将在 Gemini Enterprise 应用中显示。
- $AUTH_SCOPE:字符串数组,列出客户端访问袋里操作所需的作用域名称。
- $AUTH_SCOPE_DESCRIPTION:作用域描述,例如“允许获取用户的电子邮件地址”。
- $AUTHZ_URL(OAuth2 安全方案必填):授权服务器的授权码端点 URL。
- $TOKEN_URL、$REFRESH_URL:客户端交换授权码获取 access token 和 refresh token 的 URL(可以相同)。
认证与授权
根据 A2A 协议为袋里实现认证和授权。为了让 Gemini Enterprise 应用能够调用你的袋里,必须为袋里建立以下两种方法之一:
- 公共访问:无需认证,仅适用于不访问任何用户数据或敏感资源的袋里。
- OAuth 2.0 授权码授权流程:这是标准的委托用户授权流程。用户将被提示授权你的袋里访问其数据或以他们的名义执行操作。
动态客户端注册 (DCR)
传统上,将第三方应用连接到企业系统需要手动复制 Client ID 和密钥。DCR 消除了这个步骤,它允许 Gemini Enterprise 以编程方式在袋里的授权服务器上将自身注册为 OAuth 客户端。
DCR 流程的工作方式:
- 发现:Gemini Enterprise 应用读取你的 Agent Card,找到 DCR 端点。
- 请求:Google 向你的端点发送一个 HTTP POST 请求,包含一个
software_statement,它是一个加密签名的 JSON Web Token (JWT)。 - 验证:你的后端使用 Google 的公钥验证 JWT 签名,确保请求是真实的。
- 配置:成功后,你的服务器在身份提供者(例如 Okta)中创建一个新的 OpenID Connect (OIDC) 应用,并将
client_id和client_secret返回给 Gemini Enterprise。
DCR Request
{
"software_statement": "eyJhbGciOiJSUzI1NiIsImtpZCI6ImY1OTIwZDJmMjIyYjNjMTE3Y2MyZmQzZmQxYWJjNzM..."
}
JWT Decoded
Here is the decoded value of software_statement parameter:
Header:
{
"alg": "RS256",
"kid": "f5920d2f222b3c117cc2fd3fd1abc7367fd00402",
"typ": "JWT"
}
Payload:
{
"aud": "https://your-provider.com",
"auth_app_redirect_uris": ["https://vertexaisearch.cloud.google.com/oauth-redirect"],
"exp": 1766773074,
"google": {
"order": "xxxxxxxx-c3bc3976a8e0"
},
"iat": 1766772774,
"iss": "https://www.googleapis.com/service_accounts/v1/metadata/x509/cloud-agentspace@system.gserviceaccount.com",
"sub": "xxxxxxxx-xxxx-xxxx-xxxx-4656e5b81fe8"
}
DCR Response
{
"client_id": $CLIENT_ID,
"client_secret": $CLIENT_SECRET,
"client_secret_expires_at": 0
}
注意:验证 JWT 可以确保请求来自 Google,但你还需要交叉比对 google.order ID 与数据库中的记录,确保用户确实完成了支付。
4. 在 Marketplace 上发布袋里列表
袋里构建完成后,需要将其发布到 Google Cloud Marketplace 并提供给客户。这一步描述你的袋里、定义可用性和定价模型。卖家旅程从 Producer Portal 开始(可通过 Google Cloud Console 访问):
- 选择解决方案类型:在 Producer Portal 中选择“AI Agent as a Service”作为产品类型。
- 上传 Agent Card:通过 Google Cloud Storage (GCS) 存储桶提供 Agent Card JSON 文件。
- 可用性:决定 AI 袋里列表是可通过公开定价购买(自助服务),还是仅通过私有报价提供。
- 定价:创建定价计划,选择通过 Marketplace 变&现袋里的定价模型。
- 技术集成:配置后端采购。此解决方案类型无需前端集成。
- 验证与端到端测试:Google Cloud 会在发布前审查袋里的功能、安全性和定价模型。
- 发布:袋里成功发布,在 Google Cloud Marketplace 中可用。
5. 管理 Marketplace 和 Gemini Enterprise 应用中的交易与注册
袋里在 Google Cloud Marketplace 和 Gemini Enterprise 应用中的采购和注册生命周期有明确的阶段,这对于建立严格的企业治理、防止影子 IT 以及确保跨组织的合规性至关重要。一个安全的监管链由三个关键角色管理:计费管理员,负责通过控制 Marketplace 上的采购和支出来维持财务监督;Discovery Engine 管理员,作为技术守门人,安全地注册已验证的袋里并确定组织在 Gemini Enterprise 中的访问权限;Discovery Engine 用户,只有在完成适当的身份授权后,才能在 Gemini Enterprise 应用中安全地利用袋里的全部能力。
1. 采购流程 - 异步 (Google Cloud Marketplace)
列表上线后,后端采购序列遵循以下步骤:
- 触发:拥有计费管理员权限的客户点击“订阅”(对于自助服务列表)或接受“私有报价”(对于仅限私有报价的列表)。
- 通知:Google 向你的环境发送 Pub/Sub 通知。
- 批准与存储:你的集成 marketplace handler 通过 Partner Procurement API 批准账户和权限。
- 激活:handler 将唯一的 Order ID 存储在 Firestore 等数据库中,记录交易,并立即为客户激活订阅或报价。
如上图所示,计费管理员一键订阅,激活了 Lovable Agent 的免费计划,同时他们已经在 Cloud Marketplace 上采购了有效的 SaaS 订阅。
2. 注册流程 - 同步 (Gemini Enterprise)
成功采购后,客户的管理员将购买与实际 Gemini Enterprise 应用环境关联起来:
- 重定向到 Gemini Enterprise:Discovery Engine 管理员会在已采购的 Marketplace 列表上看到“转到 Gemini Enterprise”选项。
- 项目验证:点击后,管理员需要登录到分配了 Gemini Enterprise 许可证的 Google Cloud 项目。注意,客户必须确保目标 Google Cloud 项目已绑定到采购时使用的计费账户。
- DCR 握手:Discovery Engine 管理员在 Gemini Enterprise 应用中配置袋里。此时,你的动态客户端注册 (DCR) 逻辑会验证传入 JWT 中的 Order ID 是否与 Firestore 记录匹配。如果匹配,安全注册即完成。
- 袋里成功注册:袋里已在 Gemini Enterprise 中成功注册。Discovery Engine 管理员可以决定授予哪些人访问该袋里的权限。
采购后,Discovery Engine 管理员将 Lovable Agent 注册到 Gemini Enterprise 应用中,使其可供组织内已授权的用户使用。
3. 最终用户激活流程 (Gemini Enterprise)
一旦袋里安全注册,目标企业用户就可以发现它:
- Gemini Enterprise 应用内袋里发现与请求:最终用户可以在 Gemini Enterprise 应用的 Agent Gallery 中浏览并直接请求访问任何可用的合作伙伴构建的 Cloud Marketplace 袋里。提交请求后,Discovery Engine 管理员可以审查请求,并直接与组织的计费管理员协调,通过 Google Cloud Marketplace 采购该袋里;如果已经采购并注册,可以直接授予最终用户访问权限。
- 访问:一旦授予袋里访问权限,任何拥有有效 Gemini Enterprise 应用账户、Discovery Engine 用户角色和许可证的最终用户都可以在其 Gemini Enterprise 应用中调用该袋里。
- 授权:首次交互时,用户将被提示输入合作伙伴系统的用户名和密码以完成 OAuth 授权。认证通过后,他们就可以在 Gemini Enterprise 应用聊天界面中无缝利用袋里的全部能力。
最终用户在 Gemini Enterprise 应用中无缝调用 Lovable Agent,完成一次性的合作伙伴授权提示,并启动实时对话式任务工作流。
最终用户从 Gemini Enterprise 应用的 Agent Gallery 中直接请求访问另一个来自 Marketplace 的袋里 Atlassian Rovo。在这个演示场景中,袋里已从 Marketplace 采购,因此 Discovery Engine 管理员可以验证、集成并立即授予访问权限。
开始上手
将袋里作为 AI Agent-as-a-Service 解决方案构建到 Gemini Enterprise 和 Google Cloud Marketplace 中,是一条拓展影响范围的路径,能让你的袋里进入数百万企业用户的日常工作流程。建议从现在就开始,使用 Agent Development Kit (ADK) 等工具进行构建,并进一步了解如何通过 Google Cloud Marketplace 在袋里型企业的时代加速增长。
如有任何问题,可以联系 Google Cloud Marketplace 支持团队。
