主题
01 - HiMarket 底座与五类市场(源码盘点)
一句话:HiMarket 是独立 Java Spring 应用(bootstrap/server/dal/web + harness/sandbox),以 API Product 为统一产品模型承载五类业务市场,以 Portal 实现多租户门户,以 Developer+Consumer 解耦身份与凭证;底层网关是 Higress。 本文依据:本地源码树
C:\Users\Administrator\Desktop\02-项目代码\himarket(commit3a63fc5,2026-10-23;pom.xml为1.0-SNAPSHOT)+ 官方用户指南 + 07-32 接线设计。
一、底座架构(六层组件角色,07-32 定论)
关键语义:HiMarket 是人类访问与市场控制面的唯一入口(用户只面对门户),但不是全部业务流量的转发面;模型/MCP 调用由 Higress 数据面承载。底层组件是“执行器官”,用户无感、不可直操;市场保存引用(ref)而非能力副本,权威定义在 Nacos/Higress。
生产架构以
05-AI基础设施架构审核与生产收敛.md为准:凭证由 AuthZ/Credential Broker 注入,不随连接描述下发。
二、代码树模块(本地盘点)
himarket/
├── himarket-bootstrap # 应用启动(Spring Boot 入口)
├── himarket-server # API 服务(当前快照 28 个 Controller)
├── himarket-dal # 数据访问层(entity / repository)
├── himarket-web # 前端(管理后台 + 开发者门户)
├── harness # 编码 Harness(HiCoding 配套执行)
├── sandbox # 执行沙箱
├── deploy/ # 部署(docker-compose / k8s)
├── docs/ # 官方文档
└── USER_GUIDE_zh.md # 用户指南(中文)三、API 面全景(当前快照 28 个 Controller,按面归类)
计数是源码快照事实,不是稳定 API 承诺。当前快照有 17 个
@PublicAccess注解,静态展开为 17 个 GET 端点;实际公开端点数仍应从运行时扫描确认。此前“34 个”的口径把注解注释/文档引用误计入,已回正。
3.1 管理面(运营/资产目录)
| Controller | 职责 |
|---|---|
AdministratorController | 管理员注册/登录/初始化 |
AdminSettingController | 系统设置 |
PortalController | 门户 CRUD(多租户,域名识别) |
ProductController | API Product 生命周期(草稿→待配置→待发布→已发布) |
ProductCategoryController | 产品类别(自定义分类/筛选) |
ApiDefinitionController | 产品↔API 资源关联(ref:Nacos/Higress) |
GatewayController | Higress 网关实例导入/管理 |
ConsumerController | 消费者(调用凭证)管理 |
DeveloperController | 开发者注册/审批/订阅管理 |
ExternalVendorController | 外部厂商/能力源登记 |
AttachmentController | 附件(图标/文档) |
3.2 市场面(五类资产)
| Controller | 职责 |
|---|---|
McpServerController | MCP Server 注册/工具清单 |
OpenApiMcpController | 外部 API → 标准 MCP 转换 |
SkillController | Skill 包上传/分发/订阅 |
WorkerController | Worker 打包/版本/分发(Nacos 批量导入) |
AiRegistryController | AI 能力注册中心(跨市场统一登记) |
3.3 体验面(先试后订)
| Controller | 职责 |
|---|---|
ChatController | HiChat:模型对话 + MCP 工具调用测试 + 联网搜索 |
CodingSessionController | HiCoding:在线编程沙箱会话 |
SandboxController | 沙箱管理 |
WorkspaceController | 工作区管理 |
SessionController | 会话管理 |
CliProviderController | CLI 接入(开发者本机工具) |
3.4 治理面
| Controller | 职责 |
|---|---|
ObservabilityController | 全链路监控/调用追踪/热力图 |
SlsController | 日志服务(SLS)对接 |
DBCollectorController | 数据库采集(计量数据) |
NacosController | Nacos 实例登记/批量导入 |
3.5 身份面
| Controller | 职责 |
|---|---|
OAuth2Controller | OAuth2 授权 |
OidcController | 企业 OIDC/SSO 对接 |
四、核心产品模型(API Product)
API Product = HiMarket 的核心概念,把底层 AI 能力封装为标准化产品:
| 字段维度 | 内容 |
|---|---|
| 产品类型 | 当前枚举共 7 类:REST_API、HTTP_API、MCP_SERVER、AGENT_API、MODEL_API、AGENT_SKILL、WORKER |
| 端点与协议 | 关联 Higress 路由 / Nacos 服务 / Agent Endpoint |
| 版本 | 多版本并行、灰度、回滚 |
| 鉴权方式 | Consumer 凭证(API Key/Secret)经网关校验;上游凭证由网关/凭证中介注入 |
| 配额与价格 | 调用次数、Token、成本分摊 |
| 可见范围 | 公开 / 租户 / 项目 |
| 审批策略 | 开发者注册审批 / 产品订阅审批(自动或人工,门户级配置) |
| 使用指南 | Markdown 文档(简介/认证/请求示例/错误码) |
产品状态机:草稿 → 待配置(未关联 API)→ 待发布(已关联 API)→ 已发布(门户可见)→ 下架/弃用。
五、Portal 多租户模型
- 多租户单应用:一套 HiMarket 服务全部门户,域名识别门户实例;
- Developer = 身份(登录/管理),Consumer = 调用凭证(一个 Developer 可建多个 Consumer,如 dev/prod 环境);
- Portal 是门户与授权边界,不等于完整的资源隔离实现;知识库、记忆、实例数据仍需在各自数据面做租户校验。
- 订阅成功后才可用凭证调用,可随时取消订阅;但“订阅 APPROVED”仍需数据面确认凭证、路由与配额已生效,不能单独视为可调用。
六、体验中心(HiChat / HiCoding)
- HiChat:单模型对话/多模型对比 + 结合 MCP 工具测试 + 联网搜索——降低试用成本,先试后订;
- HiCoding:在线编程安全沙箱(
harness+sandbox模块),Vibe Coding、人机协作、文件变更预览; - 原则:体验中心的调用同样走网关与配额,不开放绕过治理的后门(07-04 §七)。
七、与执行层的边界
| 边界 | 落点 |
|---|---|
| 市场管产品化与授权 | HiMarket(产品/订阅/授权关系/审批);凭证签发与上游注入由数据面完成 |
| 执行管运行 | agentscope-service(Agent 定义/会话/执行)、qwenpaw 实例(Skill 池/MCP client) |
| 网关管放行 | Higress(路由/安全/流控/计量权威)+ AuthZ/Credential Broker(订阅校验、令牌交换、密钥注入) |
| 内容管寻址 | Nacos / git / 对象存储(Skill 内容、Worker 定义) |
八、待实证项(回填台账)
- [x] HiMarket 本地部署(最小集:HiMarket + Nacos + MySQL + sandbox;未含 Higress)——见 04 篇
- [x] Model 产品目录与订阅:发布 → 订阅 APPROVED
- [ ] Model 数据面闭环:凭证 → 调用 → 限流 → 计量(P0)
- [x] MCP Server 注册/元数据/订阅(POC)
- [ ] MCP 真实工具发现 → 网关调用 → 审计(P0)
- [x] Skill/Worker 元数据从 Nacos 导入(POC)
- [ ] Skill/Worker 包签名、扫描、安装与回滚(P1)
- [ ] Worker 市场:Worker 打包/版本/CLI 安装(P2-P3)
- [ ] OIDC/SSO 接入(P0)