定位与总体拓扑
一句话定位:察元AI工舱 是"人均一套操作系统"的数字员工工厂。每台宿主服务器通过 Docker 部署多套 察元AI工舱 容器,每个容器就是一名员工(人类或数字员工)的完整工作环境——内置云桌面、多个编码智能体、受控的文件与剪贴板通道。人类员工通过浏览器云桌面介入,数字员工由调度器驱动 24 小时运转,两者共用同一套 Git / CI / 发布基础设施。
这套架构要同时满足四个约束:隔离(员工之间、员工与宿主机之间互不可见)、可控(复制/粘贴/上传/下载逐容器授权)、可续(数据目录映射宿主机,容器可销毁重建)、可混合(同一容器既能被 AI 驱动也能被人接管)。
- 云桌面云桌面引擎 / noVNC(浏览器访问)
- 智能体Claude Code · Codex · OpenClaw · Hermes · OpenHuman
- 通道Caddy 网关 · app-manager · filebrowser · agent-bridge
- 账号独立用户名/密码/端口
- 云桌面云桌面引擎 / noVNC
- 智能体同左,按角色配技能包
- 通道agent-bridge · filebrowser
- 账号独立用户名/密码/端口
- 驱动调度器派单(cron / 任务队列)
- 智能体Claude Code headless / Codex exec
- 桌面可选(供人接管排障)
- 权限最小化:禁上传下载、禁外网白名单外
base_url;按容器计量 token 成本容器是工作台而不是真源:代码真源在 Git,制品真源在 CI 制品库,数据真源在挂载卷。任何容器随时可销毁重建(镜像 + 卷 = 完整恢复),这是 24 小时无人值守敢跑的前提——数字员工把环境搞坏,重建即可,损失为零。
平台现状盘点(察元AI工舱)
基于对 /work/chatop(内部代号 chatop-ai)的实际代码探查:这是一个以 Ubuntu 22.04 为基础、深度定制的容器化云桌面镜像,XFCE 桌面全中文化,定制 noVNC 前端。"每员工一容器"的工作台层已经可用——账号、端口、数据卷、权限开关、智能体预装全部就绪;差距集中在"工厂外围":调度、门禁、模型网关、审计外送。
| 能力域 | 现状(证据) | 评估 | 下一步 |
|---|---|---|---|
| 云桌面 | 容器化云桌面引擎 + XFCE,中文 locale/字体,定制 noVNC 前端(novnc-src/),Chrome 作 Web 智能体载体 |
已就绪 | 保持 |
| 统一入口 | 每容器内置 Caddy 单端口网关(容器内 7443 → 宿主 PORT,默认 6901),反代 云桌面 / filebrowser / app-manager;自建品牌登录页,Caddy forward_auth 校验签名 cookie(caddy/Caddyfile) |
已就绪 | 多容器规模化后前置宿主级域名网关 + SSO |
| 账号与凭证 | LOGIN_USER / PASSWORD 逐容器环境变量注入;构建期将默认用户改名并迁移 home |
可用 | 接统一身份源、密码轮换、数字员工 bot 账号规范 |
| 资源与端口 | 每容器独立 PORT 映射;shm_size: 1gb;restart: unless-stopped(docker-compose.yml) |
部分 | 补 CPU / 内存 / 磁盘配额,防单容器拖垮宿主机 |
| 数据持久化 | 命名卷 chatop-home 挂 /home/<user>;chatop-seed-home.sh 从镜像播种预装 home,容器可销毁重建 |
已就绪 | 审计日志外送到容器外只追加存储 |
| 智能体 | 镜像预装 Claude Code、Codex、OpenClaw、Hermes Agent、OpenHuman(AppImage)、rtk、tokscale(app-manager/chatop-preinstall.sh);app-manager 应用市场可再装 100+ 项(apps-catalog.json:ai-cli 9、ai-runtime 4、Aider、Cursor、Void IDE、Continue/Cline、94 个 proot 桌面应用) |
已就绪 | 镜像内固化"数字员工技能包"与规范文件 |
| 权限开关 | 剪贴板 CLIPBOARD_IN / CLIPBOARD_OUT(下发至云桌面引擎 SendCutText/AcceptCutText);文件 FILES_UPLOAD / FILES_DOWNLOAD(app-manager 后端 403 硬校验,非纯前端隐藏);FILES_MAX_UPLOAD_MB、FILES_DIR 防目录越权⚠ 2026-07-16 之前的镜像中,两个剪贴板开关实际未生效(引擎默认值覆盖,设 0 仍连通);文件类开关不受影响。自检与修复见《网络隔离架构说明》07 节。 |
文件开关 已就绪 剪贴板开关 须升级镜像 |
把第 09 节权限矩阵固化为角色 .env 模板 |
| 多容器编排 | agent-bridge(websockets 反向注册 + 心跳,NAT 友好)已就绪;ChaCMD 指挥台有设计文档(docs/superpowers/specs/) |
设计中 | 第 08 节的调度机制即其落地形态 |
| 工厂外围 | 调度器/任务队列、模型网关与 token 计量、CI 门禁、审计日志汇聚、批量开容器脚本——均未建 | 待建 | 路线图阶段 0 的主体工作 |
平台设计文档(ChaCMD spec)已明确:Claude Code、Codex、OpenClaw、Hermes 是一等无头派活对象(可无人值守驱动);OpenHuman 定位为人工桌面型助手,无官方无头接口,不参与无人值守派单。这与本白皮书第 04 节的引擎分工一致。
模型选型与对比
选型原则有两条。第一,工具与模型解耦:数字员工的"外壳"(编码智能体,如 Claude Code)和"大脑"(底层大模型)是两件事——Claude Code 只是承载 agentic 循环、工具调用、技能与权限的工具,通过 ANTHROPIC_BASE_URL 把它的默认大脑指向谁,才决定真正干活的是哪个模型。第二,内网优先、按任务分层:本白皮书面向涉密/信创场景,默认大脑是私有化部署的国产 Qwen3‑Coder,数据不出内网、无 token 边际成本;云端 Claude 模型只在本地能力不足时按仓库标签升档过去,用于高价值决策点。
成本主要由"错配"产生——用云端旗舰跑巡检是浪费,用本地小模型做架构决策是返工。下表按能力分层给出候选,具体价格与评测分数以采购时官方数据和自建评测为准;「角色」列已按"本地 Qwen 主力、Claude 升档"的路由填写。
| 模型 | 定位 | 强项 | 局限 / 注意 | 在本体系中的角色 | 接入方式 |
|---|---|---|---|---|---|
| Qwen3‑Coder(本地) qwen3-coder-plus |
主力引擎 · 默认大脑 | vLLM/Ollama 私有化,敏感代码与数据不出内网;国产可控、信创合规;无 token 边际成本;256K–1M 上下文 | 单点能力低于云端旗舰;复杂架构/疑难 RCA 需升档;需 GPU 运维 | 全量仓库默认大脑 · 夜间批量开发主力 | 本地 vLLM(Claude Code 经网关接入) |
| Claude Fable 5 claude-fable-5 |
云端升档 · 攻坚天花板 | 最强复杂推理与长程 agentic 编码;跨仓库大重构;架构方案权衡 | 成本最高;数据出内网,仅限非涉密仓库;只投给高价值决策点 | 升档:架构攻坚 · 疑难 RCA · 方案评审 | API(模型网关) |
| Claude Opus 4.8 claude-opus-4-8 |
云端高阶升档 | 强编码 + 支持 fast mode 提速;复杂特性开发稳定 | 成本高于 Sonnet;数据出内网;日常 CRUD 属于过配 | 升档:复杂特性开发 · 高风险变更 | API |
| Claude Sonnet 5 claude-sonnet-5 |
云端性价比升档 | 编码能力/价格比最优;云端升档时的性价比首选 | 超大上下文重构建议再升档;数据出内网 | 升档:本地能力不足时的云端默认 | API |
| Claude Haiku 4.5 claude-haiku-4-5 |
轻量高速 | 便宜、快;分类/巡检/格式化/commit 信息生成 | 不做多步复杂决策 | 巡检 · 日志分诊 · 批量小改(或用本地小模型) | API |
| GPT‑5 系列 / Codex | 第二供应商 | Codex CLI 生态成熟;与主力模型交叉评审可去除单模型盲区 | 两家规范/工具格式不同,需网关统一适配 | 交叉 Code Review · 备灾冗余 | API |
| Gemini 系列 | 补充 | 超长上下文与多模态(设计稿、录屏理解) | agentic 编码生态相对弱 | 多模态需求解析 · 文档摄取 | API |
| DeepSeek V3.x / R1 | 低成本推理(可私有化) | 价格极低;可私有化内网部署;推理链适合批量分析任务 | 工具调用稳定性需自测验证 | 海量低价值任务 · 离线分析 | API / 自托管 |
分层调用策略(模型路由)
- 默认层(主力)(按计划实现特性、写测试、改 UI、日常 CRUD)→ 本地 Qwen3‑Coder 为默认大脑,承载夜间批量开发的绝大多数工作量;数据不出内网、无 token 边际成本。
- 升档层(复杂特性、高风险变更、超大上下文重构)→ 单任务在 Qwen 上连续失败 2 次、或任务卡标记高复杂度,自动升档到云端 Claude Opus 4.8,并把失败上下文带上。
- 攻坚层(架构方案、跨项目合同变更、疑难 bug RCA)→ Claude Fable 5 / Opus 4.8,由人(架构师)触发,产出必须落盘为设计文档。
- 巡检层(lint 分诊、依赖升级、日志摘要、commit message)→ 本地小模型 / Haiku 4.5 / DeepSeek,就近跑、极低成本。
- 评审层(MR 评审)→ 与作者不同的模型做交叉评审(如 Qwen 写、Opus + GPT‑5 审),避免同模型盲区互证。
- 涉密层(合同、客户数据、加密算法)→ 只许本地 Qwen3,模型网关按仓库标签强制路由,云端 API 直接拒绝(出错方向是"拒绝"而不是"放行")。
模型每季度换代。正确姿势是把自建评测集(第 06 节)当作选型基准:新模型出来先跑自家评测,用数据换默认大脑,而不是追发布会。工具与模型解耦的价值就在这里——换大脑不用换工具:改一处 ANTHROPIC_BASE_URL / 网关路由配置,全部还在用 Claude Code 的数字员工同时切到新模型,外壳、技能、hooks 全部不动。
工具与技能选型
4.1 编码智能体(容器内置)
先分清"外壳"与"大脑"。下表这些编码智能体是工具外壳——负责 agentic 循环、工具调用、技能与权限;真正的"大脑"是它们背后的大模型(见第 03 节)。本体系以 Claude Code 为主力外壳(skill/hooks/MCP/无头能力最完善),但通过 ANTHROPIC_BASE_URL 把它的默认大脑接到内网 Qwen3‑Coder——即"Claude Code 的壳 + Qwen 的脑"。「无人值守能力」评估的是外壳,与大脑是谁无关。
| 智能体 | 形态 | 适用场景 | 无人值守能力 | 建议角色 |
|---|---|---|---|---|
| Claude Code | CLI / 桌面 / IDE 插件 | 复杂多步开发、技能(Skill)体系、MCP 生态、hooks 权限控制最完善 | 强:headless(claude -p)+ Agent SDK + 后台任务/cron |
主力外壳(默认驱动内网 Qwen3‑Coder) |
| Codex CLI | CLI | OpenAI 系模型执行器;沙箱执行模式成熟 | 强:codex exec 非交互模式 |
交叉评审 · 第二引擎 |
| OpenClaw | 常驻 agent 框架 | 消息驱动的长期运行助手,适合做值班/联络型 agent | 强:常驻进程 + 定时任务 | 值班机器人 · 消息网关 |
| Hermes Agent | 常驻自主代理(Nous Research) | 长任务自主执行与自改进;install.sh 免 sudo 部署 | 强:设计文档列为一等无头派活对象 | 实验型数字员工 · 长任务 |
| OpenHuman | 桌面 GUI 助手(AppImage) | 人工桌面型 agentic 助手,适合人类员工日常辅助 | 弱:无官方无头接口,不参与无人值守派单 | 人机协作桌面助手 |
人工接管不是一个"智能体"而是一条通道:任何容器随时可通过云桌面被人接管(agent 卡死排障、验收演示、敏感操作),这是混合模式的兜底。
多引擎并存的原则:一个容器内可以装多个 agent,但每个任务只有一个"责任 agent"。多 agent 同时改同一工作区是事故之源;交叉评审应通过 Git MR 界面(读 diff)进行,而不是共享工作目录。
4.2 外壳的可替换性:能替代 Claude Code 的工具
把 Claude Code 定位成"外壳"后,一个自然的问题是:外壳本身能不能换成国产/开源的?能。判据只有四条——能否本地/内网自托管、能否驱动本地 Qwen 模型、无头(headless)能力是否成熟、生态(skill/hooks/MCP)是否够用。夜间无人值守主力最看重"无头能力",白天人机协作则可放宽。下表按"能否替代 Claude Code 当主力外壳"评估:
| 外壳工具 | 形态 | 驱动本地 Qwen | 无头能力 | 信创 / 自托管 | 能否替代 Claude Code 当主力 |
|---|---|---|---|---|---|
| Claude Code 本方案主力外壳 |
CLI / 桌面 / IDE 插件 | 可 经 ANTHROPIC_BASE_URL 接网关 |
强 claude -p + SDK + cron |
壳闭源,大脑可全内网 | —(当前主力:壳闭源但大脑已完全国产化) |
| Qwen Code(qwen-code) | CLI(开源,Gemini CLI 血统) | 原生 通义官方,天然配 Qwen3‑Coder | 较强 非交互 / 脚本模式 | 开源可自托管 | 最佳国产替代:壳与脑都国产,纯内网可闭环 |
| Qoder 阿里 agentic IDE |
图形化 IDE(对标 Cursor) | 可配 阿里系,倾向接百炼 / 云端 | 弱 以人机协作为主,无成熟无头接口 | 产品化云 / 端,自托管受限 | 白天人机协作外壳可选;无头夜间批量弱,不宜当主力 |
| Codex CLI | CLI(OpenAI 系) | 需网关适配 | 强 codex exec |
壳开源,默认接云端 | 可作第二外壳 / 交叉评审,主力偏 OpenAI 生态 |
| Cline / Continue | VS Code 插件 | 可 支持自定义 OpenAI 兼容端点 | 弱 以人机协作为主 | 开源可自托管 | 适合白天人机协作,无头批量弱,不宜当夜间主力 |
| Aider | CLI(开源) | 可 支持任意 OpenAI 兼容后端 | 中 脚本可驱动 | 开源可自托管 | 轻量 git-native 编辑好,skill / 权限生态弱于 CC |
| OpenClaw / Hermes | 常驻 agent 框架 | 可 自配模型后端 | 强 常驻 + 定时 | 可自托管 | 值班 / 长任务型,非通用编码外壳,作补充 |
短期以"Claude Code 壳 + 内网 Qwen 脑"为主力:改一处 ANTHROPIC_BASE_URL 即可,外壳成熟度、skill/hooks/MCP 生态当前最完善,迁移成本近乎为零。中长期若要连"壳"也完全国产化闭环,Qwen Code(qwen-code)是首选替代——壳与脑都国产、开源可自托管、天然驱动 Qwen3‑Coder;Qoder 则更适合白天人机协作,因无头能力弱不宜承担夜间无人值守。建议先在 1~2 个仓库让 Qwen Code 与 Claude Code 并行压测无头产能与回炉率(用第 06 节自建评测集),数据达标再逐步换主力。不要为了"纯国产"一步切换而牺牲夜间产能——外壳是可插拔的,大脑已经先国产化了,风险最高的一步已经迈过。
4.3 技能(Skills):把工程纪律变成可执行资产
技能是这套体系里最容易被低估的资产。模型决定"能不能",技能决定"每次都按规矩做"。技能库分三层:
- 通用工程技能(跨项目复用):brainstorming(需求澄清)、writing-plans(写实施计划)、test-driven-development、systematic-debugging(修 bug 强制纪律)、code-review、verification-before-completion(先验证再声称完成)。
- 项目专属技能(进各仓库
.claude/skills/):如何启动本项目、如何跑最小测试集、发布步骤、已知坑(如 PyInstaller frozen 模式、PowerShell 编码坑——这些血泪教训写进技能,数字员工就不会重复踩)。 - 平台运维技能:容器重建、日志采集、回滚步骤、告警分诊模板。
4.4 MCP 与外设工具
| 类别 | 工具 | 用途 |
|---|---|---|
| 代码平台 | GitLab/GitHub MCP 或 glab/gh CLI | 开 MR、读评审意见、管理 Issue(任务卡真源) |
| 浏览器 | Playwright(MCP 或脚本) | E2E 测试、UI 验收截图、页面调试 |
| 数据库 | 只读 MCP(白名单表) | 排查数据问题;严禁给数字员工写权限 |
| 观测 | Prometheus / Grafana / 日志 API | AIOps agent 读指标、查日志 |
| 消息 | 飞书/钉钉/Slack webhook | 值班通知、审批请求、夜间战报 |
4.5 规范即代码:CLAUDE.md / AGENTS.md 分层
用户级 ~/.claude/CLAUDE.md → 语言、个人纪律(全员统一模板下发)
工作区级 /work/CLAUDE.md → 跨项目架构原则、Git 纪律、修 bug 流程
项目级 <repo>/CLAUDE.md → 技术栈、目录导读、验证命令、质量红线
技能 <repo>/.claude/skills/ → 可执行的操作步骤(启动/测试/发布/排坑)
钩子 <repo>/.claude/settings.json → 权限白名单、hooks 强制门禁
这四层文件就是"架构师对数字员工的指挥系统":架构师写规范,数字员工每个会话自动加载。规范写得越像操作手册,夜间产出越稳定。
开发模式:分支 · 提交 · 编译 · 发布
5.1 分支模式
- 主干开发 + 短命分支(Trunk-Based):数字员工从
main拉bot/<issue-id>-<slug>分支,存活时间目标 < 24 小时,合并即删。长寿分支是 AI 时代的毒药——agent 解决合并冲突的成本远高于小步快跑。 - 人类员工分支用
feat/、fix/前缀,与bot/区分,便于审计与统计。 main受保护:任何人(包括管理员)不得直推、不得 force push;变更只能走 MR。- 未完成的功能用 feature flag 隐藏后照常合并,而不是养长分支。
5.2 提交规范(Conventional Commits + AI 署名)
<type>(<scope>): <一句话说清做了什么>
<正文:为什么改、影响面、验证方式>
Refs: #1234 ← 必须关联任务卡
Risk: low | medium | high ← 风险自评,决定合并路径
Verified-By: pytest -q tests/... ✅ ← 验证命令与结果
Co-Authored-By: Claude <noreply@anthropic.com> ← AI 参与必须署名
Agent-Container: bot-07 ← 出自哪个容器(审计追溯)
type取值:feat / fix / refactor / test / docs / build / ci / perf / chore。- commit message 不许预设因果:修的是预存在 bug 就写明"预存在,与当前症状关联未验",不许为了好看编故事——这直接决定日后 RCA 的效率。
- commit-lint 在 CI 强制校验 trailer 完整性;缺
Refs或Risk的提交直接拒绝。
5.3 编译模式
- 容器内构建只用于自测,CI 构建才是唯一可信产物。数字员工的环境可能被自己改乱,其产物一律不进制品库。
- 构建必须可复现:锁文件(poetry.lock / pnpm-lock)入库,CI 用固定镜像,禁止构建时联网拉浮动版本。
- 构建预算门禁:产物体积、构建时长、依赖数量超阈值即失败,防止 agent "顺手"引入大依赖。
5.4 发布模式
- 语义化版本 + 自动 changelog:从 Conventional Commits 自动生成版本号与变更日志,人不再手写。
- 发布链:合并
main→ 自动部署 staging → 自动化验收(E2E + eval 集)→ 灰度 5% → 观察窗口(错误率/延迟对比基线)→ 全量。任何一环指标劣化自动停止并回滚。 - 夜间发布策略:数字员工夜间可以发 staging,生产发布窗口默认只在工作时间,除非该服务已达到"回滚全自动 + 灰度全自动"的成熟度分级。
测试模式:TDD 与评测门禁
无人值守开发的本质约束是:没有人盯着,所以"正确性证据"必须由流程自动产生。测试不再是开发的附属品,而是数字员工的"眼睛"——测试有多好,夜间产出就有多可信。
6.1 三层验证金字塔
| 层 | 内容 | 由谁产生 | 何时执行 |
|---|---|---|---|
| L1 单元/契约 | 函数级单测、API schema 契约测试、类型检查 | 数字员工 TDD 先行(红→绿→重构) | 本地自测 + 每次 CI |
| L2 集成/E2E | Playwright 走关键用户旅程、跨服务集成 | 测试工程师定义旅程,agent 实现脚本 | MR 门禁 + staging 部署后 |
| L3 评测(eval) | AI 功能的行为评测集:给定输入 → 判定输出质量(如"有几个用户"必须命中 structured_aggregate) | 架构师/测试定义金标准集 | MR 门禁 + 模型换代时 |
6.2 强制纪律
- TDD 是默认工作法:任务卡里的每条验收标准,先翻译成失败的测试,再写实现。agent 的 MR 里必须能看到"测试先红后绿"的提交序列。
- 禁止 agent 弱化测试来过关:CI 检测测试删除/skip/断言弱化,此类 diff 自动标 high risk 强制人审。这是数字员工最常见的作弊路径,必须机器设防。
- 修 bug 必附回归测试:先写能复现 bug 的失败测试,修完变绿,测试永久留下。修 bug 前强制走 RCA 模板(症状 vs 现场分离、git log 查血缘、假设+反证),不许赌博式改代码。
- 变更即验证(verify):非平凡改动必须端到端驱动一次真实流程(起服务、打请求、看结果),不能只靠单测绿就声称完成。
6.3 评测集是新的"测试资产"
凡是有 AI 行为的功能(检索、text2sql、生成),传统断言测不住"质量",必须建评测集:固定输入 + 金标准判据 + 打分器。评测集同时服务三件事:MR 门禁(改动不许让评测分下降)、模型选型(新模型先过自家评测)、回归定位(分数掉了能定位到哪类 case)。
运维模式:AIOps 闭环
运维的目标形态是一个闭环:告警不再直接打给人,而是先打给值班 agent;agent 能解决的自动解决,解决不了的带着完整诊断上下文找人。
- 预案白名单是硬边界:值班 agent 只能执行事先由人评审过的预案脚本(回滚/重启/扩容/降级),任何白名单外的生产操作一律禁止——哪怕它"看起来显然正确"。信号可能与已知故障模式相似但根因不同。
- 发布与告警联动:告警发生时 agent 第一件事是对照"最近 2 小时发布记录",命中即自动回滚,先止血后 RCA。
- 平台自身的运维:容器健康巡检(磁盘、僵尸进程、token 消耗异常)由 Haiku 级巡检 agent 每小时跑,异常容器自动隔离出调度池。
- 成本也是运维指标:按容器/任务统计 token 花费,异常烧钱(死循环重试)触发熔断,停掉该容器的派单。
24×7 自主开发时序图
核心机制是"白天人定方向,夜间机器执行,清晨人做裁决"的昼夜节律。人不守夜——夜间产出全部积压在两个受控队列里:待人审的 MR 队列、超纲上报队列。
调度机制要点
- 任务卡即接口合同:一张合格的任务卡 = 背景 + 验收标准(可翻译成测试)+ 约束(不许动什么)+ 风险级别 + token 预算。写不出验收标准的任务不许进夜间队列,退回给人拆解。
- 并发控制:同一仓库同一时刻只允许 N 个数字员工(建议 N=2~3),任务卡声明触碰的模块,调度器避免派发冲突模块。
- 预算熔断:每单有 token/时长预算,超限即挂起并上报,防止死循环烧钱。连续 2 单失败的容器自动隔离出池,等人排查。
- 回炉上限:CI 失败或评审驳回累计 3 轮仍不过 → 任务标记"需要人",带完整上下文进晨审队列,不许无限重试。
权限矩阵与安全隔离
隔离分四层:网络层(容器内 Caddy 是唯一入口,容器互不可见)、系统层(每容器独立账号/端口/资源配额,无宿主机访问)、数据层(剪贴板与文件传输逐容器授权)、凭证层(Git bot 账号仅有本仓库分支推送权,模型 API key 由网关代持不落容器)。
9.1 接入方式的安全对比:像素流 vs 普通协议
这套隔离能成立的物理前提,是员工与数字员工都通过像素流云桌面(noVNC)接入,而不是 SSH、Remote-SSH 插件、VPN 直连或 git clone 到本地这类直连协议。两者的差别不是"配置得更严",而是结构性的:像素流下,跨越安全边界的只有下行的屏幕像素和上行的键鼠事件——源代码、密钥、数据本体从不离开容器;直连协议下,代码与数据本体、乃至一个真实 shell,会真实地落到员工终端。安全不是靠嘴说,下表逐维度对照(像素流占优 / 普通协议暴露 / 像素流的取舍代价)。
| 对比维度 | 普通协议接入 SSH / Remote-SSH / VPN + 本地 IDE / SFTP / RDP | 像素流云桌面 noVNC(本方案) |
|---|---|---|
| ▍ 安全维度(核心) | ||
| 跨越边界的实体 | 源代码、文件、数据本体、shell 字节流真实穿越边界到达终端 | 仅像素+键鼠 下行画面帧、上行键鼠事件;代码/数据从不离开容器 |
| 端侧数据留存 | 本地全量副本 git clone/SFTP 后终端磁盘有完整代码,笔记本失窃即泄露 |
端侧零副本,只有易失的画面帧,关闭标签页即无残留 |
| 数据外发管控粒度 | 全通道 SSH/SFTP/端口转发一旦开通即双向全通,难以逐操作细管 | 剪贴板出/入、上传、下载是四个独立、逐容器、服务端硬校验的开关(SendCutText/AcceptCutText + filebrowser 后端 403)注 剪贴板两个开关在 2026-07-16 之前的镜像中实际未生效,须升级;文件两个开关不受影响。详见《网络隔离架构说明》07 节。 |
| 攻击面 / 横向移动 | 真实 shell + 端口转发 终端拿到内网落脚点,可作跳板深入 | 端侧只是浏览器渲染器,无容器网络位置、不能建端口转发,横向移动无立足点 |
| 凭证暴露面 | SSH key、Git token、模型 API key 需下发/配置到员工终端 | 凭证由网关/容器侧代持,永不下发到端;容器内仅短期令牌 |
| 恶意内容回流 | 下载的依赖/网页/文件以原始可执行形态进入终端 | 危险内容留在容器沙箱,端侧只收到不可执行的像素 |
| 可审计 / 可回放 | 操作发生在员工本地机器,平台无法录制审计 | 容器内 shell / 剪贴板 / 文件事件全量落审计、可回放(见 9.2) |
| ▍ 协议与接入维度 | ||
| 边界连接性质 | 终端与内网建立真实 TCP / 应用层直连(协议直通) | 协议中断 端与内网无任何直接 TCP 连接,只有像素会话摆渡 |
| 传输协议与端口 | SSH(22) / RDP(3389) / SFTP / VPN 隧道,多协议多端口 | 单一 WebSocket over HTTPS;每容器 Caddy 单端口(7443→宿主一端口) |
| 认证方式 | 公钥/密码/证书 + 客户端配置,密钥分发是长期负担 | 浏览器 + HTTPS + Caddy forward_auth 签名 cookie,可前置 SSO |
| 客户端要求 | 需装 IDE / SSH 客户端 / 插件 / VPN 客户端并维护版本 | 零安装 任意现代浏览器即可,瘦客户端/信创终端友好 |
| ▍ 体验与成本维度(诚实的取舍) | ||
| 带宽 / 弱网表现 | 只传文本与文件 diff,带宽省、耐丢包 | 传像素帧 带宽占用高、对延迟丢包敏感,需就近部署 + 编码优化 |
| 端设备算力 | 部分计算/IO 落端侧,对终端性能有要求 | 计算全在容器侧,端设备可以很弱 |
| 多人接管 / 会话可续 | SSH/RDP 会话不易被第三方观察接管;断连后端侧状态易丢 | 天然支持多人观看/接管同一桌面(排障、验收);会话在容器侧常驻,重连即恢复现场 |
普通协议的安全性依赖"信任每一个终端不被入侵、不被偷、不外泄"——这是一条永远有漏洞的防线。像素流把安全建立在结构性事实上:代码与数据从未到达终端,因此终端失窃、被入侵、被拷贝都无数据可泄。需要防守的面,从"整个协议栈 + 每一台终端"收敛为剪贴板/上传/下载这几个可枚举、服务端硬校验的开关。取舍是真实的(带宽与弱网体验),但这正是"用可承受的体验成本换不可谈判的数据安全"的自觉选择。网络层的完整论证见配套文档《网络隔离架构说明——容器化远程工作区隔离》。
9.2 权限矩阵与审计
数据层与前两层隔离在 察元AI工舱 中已是现成开关:CLIPBOARD_IN/OUT、FILES_UPLOAD/DOWNLOAD、FILES_MAX_UPLOAD_MB、FILES_DIR 按容器 .env 配置即可实现下表——把它固化成三套角色模板(普通员工 / 受限外包 / 数字员工)随容器工厂下发。
| 能力 | 普通员工容器 | 受限外包容器 | 数字员工容器 | 管理员 |
|---|---|---|---|---|
| 云桌面访问 | 允许 | 允许 | 仅排障时开启 | 允许 |
| 剪贴板:容器 → 本机 | 允许 | 禁止 | — | 允许 |
| 剪贴板:本机 → 容器 | 允许 | 允许 | — | 允许 |
| 上传附件(filebrowser) | 允许 | 审批后 | 禁止 | 允许 |
| 下载附件 | 按目录授权 | 禁止 | 禁止 | 允许 |
| 外网访问 | 代理白名单 | 代理白名单 | 仅模型网关+Git+镜像源 | 允许 |
| Git push(bot/feat 分支) | 允许 | 允许 | 允许 | 允许 |
| Git 直推 main / force push | 禁止 | 禁止 | 禁止 | 禁止(走 MR) |
| 生产环境操作 | 禁止 | 禁止 | 仅白名单预案 | 审批后 |
| 宿主机访问 | 禁止 | 禁止 | 禁止 | 允许 |
- 审计不可选:每个容器的 shell 命令、agent 会话、文件传输、剪贴板事件全部落审计日志并汇聚到宿主机外的日志系统(容器内不可篡改)。数字员工的每一次工具调用都可回放。
- 密钥不落地:模型 API key、生产凭证由网关/密钥服务代持,容器内只有短期令牌。容器镜像与卷中出现密钥格式字符串即告警。
- 提示注入防线:数字员工处理外部内容(Issue 正文、网页、第三方包 README)时视为不可信输入;高危工具(发布、删数据、外发消息)不因文本内容触发,只因任务卡与预案触发。
技术角色的革命性变革
当"写代码"这个动作本身被大幅自动化,所有角色的重心都从执行移向定义、约束与裁决。判断一个岗位新价值的标准变成:你写下的东西能否让 100 个数字员工同时正确工作?
| 角色 | 过去的核心工作 | 现在的核心工作 | 产出物的变化 |
|---|---|---|---|
| 架构师 → 模型指挥官 / 约束设计师 |
画架构图、定技术栈、评审关键代码 | 模型选型与路由策略(哪类任务用哪档模型)、技能库建设(把工程纪律写成可执行技能)、规范即代码(CLAUDE.md 分层体系)、门禁设计(CI/评审/发布的机器裁决规则)、高风险 MR 终审 | 从"给人看的文档" → "给模型执行的规范 + 给机器执行的门禁" |
| 高级工程师 → Agent 编排者 / 首席评审官 |
攻坚复杂模块、带初级写代码 | 把大需求拆成可验收的任务卡、监督夜间产出质量、裁决评审争议、攻坚 agent 三轮不过的硬骨头、优化 agent 失败模式(失败案例 → 技能/规范补丁) | 从"自己写完" → "让机器写对";代码审查量远大于编写量 |
| 初级工程师 → 任务定义与验收专员 |
按详细设计写 CRUD、修简单 bug | 写验收标准、复核低风险 MR、维护评测集 case、给失败任务补充上下文。成长路径改变:通过批阅大量 AI 代码 + 参与规范建设来学习,而非重复写模板代码 | 传统"练手活"消失,必须尽早建立系统视角 |
| 测试工程师 → 评测工程师 / 质量门禁设计者 |
手工用例、执行回归 | 设计验证金字塔与门禁阈值、建设 AI 功能评测集(金标准 + 打分器)、审计"agent 弱化测试"行为、定义 E2E 用户旅程(实现交给 agent) | 从"发现 bug" → "设计让 bug 无法通过的关卡" |
| 运维 / SRE → AIOps 策略师 / 平台工程师 |
值班响应、手工发布、环境维护 | 编写与评审预案白名单(agent 可自动执行的操作边界)、维护容器工厂(镜像/配额/审计)、设计灰度与回滚策略、管理模型网关与 token 成本熔断 | 从"人肉值夜班" → "教会 agent 值夜班,自己只接超纲升级" |
| 产品经理 → 需求编译器 |
写 PRD、开评审会、催进度 | 把需求"编译"成结构化任务卡(背景/验收标准/约束/优先级),验收标准写得可测试化 = 直接决定夜间产能利用率;清晨验收 staging 产出 | 从"文档 + 会议" → "机器可执行的需求";交付周期从周变天 |
组织形态的变化
- 团队结构从"金字塔"变"哑铃":大量执行层工作由数字员工承担,人类集中在两端——定义端(架构师、PM、评测设计)和裁决端(评审、验收、超纲处理)。
- 新的核心 KPI:任务卡一次通过率(衡量定义质量)、夜间 MR 自动合并率(衡量门禁成熟度)、回炉率与根因分布(衡量规范/技能缺口)、每合并 MR 的 token 成本(衡量路由效率)。
- 知识管理成为生产资料:过去经验在人脑里,现在必须沉淀为 CLAUDE.md / 技能 / 评测集 / 预案,否则数字员工用不上。"血泪教训写进技能库"成为事故复盘的标准动作。
- 人的稀缺能力重新定价:品味(什么是好方案)、问题定义(什么值得做)、风险嗅觉(什么不能让机器碰)——这三样是模型短期内替代不了的,也是新的晋升标准。
落地路线图
基建就绪
察元AI工舱 镜像标准化(智能体 + 技能包预装)、Caddy 网关与容器工厂脚本、Git 保护分支与 bot 账号、CI 流水线(编译+测试+扫描)、模型网关与 token 计量、审计日志汇聚。
白天人机协作
全员迁入云桌面,人类员工在容器内用 Claude Code 结对开发;建立任务卡模板与提交规范;每仓库补齐 CLAUDE.md 与最小技能包(启动/测试/发布);跑通交叉 AI 评审。
夜间受控自主
调度器 + 数字员工池上线,先在 1~2 个低风险仓库跑夜间队列;MR 一律不自动合并,全部进晨审;建立预算熔断与回炉上限;开始积累失败案例 → 规范补丁循环。
24×7 全量运转
低风险 MR 自动合并 + 自动发 staging;AIOps 值班 agent 接管告警一线;评测集覆盖全部 AI 功能;按 KPI(自动合并率/回炉率/成本)持续调优模型路由与技能库。
最常见的失败是跳过阶段 1 直接上夜间自主:规范与技能库还没被白天的人机协作打磨过,夜间产出的驳回率会高到晨审崩溃,团队随即失去信任。自动化率是挣来的,不是配出来的。
红线、风险与成本
不可逾越的红线
- 数字员工永不直推保护分支、永不执行白名单外的生产操作、永不持有长期凭证。
- 删库、删数据、对外发送消息、动计费——这四类操作永远需要人工确认,无论 agent 多确信。
- 测试被删除/跳过/弱化的 diff 一律强制人审,不给任何模型自动豁免。
- 涉密仓库只走本地模型;模型网关按仓库标签硬路由,出错方向是"拒绝服务"而不是"放行"。
主要风险与对策
| 风险 | 表现 | 对策 |
|---|---|---|
| 门禁虚设 | 评审 agent 与开发 agent 同模型互相"点赞" | 异模型交叉评审 + 对抗式验证(评审目标设为"驳倒它")+ 抽样人审 |
| 成本失控 | 死循环重试、旗舰模型跑杂活 | 按单预算熔断、模型分层路由、每周成本审计进晨会 |
| 质量漂移 | 自动合并率上去了,隐性缺陷率也上去了 | 评测集分数与生产缺陷率纳入门禁回归;发现漂移立即降级自动化等级 |
| 提示注入 | 外部内容诱导 agent 执行危险操作 | 外部内容标记不可信;高危操作只由任务卡/预案触发;出站网络白名单 |
| 技能腐化 | 规范与代码现实脱节,agent 按旧规范犯错 | 每次事故复盘必须回答"哪条规范/技能要改";规范文件有 owner 和保鲜检查 |
| 人才断层 | 初级工程师失去成长路径 | 晨审轮值制 + 规范建设参与制,把"批阅 AI 代码"设计成新的学徒制 |
成本模型(量级估算)
一个数字员工容器的成本 ≈ 基础设施(vCPU/内存,量级低)+ token 消耗(主要成本)。按分层路由跑夜间队列,单个中等任务(含回炉)的 token 成本通常在个位数到十几美元量级;对比一次人工返工的成本,关键变量不是单价而是一次通过率——这再次把投资重点指回规范、技能与评测集。