察元AI智能体桌面单机版的代码跟多用户版本chayuan-server 完整服务共用一份 git 仓库。这种 同源 不是巧合而是有意为之的设计。这一篇讲单机版怎么从多用户版退化出来governance 这一类企业模块在单机模式下变成什么样。先看不同形态的差别。多用户版 chayuan-server 跑在服务器上监听公网或内网多个用户各自登录每个用户有 KB 隔离、配额、审计、RBAC。单机版 chayuan-desktop 是 Tauri 加 sidecar 跑在一台电脑上没有用户概念所有数据是当前 OS 用户的鉴权关掉。如果两个版本是不同代码库会怎样。最直接的问题是 重复维护。同样一个 RAG 检索逻辑两个仓库各写一遍bug 修两遍特性加两遍。新厂商接入要在两边都做。结果是要么单机版落后要么多用户版落后。免费开源的AI软件 的资源不多浪费在这种重复上得不偿失。同源的实现思路。一份代码两套部署形态。所有的核心业务模块kb_query、retrieval、knowledge_source、tools_factory 等跟部署形态无关。差异在外围模块和配置层。环境变量切换。chayuan-server 启动时读 CHAYUAN_DESKTOP_MODE 环境变量。单机版下 Tauri 注入 CHAYUAN_DESKTOP_MODE1sidecar 据此切换到单机模式。多用户版下这个变量为空走完整模式。单机模式下的退化。鉴权模块authz退化为 always allow所有请求被视为合法。用户上下文退化为单一隐式用户。配额模块quota退化为不限速。审计模块audit退化为本地日志不写中央审计库。RBACrole-based access control退化为不校验角色。这些退化不是删代码是模块内的 if 分支。governance 模块在单机版的形态。governance 包含审计、配额、RBAC、PII 脱敏、数据血缘等子模块。单机版下审计仍写本地日志给用户自己看配额关闭RBAC 跳过PII 脱敏可选开启用户可在设置里勾数据血缘仍记录给用户排查诊断用。整个 governance 模块在单机版变得轻但仍存在。为什么不直接删掉 governance。删掉的话单机版升多用户版要重写一遍。保留之后切换成本几乎是零只需要改 CHAYUAN_DESKTOP_MODE 这一个环境变量。这种 永远准备好升级 的设计让单机版用户后续要部署多用户系统时无需迁移数据。多人单机部署。某些客户场景需要 一台后端服务器加多个 GUI 客户端但每个客户端仍按 单机模式 工作不区分用户。这种用法叫 共享单机模式。chayuan-desktop 支持这种用法但前提是这台后端不是公网开放是部门内的私有部署。multi-tenant 模式。如果客户需要正经的多租户应该部署多用户版chayuan-server 完整服务单机版不是设计来扛多租户的。multi-tenant 在 governance 的 tenancy 子模块里实现单机版下这个模块禁用。数据迁移路径。单机版用户后期升级到多用户版CHAYUAN_ROOT 下的所有数据可以迁过去。多用户版接受单机模式的数据导入自动把所有 KB 归到一个默认用户名下钥匙重新加密。这是 同源 的实际收益之一不会因为升级被锁死。测试覆盖。两套形态共用一份测试集。pytest 跑 chayuan-server 测试时会同时跑多用户场景测试和单机场景测试每个测试函数加 modedesktop 或 modemulti 参数化。这种覆盖确保新 PR 不会一边修好另一边坏掉。社区版与企业版。同一份代码可能演化出社区免费版AGPL-3.0和企业商业版的差异。chayuan-desktop 当前所有功能都在 AGPL-3.0 下开源没有功能锁。企业版的差异主要在合规、审计、审批、白标这些方面跟核心 AI 能力无关。这种纯净的开源策略对 免费开源的AI软件 用户最友好。WPS AI 插件 chayuan-wps 不参与单机/多用户的形态判断它只是一个 HTTP 客户端连什么后端就用什么后端。在单机版后端下加载项体验是 单机模式在多用户后端下加载项体验是 多用户模式要登录、要带 token。同源代码的好处对维护者最直接对用户最间接。用户不感知这些代码组织上的细节但能从中受益的是产品迭代速度和稳定性。chayuan-desktop 单机版用户得到的功能强度跟多用户版基本一致差异只在 是不是给你看用户那一栏。