本节摘要:这是第 8 章的收尾。前面三节让人感觉「改了立刻生效」,但实时性是有边界的——不是所有变更都能实时,有些必须重启。本节诚实地说清这些边界:哪些能实时生效、哪些需要重启引擎或服务端、为什么。建立合理预期,避免「为什么我改了这个没生效」的困惑。
好消息是:大多数能力变更能实时生效。靠第 5 章(配置注入)+ 第 8 章(Reload)的机制,这些变更改完几秒内生效:
| 能力变更 | 实时生效? | 机制 |
|---|---|---|
| 技能(增/改/删) | ✅ | Reload → 重建实例 → 重读配置 |
| 命令 | ✅ | 同上 |
| 插件 | ✅ | 同上 |
| MCP server 配置 | ✅ | 同上 |
| Agent 定义 | ✅ | 同上 |
| 配置文件 | ✅ | 同上 |
这些都是「引擎配置面」的变更,通过配置注入 + 重建实例实时生效。
有些变更不能靠重建实例解决,需要重启引擎:
| 变更 | 为什么需要重启 |
|---|---|
| 引擎二进制更新 | 二进制换了,得重启进程跑新二进制 |
| 某些底层配置(如端口) | 实例重建改不了进程级配置 |
| 运行时切换(如 Bun 版本) | 进程级,必须重启 |
这些变更属于「进程级」——它们影响的是「引擎进程本身」,不是「引擎实例配置」。实例重建是在同一进程内换实例,改不了进程。所以这类变更要重启整个引擎进程。
⚠️ 判断标准:「这个变更影响的是实例配置还是进程本身?」实例配置 → 重建即可(实时);进程本身 → 重启引擎。
极少数变更需要重启服务端:
| 变更 | 为什么 |
|---|---|
| 服务端二进制更新 | 服务端进程要重启 |
| 服务端级配置(如端口区间策略) | 服务端进程级 |
| 某些全局初始化 | 启动时读的、运行时改不了 |
这些是「服务端进程级」变更——比引擎进程级还底层。同样,实例重建改不了服务端进程,要重启服务端。
这些边界不是「OpenWork 没做好」,而是技术客观限制:
OpenWork 能做到「实例级实时生效」已经很彻底了——它把能实时的都做实时了,剩下的进程级是物理限制。
对于需要重启引擎的变更,OpenWork 桌面端提供了「重启引擎」的能力(第 9 章运行时管理器)——用户可以在界面触发引擎重启,不用关掉整个应用:
需要重启引擎的变更 │ ▼ 用户点「重启引擎」 │ ▼ 运行时管理器(第 9 章)停止旧引擎进程 │ ▼ 启动新引擎进程(新二进制/配置) │ ▼ 生效
这是「进程级变更」的应对——不重启整个应用,只重启引擎子进程。第 9 章详讲运行时管理器如何优雅地做这件事。
读完第 8 章,你应该有这样的预期:
带着这个预期,你就不会困惑「为什么我更新了引擎还没生效」——因为那需要重启,不是 Reload 能解决的。
读完第 8 章四节,你掌握了 OpenWork 实时协同的完整图景:
| 节 | 讲了什么 |
|---|---|
| 01 事件 + 指纹 | 文件变更 → 指纹去重 → 生成事件入存储 |
| 02 游标轮询 | 客户端带 cursor 拉增量,务实选轮询非推送 |
| 03 重载触发链 | 拿事件 → 触发重建实例 → 重读注入配置 → 生效 |
| 04 边界 | 实例级实时,进程级需重启——技术客观限制 |
核心认知:OpenWork 用「指纹去重 + 游标轮询 + 重建实例」实现了大多数能力变更的实时生效,剩下的进程级变更是物理限制,靠重启引擎解决。第 9 章我们钻进桌面端,看运行时管理器如何管理引擎与服务端子进程的生命周期(包括「重启引擎」这种操作)。
第 8 章结束。下一章讲 Desktop 深度——Electron 主进程与运行时管理器。