产品定位
内网办公即时通讯系统(Memex)· 依据《建设方案评审报告 V10.0》收敛,一页纸口径。
一句话
在内网物理隔离、终端 Windows 与国产 Linux(UOS/麒麟)混用的办公环境里,提供一套完全内网运行、业务层自写的即时通讯系统:沟通与文件共享替代现有局域网工具,登录后具备组织架构、消息归档与检索能力,功能范围参照企业微信按四期推进。
双引擎形态(产品的第一特征)
单一安装包,两套引擎各自完整、各走各的链路,只共享本地数据层:
- 直连态(未登录,默认):零配置:不填地址、不注册账号,UDP 广播自动发现同网段终端,点对点收发消息与文件。消息只存本机,服务端无任何记录。定位是本网段内的临时、就近使用(临时来客、临时借机、同区域即刻沟通),不追求跨网段。
- 协作态(登录后):填服务器地址登录,消息经服务端中转并全量归档,获得组织架构、群聊、云端历史、检索等能力。登录后直连引擎不关闭(与未登录同事的跨态互通依赖它),此类会话界面固定标注「未归档」。
- 降级:服务端不可达时自动回落直连态,基本沟通不断:服务端是归档与管理能力的单点,不是通信能力的单点。
手机端全部为协作态:首次启动必须先完成服务器地址初始化才能进入主界面,不提供免登录匿名使用。
留痕原则(不可表决的前提)
连接服务端的唯一目的即留痕。 凡「让发送方得以自行消除留痕」的功能一律不建设:
- 密聊与阅后即焚:不存在任何「发送后自动消失」的会话形态;
- 撤回即抹除归档:撤回只作用于客户端显示层,服务端保留原文并额外记录撤回动作本身;
- 终端侧单方删除归档:清缓存只影响本机,不影响服务端记录,界面明确区分「本地缓存」与「云端归档」;
- 面向使用者的留痕开关:留档策略只由管理侧按部门下发。
直连态的不留痕是该形态的固有属性(不经服务器),不是可按需调用的隐藏模式;协作态的留痕是建设目的本身,不容技术手段豁免。
边界与不做的事
- 会议与协同文档不自写:音视频会议、协同文档(在线文档/表格/知识库)属独立技术领域,第四期采购或集成。
- 不二开:不基于开源即时通讯软件改造;开源组件只以部署调用或宽松许可链接方式引入,交付时提交组件清单。
- 直连态不跨网段:广播不出网段是网络固有行为;跨网段与跨地域一律由协作态承接,不为直连态做任何网络侧改造。
- 表述纪律:界面与材料统一说「归档与检索」,不用「监控」「追踪」「审查」;撤回提示只说「消息已撤回」,不出现「已删除」「不再保存」。
技术路线
- 底座:Qt 6、asio、protobuf、nlohmann-json、SQLite、OpenSSL、AWS SDK(S3 接口)等开源组件,版本与许可证见
third_party/README.md;上面的业务层全部自己编写,不含任何开源 IM 的二开代码。 - 客户端:C++17 + Qt(评审报告定调 C++17 + Qt,实现以 C++17 落地;网络与本地库成熟、国产系统适配成本最低、打包小)。媒体底座(libdatachannel(MPL-2.0)或 WebRTC 参考实现(BSD-3-Clause))未引入、留后续——现役媒体(远程协助屏幕帧/输入)走服务端 HTTP 中继(内网可控,见 R16 远程协助)。手机端 Android(Kotlin)/iOS(Swift)/鸿蒙 NEXT(ArkTS)。
- 服务端:C++17,单台集中部署,评审报告六模块:接入网关、账号与设备、组织架构、消息与归档、策略服务、文件元数据服务——当前以单进程单库形式集聚实现(评审决策第 7 项,预留逻辑拆分)。
- 文件旁路:文件字节流始终点对点直传不经服务端;协作态仅上报传输元数据(文件名、大小、哈希、收发方、时间)。
- AI(第三期):模型网关统一 OpenAI 兼容协议、可插拔;归档数据只允许送本地模型,外部端点默认禁用。
- 多端模型:账号可换机登录;桌面端同一账号仅一台在线,重复登录踢出前一个并提示;每次登录记录设备指纹(只存哈希)、类型与来源。
分期
| 期次 | 目标 | 交付标志 |
|---|---|---|
| 第一期 | 沟通与文件共享本体(双引擎、消息、群聊、截图表情、常用联系人、组织架构、文件传输、归档检索、管理后台) | 可替代现有局域网工具,且具备归档与检索能力 |
| 第二期 | 办公能力(审批、日程待办、公告、群工具、位置图、远程协助) | 具备轻量办公协同能力 |
| 第三期 | AI 能力(群内助手、会议纪要、需求整理) | 群聊内容可自动结构化 |
| 第四期 | 音视频会议与协同文档 | 独立立项,采购或集成 |