主题
03 企业落地推演:对标阿里百炼的 HiMarket 生态平台
一句话:对标百炼要把 14 项能力逐项落到开箱、二开、自建三档,摊开后 HiMarket 只交付门户、市场、订阅、多租户这层“骨架与门面”,执行与调用治理必须自建;真缺口集中在 ID Token 验签、凭证中介、HA 与计量闭环,伪需求是照抄百炼控制台的页面形态;七阶段推演只定路线,能力面齐平不等于通过生产验收。
定性:HiMarket 就是我们未来对标阿里百炼的平台底座。本篇不堆架构名词,把"一个企业从 0 到 1 把 HiMarket 生态落成生产平台"推演完整:现状 → 底座 → 内容 → 网关 → 身份 → 运营 → 执行整合 → 统一皮,每步落到 API、配置、决策级。所有端点来自本地源码(himarket-server 各 Controller),可逐条对照。 审核修订(2026-10-26):本篇是落地路线,不是生产能力证明。身份、凭证、HA、SLO 与验收闸门以
05-AI基础设施架构审核与生产收敛.md为准。
一、平台定性:我们对标百炼,拼图是什么
阿里百炼=应用编排(Managed Agent / Flow Agent / Playground / Application)+ 能力供给(MCP / Skill / RAG / Memory / Connector / ParseX)+ 治理(Security / Evolution / Observability)+ 身份接入(SSO / 企业集成)。
我们的拼图(乐高积木)对应关系:
| 百炼板块 | 我们的组件 | 角色 |
|---|---|---|
| 开发者门户 / 应用市场 / 订阅 | HiMarket(frontend + server) | 市场与门户层:产品、订阅、审批与授权关系;数据面凭证由 Broker 签发/注入 |
| API 网关 / 调用治理 / 限流计量 | Higress(AI 网关) | 运行时层:流量出口、AI 路由、限流计量 |
| 能力内容 / 服务注册 / 工具规格 | Nacos(AI 内容注册中心) | 内容层:MCP/Agent/Skill/Worker 配置的事实来源 |
| 企业身份 / 账号体系 | 企业 IdP + HiMarket OIDC Client | 身份层:SSO 打通、subject 映射 |
| 应用运行时 / 智能体执行 | agentscope-service + 实例体系(qwenpaw/数字分身) | 执行层:承载业务流量与智能体运行 |
| 管理后台 | himarket-admin | 平台运营面 |
关键认知:HiMarket 给我们的是百炼的“骨架与门面”(门户、市场、订阅、多租户、SSO 接入);能力执行由我们的运行时(agentscope-service、实例体系)承接,调用治理由 Higress + AuthZ/Credential Broker 承接。市场卖的是“引用 + 稳定端点 + 授权”,不是上游连接和密钥。
二、百炼能力对标表(14 项逐项落点)
| 百炼能力 | 落点组件 | 状态 | 落地方式 |
|---|---|---|---|
| Application(应用发布/集成) | HiMarket Product + Publication | ✅ 开箱 | POST /products + POST /{id}/publications |
| Managed Agent(托管智能体) | agentscope-service + HiMarket AGENT_API | 🛠 二开 | 产品引用 Agent 路由/Agent 规格,执行由我们控制面 |
| Flow Agent(流程编排) | 实例体系(数字分身/多智能体) | 🛠 自建 | 我们已实证(08 专栏);HiMarket 只做上架 |
| Sandbox(沙箱执行) | HiMarket sandbox-shared(ALLOWED_COMMANDS 含 opencode) | ✅ 开箱 | 远程 ACP 沙箱,与执行体天然连接 |
| Playground(体验台) | HiMarket Chat / CodingSession / Session | ✅ 开箱 | 体验面 Controller |
| RAG(知识检索) | Nacos(能力内容)+ 我们的检索栈 | 🛠 二开 | Nacos 作为内容源,检索执行在我们侧 |
| Memory(记忆) | 实例体系(记忆蒸馏,#21 数据飞轮) | 🛠 自建 | 执行层能力,通过契约挂市场 |
| Connector(连接器) | Nacos MCP Server 配置 + Higress MCP 路由 | 🛠 部分开箱 | Nacos 登记 → HiMarket 拉取;Higress 出口、工具发现与计量需补 |
| MCP(工具协议) | HiMarket McpServer + McpConfigResult | 🛠 部分开箱 | GET /{nacosId}/mcp-servers → 关联 → toTransportConfig() 仅返回 URL/传输/名称,不含工具与凭证 |
| Skill(技能市场) | HiMarket SkillController | ✅ 开箱 | POST /skills/import?nacosId= + 定时同步(5min) |
| Security(安全) | OIDC + 网关白名单 + 审计 | 🛠 补强 | ID Token 验签需自补(见 §六) |
| Evolution(应用演进) | Product 版本 + Publications 生命周期 | ✅ 开箱 | 发布/下架/重发(publications 表) |
| Observability(可观测) | Observability/Sls/DBCollector + 网关计量 | 🛠 二开 | 计量闭环(07-32 接缝 5) |
| 身份与多租户 | Portal + Developer + Consumer + OIDC | 🛠 需加固 | Portal 是门户边界;资源隔离需数据面配合,OIDC 需补验签 |
✅开箱=HiMarket 原生能力;🛠二开/自建=执行层我们侧已有或需补,市场侧只需按契约上架。
三、企业落地七阶段推演(操作级)
阶段 0 · 定位与目标
决策:HiMarket 作为企业 AI 能力市场的控制面与人类入口;Higress 作为唯一数据面出口,Nacos 做内容引用源,agentscope-service 做执行控制面。 收口:对外一句话——"企业 AI 能力统一门户:SSO 登录、市场订阅、网关调用、计量审计"。
阶段 1 · 底座部署(K8s 形态)
官方提供 docker compose(mysql→nacos→higress→sandbox→server→admin/frontend)。企业真实环境 = K8s,落地形态:
| 组件 | K8s 形态 | 备注 |
|---|---|---|
| mysql(内置 Nacos DB) | 3 节点主从/多可用区 + PITR | 生产不能用单实例;已有企业 MySQL 需评估隔离与配额 |
| nacos | 3 节点(nacos-server:v3.2.1) | 企业已有 Nacos 可登记复用;需评估命名空间与租户边界 |
| redis-stack-server | Sentinel/Cluster | 不作为唯一计量账本 |
| higress | 3 副本,跨故障域 | all-in-one 仅适合 POC;生产按官方高可用形态部署 |
| sandbox-shared | Deployment(隔离执行沙箱) | 建议独立 namespace,仅内网可达 |
| himarket-server | Deployment ×3 + HPA | 无状态;DB 外置;跨 AZ 打散 |
| himarket-admin / frontend | Deployment + Ingress | 绑定 Portal 域名 |
关键决策(此步就定全盘):
- Nacos 复用 or 内置:企业已有 Nacos(且 AI 模块开启)→ 登记复用;否则内置。
- Higress 复用 or 新建:07-32 定论是 Higress 替代 One API 兜模型出口,建议新建专用 AI 网关实例,与业务网关隔离。
- 端口规划:himarket-server 8080(内网),对外走 Ingress;避免与 agentscope 端口冲突。
- JWT_SECRET:K8s Secret 注入(install.sh 要求显式配置,生产绝不落明文)。
- 数据面独立:HiMarket 控制面短时不可用不得阻断存量调用;Higress、鉴权与凭证中介需独立扩缩容。
阶段 2 · Nacos 内容接线(登记 + 浏览 + 默认)
目标:让 HiMarket 认到企业 Nacos,并能浏览里面的 MCP/Agent/Skill。
text
# 登记 Nacos 实例(AdminAuth)
POST /nacos body: 地址/命名空间/账号(MSE 或自建)
GET /nacos/{nacosId}/namespaces # 确认能列出 namespace(连通性验证)
GET /nacos/{nacosId}/mcp-servers # 确认能列出 MCP Server
GET /nacos/{nacosId}/agents # 确认能列出 Agent
GET /nacos/{nacosId}/skills # 确认能列出 Skill
PUT /nacos/{nacosId}/default?namespaceId=xxx
# ↑ 设为默认实例:新 Agent Skill 产品自动绑定它(NacosController 语义明确)内容组织规范(企业落地必须定的口径):
- namespace = 部门/项目边界(如
prod-finance、prod-hr); - MCP Server 命名 =
域名风格(如finance-report-mcp),与 Higress 侧命名对齐; - Skill 定义走 Nacos AI 模块规范(
SkillSummary),HiMarket 每 5 分钟自动同步成产品草稿。
阶段 3 · Higress 网关接线(导入 + 路由对齐)
目标:HiMarket 认到 Higress 网关,能浏览其 AI 路由(模型/MCP/Agent)。
text
POST /gateways body: Higress 控制台地址/账号/域名(importGateway)
GET /gateways/{gatewayId}/model-apis # 模型路由(MODEL_API 关联源)
GET /gateways/{gatewayId}/mcp-servers # MCP Server(MCP_SERVER 关联源)
GET /gateways/{gatewayId}/agent-apis # Agent 路由(AGENT_API 关联源)Higress 侧要预建(Higress 控制台,不是 HiMarket 建):AI 路由(模型)、MCP Server 定义。HiMarket 的 HigressRefConfig(routeName/mcpServerName/modelRouteName)引用这些命名——所以命名规范必须先定:路由名、MCP Server 名在 Higress 与 HiMarket 两侧一致。
阶段 4 · 企业 SSO 融入(Portal + OIDC)
目标:企业员工用企业账号登录开发者门户。
text
# 1. 创建企业门户(多租户)
POST /portals body: 企业名/域名/设置
POST /portals/{portalId}/domains # 绑定企业域名
PUT /portals/{portalId} body: portalSettingConfig.oidcConfigs=[{...}]
# 2. OIDC Provider 配置(挂在 Portal 上)
# 示例(飞书自建应用 或 Keycloak):
{
"provider": "feishu", "displayName": "飞书企业账号", "enabled": true,
"clientId": "cli_xxx", "clientSecret": "***",
"authCodeConfig": {
"tokenEndpoint": "https://open.feishu.cn/open-apis/authen/v1/oidc/token",
"userInfoEndpoint": "https://open.feishu.cn/open-apis/authen/v1/user_info"
},
"redirectUris": ["https://portal.example.com/oidc/callback"]
}
# 3. 员工登录链路(OidcController)
GET /developers/oidc/providers # 前端展示登录按钮
GET /developers/oidc/authorize?provider=feishu&apiPrefix=/api/v1 # 302 → IdP
GET /developers/oidc/callback?code=&state= # 换 token → 绑 Developer → AuthResult身份映射链(生产要写清):企业 IdP subject ↔ HiMarket Developer(自动注册,findByProviderAndSubject)↔(未来)agentscope-service user。三层映射 = 07-32 接缝 3 的落点。
生产必补:ID Token JWK 验签(源码 TODO),state 有效期校验已有(10 分钟),redirect_uri 走 IdP 白名单。
阶段 5 · 产品化运营(导入 → 上架 → 订阅 → 凭证)
目标:把能力变成"可订阅的产品",员工自助订阅、凭证发放、计量审计。
text
# 导入能力(三种来源)→ 生成产品
POST /products/import body: 来源(gateway / nacos / airegistry / external market)
POST /products body: 产品定义(MCP_SERVER / MODEL_API / AGENT_API / AGENT_SKILL / WORKER)
PUT /products/{productId}/ref body: higressRefConfig 或 nacosId+nacosRefConfig(引用,不复制)
POST /products/{productId}/configurations/reload # 从来源刷新配置
# 发布(到指定 Portal)
POST /products/{productId}/publications body: {portalId} # 上架
DELETE /products/{productId}/publications/{publicationId} # 下架
# 订阅与凭证(工作负载侧,DeveloperAuth)
POST /consumers # 为应用/实例创建 Consumer(不是员工身份)
POST /consumers/{consumerId}/credentials # 创建平台访问凭证
POST /consumers/{consumerId}/subscriptions # 订阅产品
PATCH /consumers/{consumerId}/subscriptions/{subscriptionId} # 管理员审批
# 消费(读取引用/工具元数据,不是拿上游密钥)
GET /products/{productId}/ref # PublicAccess:返回 ProductRefResult 引用元数据
GET /products/{productId}/tools # 只读工具清单;是否可调用仍由订阅和网关决定权限矩阵(注解直读):AdminAuth(管理面)/DeveloperAuth(开发者)/AdminOrDeveloperAuth/PublicAccess(目录与引用元数据可公开读)。PublicAccess 不代表公开可调用,也不代表 GET /ref 会返回上游凭证。
身份校正:员工身份是 Developer;Consumer 是应用/实例的调用主体。一个员工可以有多个 Consumer(dev/prod),但不能把员工账号直接当作 Consumer 凭证,也不能在请求体里自报 user_id。
阶段 6 · 与 agentscope-service 契约整合(执行层打通)
市场卖"连接描述",执行跑我们的运行时:
text
契约接口(我们定义,HiMarket 侧实现):
1. 身份契约:OIDC subject ↔ agentscope user(SSO 令牌透传/映射)
2. 能力契约:HiMarket 发布稳定产品端点与工具元数据;agentscope 不直接依赖 Nacos 临时地址
3. 网关契约:消费端携带 Consumer 凭证走 Higress;Broker 校验订阅/工具白名单/配额并注入上游凭证
4. 产物契约:Skill 包下载(GET /skills/{id}/download)→ agentscope pool/import(07-38 已实证)阶段 7 · 统一皮(Java 模块 + 页面)
演进路径(用户拍板):HiMarket 下新增 Java 模块聚合管理面/开发者面 API,页面配套定制成"我们平台的皮"(对标百炼控制台)。此为最终形态:一个入口、一套身份、一个市场、一套计量。
四、关键决策表(每阶段决策 + 默认 + 依据)
| 决策点 | 选项 | 默认 | 依据 |
|---|---|---|---|
| Nacos 部署 | 内置 vs 复用企业 Nacos | 复用(登记) | 内容即存量资产,复用成本最低 |
| Higress 部署 | 新建专用 vs 复用业务网关 | 新建专用 | 07-32 定论:兜模型出口、独立治理 |
| 端口/域名 | 内网 8080 + Ingress | 内网隔离 | 管理面不暴露公网 |
| 身份接入 | 飞书 vs Keycloak vs 多 IdP | 企业既有 IdP | Portal 级可配多 Provider |
| 自动注册 | OIDC 即注册 vs 需审批 | 需审批 | 企业员工准入要可控 |
| 沙箱 | sandbox-shared 独立 namespace | 隔离 | 执行体与市场解耦 |
| 计量 | 网关权威事件 + 下游重放聚合 | 单一事实源 | 避免双写不一致;HiMarket 只存订阅与账单维度 |
五、落地检查单(按阶段验收)
- [ ] P0:底座起来(server/admin/frontend 健康;Nacos/Higress 可登记)
- [ ] P0:SSO 打通(企业账号登录门户,subject 绑定 Developer)
- [ ] P1:至少一个 MCP 产品从 Nacos 关联、发布、订阅、凭证、调用成功
- [ ] P1:Skill 定时同步进市场、可下载、可安装(07-38 实证复用)
- [ ] P2:计量/审计闭环(调用记录可查、用量可统计)
- [ ] P2:agentscope-service 消费 HiMarket 连接配置端到端
- [ ] P3:统一皮(Java 模块 + 页面)
六、风险与生产注意(源码直读)
| 风险 | 证据 | 应对 |
|---|---|---|
| ID Token 不验签 | OidcServiceImpl.java:310 // TODO: Verify signature with JWK | 二开补 JWK 验签,或前置企业网关验签 |
| MCP 产品绑定受限 | ApiDefinitionServiceImpl:绑定产品仅支持 MCP_SERVER | 其余类型走 ref 直连 Higress/Nacos |
| 公开元数据接口 | /products/{id}/ref、/products/{id}/tools 为 PublicAccess | 只暴露引用与工具元数据;禁止把密钥写入这些对象,数据面仍需订阅校验 |
| 连接地址选择 | toTransportConfig() 过滤 intranet 后取公网域 | 企业私有部署需显式配置投递域名,否则会返回空连接 |
| 上游凭证泄漏 | 若把供应商 Key 写入连接配置,connector/metadata 可能回显 | 凭证只存 Vault/KMS,由 Broker 注入;日志与备份脱敏 |
| 发布状态机 | PUBLISHING 期间禁止更新/删除(ApiStatus) | 运营流程按状态机走,不绕过 |
七、与 02 篇的关系
02 篇讲“三角怎么接”(机制与数据流),本篇讲“企业怎么落”(阶段推演与决策)。部署实证回填 00/04 台账;生产架构、SLO、容量与验收闸门以 05 篇为准。