研发本体湖仓 · 项目调研

云升 Yunrise 项目调研报告

云砺「云升 Yunrise 企业智能」是在开源 DeepSeek Harness(DSH)之上构建的企业 Agent 产品,有桌面端、服务器 Web 多用户版和飞书机器人三种形态。本报告以研发本体湖仓(OntoOS)的实测数据为主线,再用 GitLab 仓库只读检出补足湖仓看不到的部分,梳理资产、公网入口、运行时、发布链路、外部依赖,以及治理与风险。

调研日期:2026-09-16 湖仓批次:GitLab / 网络 / ECS 均为 2026-09-04 仓库快照:6 仓默认分支 HEAD(2026-09-16)
6GitLab 仓库(yunrise 组)
39@yunrise 插件包(含 4 个业务技能)
0K8s 工作负载(ECS 裸部署)
1 → 2服务器(80 生产 / 88 迁移中)
3云升相关域名(共用 1 个 ALB)
0.1.1-rc.2锁定的 DSH 内核版本

证据标注:湖仓 连库实测(2026-09-04 批次) 仓库 仓库代码或文档声明(2026-09-16) 推断 由上述证据推理得出,未直接验证

1结论速览

五个判断,细节和证据在后面各节。

  1. 项目性质:云升是企业 Agent 应用平台。上游内核 DSH 锁定版本,云升自己的价值主要落在树外插件(39 个包)、角色预设、企业知识和技能上。桌面端、服务器 Web 版、飞书机器人共用同一套内核和插件。2026-08-17 立项,一个月内桌面端迭代到 0.9.x。仓库
  2. 部署形态:不在 K8s 上。唯一的生产宿主是一台 4C/32G ECS(172.18.193.80)。这台机器实例名叫 aistore.tmall.tmall.01.sit,同时跑着门店 aistore 的 6 个服务和 agent-platform。公网流量走 yunrise.xforceplus.com → ALB feishu-dev → nginx:80湖仓
  3. 核心机制:nginx auth_request 加上 auth-service 进程管家,实现"每个用户一个 DSH 进程、一个独立 HOME、一个 bwrap 沙箱"的多用户隔离。插件经 GitLab npm 私服发布,由市场门户审核后下发。仓库 湖仓 L3 快照里看到 3 个 bwrap 沙箱内的用户实例在线,与此机制一致。湖仓
  4. 湖仓可见性:湖仓能看到仓库、入口链、宿主进程和端口;看不到代码结构(没有镜像,所以没有代码抽取)、配置(不用 Apollo)、数据(不用 DMS)。ECS→GitLab 桥对 Node 服务的归属是 0。09-04 之后新增的 88 服务器、yunrise-ai 域名、票易通 MCP 都还不在湖里。湖仓
  5. 主要风险:单宿主资源争用(09-01 出过 OOM 连锁故障);多处单点(auth-service、80 主机、飞书长连接、市场与 MCP 只在 80);88 迁移中首个用户沙箱出现"双活"会话分叉;88 回源的 ALB 健康检查只探 nginx 默认页;资源命名与成本归属漂移;上游 developer preview 内核的定制负担。仓库湖仓

2项目画像与时间线

定位与形态

  • 产品:云升 Yunrise 企业智能,标语"企业智能,自然生长",品牌色云升绿 #0B7A5C。仓库
  • 内核:DeepSeek Harness(@deepseek-ai/dsh),"一切皆插件"的 Cordis 架构,上游仍是 developer preview。仓库
  • 桌面端:Electron 壳加内嵌离线内核,支持 Windows NSIS 和 macOS zip(在 Linux 上交叉打包)。仓库版本 0.9.16;文档记录线上 Win 0.9.11 / Mac 0.9.9(09-08 口径)。仓库
  • 服务器 Web 版:多用户,入口 https://yunrise.xforceplus.com;未登录时显示门户介绍页,登录后进入工作台。仓库
  • 飞书机器人:把飞书消息接进"项目分析师"数字员工。私聊路由到本人实例,群聊一律走共享实例。仓库

能力构成

  • 角色预设:配置仓 5 个(lite / dev / analyst / invoice / invoice-fast),服务器侧 7 个(cert / dev / filing / invoice-fast / invoicing / lite / risk)。仓库
  • 插件:三模式工作台(工作 / 管理 / 开发)、启动台、定时任务、协作收件箱、组织视图、知识服务、插件与技能市场、安全宪法、票易通嵌入与确认门、成本统计等。仓库
  • 技能:21 个通用技能种子,另有业务技能:凯德→汉高开票、数电业务单开票、销项发票风险监控、历峰 posdate 统计。仓库
  • 业务集成:票易通 SaaS 4.0 MCP(11 个服务、230 个工具)、Hologres ODS 只读 MCP、研发本体湖仓插件 dsh-ontology仓库

时间线

  • AgentOS 首次提交:Windows 桌面 Agent 平台,洁净室方式对标 WorkBuddy。仓库
  • GitLab yunrise 组创建 agentos 与 agentos-cloud 两个项目。湖仓
  • 《云升企业级 Agent MVP 设计》定稿,决策 D1 选"路线 A":DSH 锁版本作为上游,云升维护配置层和 Electron 壳。AgentOS 两仓此后停更。仓库推断
  • 创建 yunrise-Agent(内核主仓)、yunrise-server、yunrise-config、dsh-plugin-market 四个项目。湖仓
  • 公网双域名按 Host 分流上线;多用户隔离(每用户一进程)上线;realip 还原真实客户端 IP。仓库
  • 内核换底到 0.1.1-rc.2。仓库
  • bwrap 沙箱全量启用;桌面 0.9.0 发布三模式工作台;同日发生 OOM 连锁故障,随后加了四道内存护栏。仓库
  • 服务器扩容到 30GB 内存。仓库 湖仓记录规格为 ecs.r7a.xlarge、32768 MB,两者一致。湖仓
  • 授权数据迁入 users.json 等文件;湖仓完成本次调研所用的批次抽取。仓库湖仓
  • 票易通 MCP 服务群上线(nginx 9084),授权备份与巡检定时器上线。仓库
  • 第二台服务器 172.18.193.88 独立栈建成,Hologres MCP 上线(nginx 9085)。仓库
  • yunrise-ai.xforceplus.com 开通并指向 88;首个迁移沙箱出现双活,尚未正式切换。仓库

3资产盘点

6 个仓库都由同一位创建者(creator_id 364)在 08-13 ~ 08-21 之间建立。提交数有两个口径:湖仓 09-04 的 GitLab 统计,以及 09-16 实际检出的 git rev-list

项目 ID仓库定位主语言 湖仓提交数(09-04 / 09-16)贡献者最后提交GitLab CI
2707yunrise/yunrise-config产品仓:插件、预设、知识、技能、桌面壳、运维文档JavaScript 63% · TS 17% · Python 15%779 / 1349509-16插件标签发布,lint 通过
2705yunrise/yunrise-server80 服务器配置仓:auth-service、nginx、systemd、部署脚本Python 86%33 / 139409-16
2704yunrise/yunrise-AgentDSH 内核主仓(0.1.1-rc.2 + 云升定制),Python SDKTypeScript 97%39 / 47209-15python-v* 标签发 wheel,lint 不通过
2710yunrise/dsh-plugin-market插件市场:准入门禁 CLI、schema、CI 模板、门户服务JavaScript 100%41 / 42109-13分支校验 + v* 标签自发布,lint 通过
2701yunrise/xforceplus-agentosAgentOS:Windows 桌面 Agent 平台(Electron + 本地 Daemon)TypeScript 92% · C++ 4%388 / 409108-17无(仓内是 GitHub Actions)
2702yunrise/xforceplus-agentos-cloudAgentOS 云端:Fastify + Postgres/SQLite(SSO、RBAC、市场、计费等)TypeScript 99.9%20 / 20108-16

① GitLab 语言统计把 dsh/skills 下业务技能的 Python 脚本算进去了,auth-service 本身是 Node.js。

湖仓外的相关仓库:文档提到的 yunrise/xforceplus-mcp(09-06 建,票易通 MCP 服务群)比湖仓批次晚,没被编目;Hologres MCP 服务 09-14 已部署,湖仓里找不到对应仓库。AgentOS 两仓 08-16/17 之后没有新提交,服务器上 /opt/agentos/portal 这个目录名是它留下的痕迹。仓库推断

4架构图

三张图都由 archify 生成,已通过 showcase 质量校验(9/9 项)和四种桌面视口的浏览器实测。图内可以缩放、搜索、聚焦路径,点"打开交互版"查看完整视图和引导章节。

图 1 部署架构:公网入口 → 80 主机运行时 → 外部依赖,含 88 独立栈与插件市场打开交互版 ↗
图 2 时序:飞书扫码登录 → auth_request 鉴权 → 拉起或收养用户实例 → 按端口反代 → 模型调用打开交互版 ↗
图 3 发布链路:插件发布线(主线)、安装包发布线、服务器配置线打开交互版 ↗

5公网入口链

scenarios/incident.md INC-3 的 ODS 三段链逐跳实测(dws.v_ingress_chain 当前不可用)。湖仓

对象实测值备注
DNSyunrise.xforceplus.comCNAME → alb-dvgi4g9180vqvv1crp.cn-hangzhou.alb.aliyuncsslb.com,TTL 60,ENABLE同一 ALB 上还挂着 aistore.xforceplus.com、feishu-dev.xforceplus.com、cliproxyapi2.xforcecloud.com
WAF无防护域未接入 WAF
ALBfeishu-devInternet · Active · 监听 HTTPS:443ALB 卸载 HTTPS,回源 HTTP 并透传 Host
规则优先级 3332host = yunrise.xforceplus.com → 服务器组 aistore与 aistore 域名(优先级 6666)共用同一服务器组
规则优先级 3333 / 默认cliproxyapi2 → IP 型后端 :8317;默认动作 → project.cms.cms.01.prod:5000同 ALB 上的其他业务,与云升共担命运
后端ECS i-bp15teisdgaryc16mtcs172.18.193.80:80 · Ecs · Available无公网 IP 和 EIP,只经 ALB 暴露
湖仓之外的新入口:yunrise-ai.xforceplus.com 在 09-16 开通,CNAME 到同一 ALB,回源 172.18.193.88:80,证书是 *.xforceplus.com 通配符。分流全部在本机 nginx 的 server_name 里完成,ALB 只负责按 Host 选服务器组。仓库

6服务器运行时

下表把湖仓 ECS L3 进程快照(2026-09-04 19:18 UTC)和仓库里声明的 nginx/systemd 配置对齐。该主机是 L3 首梯队 3 台已采集机器之一。

宿主台账 湖仓

  • 实例名 aistore.tmall.tmall.01.sit,规格 ecs.r7a.xlarge,4 vCPU / 32 GB,Alibaba Cloud Linux 3,可用区 cn-hangzhou-k,2026-07-21 创建。
  • 标签:pyt_cost_1=aistoreai-exec=allow;归属解析结果为 aistore(名称与标签一致)。
  • L3 采集状态 ok,带 encrypted-dropped 降级标记;yunrise 各单元的 exec_command 为空(原因未核实),启动信息只能从进程命令行看到。

同机共存的非云升负载 湖仓

  • aistore 门店:tmall-store(Java :8200)、tmall-billing(Java :8090)、tmall-mdyy(uvicorn :8100)、tmall-ai-sidecar(:8300)、tmall-cloud-phone-gateway(:18120)、tmall-yp-ai-guide(Next.js 16 :3000)。
  • agent-platform:Java 21 agent-app-0.1.0-SNAPSHOT(:8080)加 Next.js 14 前端(:3002),经 nginx :3001 暴露。它的 nginx 配置也放在 yunrise-server 仓里,归属待确认。
端口服务进程 / 管理方式湖仓快照(09-04)仓库声明(09-16)
80公网入口:按 Host 分流 yunrise / aistorenginx✅ 监听yunrise-site.conftmall-yp-ai-guide.conf
9080内网云升 Web(认证墙)nginx → 用户实例✅ 监听yunrise-dsh.conf
3081auth-service(登录、/check、/creds、管理后台)systemd yunrise-auth · node✅ 127.0.0.1cgroup 12G,KillMode=process
3100–3199每用户 DSH 实例auth-service 拉起 → bwrap → node✅ 3 个在线(3100 / 3109 / 3112)闲置 60 分钟回收,每个约 200 MB
3080共享兜底内核(dsh web)systemd yunrise-dsh✅ 127.0.0.1cgroup 3G,全员迁移后可退役
9082 / 9083插件市场门户:机器口零凭据 / 人用口带认证墙systemd yunrise-market · node✅ *:9082;✅ nginx 908309-01 纳入仓库,带加固 drop-in
8400 / 9081门户下载页与更新服务(manifest.json)nginx 静态✅ 监听安装包在数据盘,经软链提供
9084 → 8799票易通 SaaS 4.0 MCP(11 个服务)systemd xforceplus-mcp❌ 未见(09-06 才上线)768M 内存围栏 + 加固
9085 → 8798Hologres ODS 只读 MCPsystemd yunrise-hologres-mcp❌ 未见(09-14 才上线)768M 内存围栏 + 加固
09-01 内存事故链:单个用户实例泄漏到 2.7 GB,整机被吃满,40 分钟内 OOM killer 杀了 15 次进程;随后 fork 记账不足,bash 工具报 spawn ENOMEM,依赖脚本的业务技能全部静默失效。事后加了四道护栏:2G swap、cgroup 限额、原生内存治理环境变量(MALLOC_ARENA_MAXVIPS_CONCURRENCY)、会话日志解压帧数上限。09-02 又把内存扩到 30 GB。仓库

88 独立栈(迁移中)仓库

  • 规格 2 核 7.4G 加 2G swap,Alibaba Cloud Linux 4,cgroup v2(MemoryHigh=5G / MemoryMax=6G)。有自己独立的 nginx、auth-service 和账号库,没有 3080 共享兜底,实例拉起失败时直接返回 502。
  • 插件市场(9082)、票易通 MCP(9084)、下载页(9081)仍通过内网回调 80;飞书机器人只能在 80 上跑一份。
  • 截至 09-16:首个迁移沙箱在 80 和 88 上同时有实例在跑,两边会话已经分叉(当天各自新增会话),正式切换步骤(强制下线、停实例、挪走目录)还没执行。
  • 湖仓 09-04 批次的 ECS 台账里找不到 172.18.193.88。

7鉴权与多用户隔离

依据 auth-service/server.jsproc-manager.jsconfig.js 与 nginx 配置。仓库

登录与会话

  • 三种登录方式:本地 users.htpasswd(bcrypt)、飞书 OAuth(/feishu/start/feishu/callback)、云砺 PaaS 账号(/xforce/login/xforce/tenant 选择租户)。
  • 会话用 HMAC 签名 cookie,签名密钥 session.key 不入库;88 使用独立密钥,与 80 不通用。
  • 桌面端通过 /desktop-exchange/creds 按账号领取模型 key 与 MCP 服务配置;云砺登录会自动挂上 xfp-master-dataxfp-sales-issue 两个 MCP。
  • /check 不只校验会话,还做"主体门禁":停用、到期、强制下线、待开通都在这里拦下,并写入审计。

每用户实例调度

  • /check 通过后调用 procManager.ensure(),把端口放在 X-Dsh-Port 响应头里交给 nginx,nginx 用 auth_request_set 按用户转发。
  • 单飞:同一用户的并发请求只触发一次拉起。registry.json 记录端口,auth 重启后通过端口探活收养旧进程。
  • 种子:插件层 profiles/web(约 625 MB)做成冻结只读种子,用 cp -al 硬链接克隆给每个用户,磁盘几乎零成本,也不会互相写穿。
  • 沙箱:bwrap 独立 mount 和 pid 命名空间,只有 HOME 可写;实例环境变量走白名单,不继承网关机密。
授权数据:存在本机 JSON 文件里(users.jsonpackages.jsoncatalog.jsonlogins.jsonaudit.jsonl),每次写入自动保留 20 份备份,每天 03:10 全量备份到数据盘并把脱敏结构快照提交回配置仓,03:30 做巡检(实物比对、悬空引用、备份健康)。它不在 DMS 或任何数据库的纳管范围内。仓库

8研发与发布链路

CI 配置取自湖仓 gitlab_ci_configs湖仓,打包与部署流程取自运维文档仓库。湖仓里 gitlab_pipelines / gitlab_jobs 整体为空,看不到流水线运行记录。

发布线触发流程制品落点
插件线(主线)在 yunrise-config 打 plugin-<目录>-vX.Y.Z 标签Harbor 的 node:24 镜像 → Verdaccio 镜像源装依赖 → 市场准入门禁 @yunrise/dsh-plugin-market@0.3.0 → 校验标签与版本一致 → npm publishPOST :9082/api/refresh 通知门户项目 2707 的 npm 私服 → 门户同步(10 分钟一次或 refresh 触发)→ 默认 pending,审核后才 approved 并下发
市场包自身dsh-plugin-market 打 vX.Y.Z 标签分支跑测试并用模板插件自检门禁 → CI 用 CI_JOB_TOKEN 自发布项目 2710 的 npm 私服
安装包线手工发版(release-process.md内核仓 build 加 release:pack 出 tarball → 桌面 bundle-runtime(陈旧检测加指纹重装)→ electron-builder;Mac 包在 Linux 服务器上交叉打包scp 到门户下载目录 → manifest.json 是版本的唯一权威,客户端检查更新也读它
服务器线手工scripts/deploy.sh 从仓库同步到线上(可 --check 自证一致);线上热修后用 backflow.shcollect.sh 回流仓库80 服务器的运行目录;88 禁止运行 deploy.sh
Python SDKyunrise-Agent 打 python-v* 标签SDK wheel 加三平台 runtime wheel(linux-x64、linux-arm64、macos-arm64,内含 pkg 打出的 jsonrpc agent 可执行文件),附冒烟测试项目 2704 的 PyPI 私服;湖仓 lint 报 needs sdk-wheel is not defined in prior stages
  • 插件优先原则:功能改造能做成树外插件就不改内核,判据是"升级到 rc.N+1 时这个功能需不需要人工动手"。目前内核仍有 9 个定制包(品牌文件、ModelSelect 等),每次升级都要重放移植。仓库
  • 提交规范:GitLab pre-receive 钩子要求提交信息带飞书子任务编号(subtask:TAXWARE-…),可以写在 trailer 位置。仓库
  • 插件分发平台:09-13 起门户支持 ?platform=desktop|server,老客户端只能看到全平台插件。仓库

9外部依赖

依赖用途 仓库湖仓佐证 湖仓
cliproxyapi.xforcecloud.com:8318GPT / grok 模型网关(Anthropic 报文),8317 端口已废弃。默认模型口径不一致:环境文档写 cli-proxy / gpt-5.6-sol,服务器仓 settings.yaml 写方舟 doubao-seedDNS A 记录指向公网 IP。其他项目仍配置 :8317:ticket-tax-ai-ops-service(Apollo PROD)、ai-ops-assistant(FAT)、invoice LLM(in-situ);ant-coop-copilot-service 通过环境变量引用
new-api.xforceplus.com/v113 个国产模型(openai-completions);授权网关 NEWAPI_BASE_URLCNAME → ALB internet_ecs.vpc_xforceplus_35.01.prod → 服务器组 new-api → ECS :3000,该 ECS 实例名为 devops.prometheus.prometheus.cloud01.prod(名实不符)
火山方舟 ark.cn-beijing.volces.comDoubao Seed 系列;服务器种子 settings 里默认 agent 模型是 doubao-seed-2.1-turbo公网服务,湖仓无记录
阿里云 Token Plan(MaaS)国产模型;周配额耗尽会让全服对话瘫痪湖仓无记录
飞书开放平台OAuth 登录、机器人长连接湖仓无记录
paas.xforceplus.com云砺账号登录与租户;票易通 SaaS 嵌入白名单公网 A 记录;内网解析到 172.18.118.1(据文档)
ai-native.test.xforceplus.com数电发票 MCPCNAME → ALB intranet_k8s.devops-normal(K8s 入口)
GitLab gitlab-devops.xforceplus.com源码、npm 私服、PyPI 私服、CI6 个仓库、语言统计、CI 配置
Verdaccio 172.18.10.176:4873公司内部 npm 镜像,CI 与三方插件更新检测都用它ECS midware.frontend-npm-server.01.prod(fedcenter),无云助手,L3 看不到
Harbor harbor.paas.xforceplus.comCI 用 node 镜像
研发本体湖仓(AnalyticDB PG)@yunrise/dsh-ontology 插件(未发布)和部分沙箱技能直连查询即本次调研的数据源

10湖仓覆盖与治理发现

从研发本体湖仓的视角看,云升这类"ECS 裸部署 + Node.js + 文件型状态"的项目,哪些看得见,哪些看不见。

✅ GitLab

6 仓、语言、CI 配置与 lint 均可查;流水线运行记录全局为空。

✅ 网络接入层

DNS → ALB → 规则 → 服务器组 → ECS 全链可逐跳还原。

✅ ECS 台账 / L3

宿主规格、标签、进程、监听端口、systemd 单元都可见;云升各单元的 exec_command 为空。

❌ K8s / 代码抽取

K8s 工作负载 0,没有镜像,因此端点、配置键、调用线索的抽取覆盖为 0。

❌ Apollo / DMS

配置在 .env 与 settings.yaml,状态在本机 JSON,湖仓两域都查不到。

⚠️ ECS → GitLab 桥

dws.v_ecs_workload_gitlab 对 yunrise 各单元都是 no-jar / none,Node 服务无法归属到仓库。

⚠️ 新鲜度

09-04 之后新增的 88 主机、yunrise-ai 域名、两个 MCP 服务、xforceplus-mcp 仓都不在湖里。

❌ 门户注册中心

portal_menus / portal_micro_apps 里没有云升,报障时无法从页面名词反查到它。

治理发现

  1. 命名与成本归属漂移:承载云升生产流量的宿主叫 aistore.tmall.tmall.01.sit,名字里是 sit 环境,成本标签却记在 aistore;ALB 名叫 feishu-dev,09-04 批次时已挂 4 个域名,09-16 又加上 yunrise-ai;new-api 网关跑在一台叫 prometheus 的机器上。湖仓
  2. Node 服务归属缺口:L3 已经采到进程的 script_path(例如 /home/appuser/yunrise-dsh/auth-service/server.js/home/appuser/dsh-market-portal/portal/server.mjs),它们和仓库文件路径(yunrise-server 的 auth-service/server.js、dsh-plugin-market 的 portal/server.mjs)存在稳定的后缀对应。建议给 v_ecs_workload_gitlab 增加"脚本路径后缀 ↔ 仓库文件"匹配通路。湖仓仓库
  3. 单元级命令缺失导致 GAV 丢失:同一台主机上,tmall-billing、tmall-store 在进程级能读到 jar 的 GAV,但单元级 exec_command 为空,DWD 层判成 no-jar。建议 DWD 层在单元级缺失时回退使用进程级 jar。湖仓
  4. 跨项目端口漂移:云升文档说 cliproxyapi 的 8317 端口已废弃,但 ticket-tax-ai-ops-service(PROD)等仍配着 :8317,需要确认这些服务的模型调用是否受影响。湖仓仓库推断
  5. 非镜像项目缺少代码入口:建议给 yunrise 组增加"源码直抽"的抽取入口(按默认分支或发布标签),补上端点、配置键、依赖这些结构元数据。推断

关键查询(逻辑层名,可直接用 probe 执行)

-- 入口链:域名 → ALB 规则 → 服务器组 → 后端
SELECT r.priority, r.host, g.name AS server_group, s.type, s.server_id, s.server_ip, s.port
FROM ods_current.alb_rules r
JOIN ods_current.alb_load_balancers a ON a.load_balancer_id = r.load_balancer_id
LEFT JOIN ods_current.alb_server_groups g ON r.forward_server_group_ids::jsonb ? g.server_group_id
LEFT JOIN ods_current.alb_servers s ON s.server_group_id = g.server_group_id
WHERE a.dns_name = (SELECT value FROM ods_current.dns_records
                    WHERE domain_name = 'xforceplus.com' AND rr = 'yunrise');

-- 宿主上的进程 × 监听端口(L3)
SELECT p.unit_name, p.exe_name, p.script_path, lp.addr, lp.port
FROM ods_current.ecs_processes p
LEFT JOIN ods_current.ecs_listen_ports lp
  ON lp.instance_id = p.instance_id AND lp.pid = p.pid
WHERE p.instance_id = 'i-bp15teisdgaryc16mtcs' AND p.unit_name ILIKE 'yunrise-%';

-- ECS workload → GitLab 归属(Node 服务全部 no-jar / none)
SELECT unit_name, match_route, match_quality
FROM dws.v_ecs_workload_gitlab
WHERE instance_id = 'i-bp15teisdgaryc16mtcs';

11风险与建议

  • 单宿主资源争用。云升的 N 个用户实例、aistore 门店 6 个服务、agent-platform 挤在同一台 4C/32G 上,09-01 已经出过 OOM 连锁故障。
    建议:把云升和 aistore 拆到不同宿主(88 独立栈方向是对的);给 tmall 系服务也加上 cgroup 限额;把 spawn ENOMEM 和 OOM 次数接入告警。
  • 迁移双活导致会话分叉。首个迁移沙箱 09-14 起同时在 80 和 88 上被使用,两边会话已经不一致。
    建议:按指南先把 80 当天独有的会话补到 88,再执行强制下线、停实例、挪走目录;把"同步即切换"写成一个脚本原子完成,避免只做一半。
  • 多处单点。每个请求(包括静态资源)都要经 auth-service 的 /check;80 是唯一生产主机;飞书机器人长连接只能在一台上跑;88 依赖 80 的市场、MCP 和下载页。
    建议:给 /check 结果做短时缓存或对静态资源放行;明确 88 在 80 故障时的降级行为;把市场和 MCP 部署成两台都能用的服务。
  • 共享 ALB 与健康检查。ALB feishu-dev 同时承载 yunrise、aistore、cliproxyapi2 和默认业务;文档记载 88 回源的健康检查只探 nginx 默认页,证明不了云升本身活着(80 侧的检查路径未核实)。
    建议:健康检查路径改为 /_auth/login;为云升单独建服务器组或 ALB,并按实际用途重新命名。
  • 上游内核与定制负担。DSH 仍是 developer preview,会有破坏性变更;云升在内核上仍有 9 个定制包,还出现过内核自带插件与种子插件 id 冲突导致升级即崩的事故(0.6.9)。
    建议:继续把定制收敛回插件,把插槽补丁推给上游;发版前固定跑 verify-load 的 id 冲突检查。
  • 模型供给集中。Token Plan 周配额耗尽会让全服对话瘫痪;cliproxyapi 端口变更会影响还在用旧端口的调用方。
    建议:配额和 401 做监控告警;利用 dsh-model-tiers 的档位自动回落到其他 provider。
  • 权限与暴露面。服务器种子 settings 的默认权限预设是 danger-full-access,完全依赖 bwrap 沙箱兜底;市场 9082 机器口零凭据,/api/refresh 无鉴权,安全性依赖内网边界。
    建议:服务器实例改用更严格的默认预设,高危工具走审批;9082 限制来源 IP,refresh 加共享令牌。
  • 可观测与治理缺口。湖仓看不到云升的代码结构、配置和运行记录;CI lint 报错;AgentOS 两仓停更后去留未定。
    建议:落实第 10 节的湖仓补桥建议;修复 yunrise-Agent 的 CI needs 顺序;决定 AgentOS 两仓归档还是继续,并清理 /opt/agentos 的历史命名。

12方法与局限

数据来源

  • 湖仓(ontoos-probe):活跃批次 gitlab-devops 20260904_072518net-aliyun 20260904_111348ecs-aliyun 20260904_111832apollo-prod 20260904_105222dms-aliyun 20260904_074140。检索覆盖 GitLab、K8s、Apollo、DMS、网络、ECS、门户、代码域。
  • 仓库(ontoos-code-probe 只读检出):git ls-remote 取默认分支 HEAD:agentos b2e6e919、agentos-cloud cd35c214、yunrise-Agent 4056544d、yunrise-server 6a27fff8、yunrise-config 48820acb、dsh-plugin-market e014f996
  • 架构图(archify):architecture、sequence、workflow 三种类型,showcase 校验加四视口浏览器实测。

局限

  • 检出的不是部署 commit:云升是 ECS 裸部署,湖仓里没有镜像到 commit 的溯源,仓库结论反映 09-16 的默认分支,和线上实际运行的版本可能有差异。
  • 文档声明未逐项验证:标注为仓库的运行态事实(内存事故、迁移状态、线上版本等)来自运维文档,本次没有登录服务器核实。
  • 快照时效:湖仓 L3 进程快照是某一时刻的采样,在线实例数、端口会随时变化。
  • 隐私:报告隐去了账号、邮箱、用户键、令牌和密钥,只保留架构层面的信息。