v0.18.1,patch release,但含金量不低。 6天,50个commit,其中MCP相关修复占了近一半。 如果你被MCP Server频繁崩溃折磨过,这次必须升。
先说结论
这次更新的核心主题:MCP稳定性大修 + Dashboard多profile增强。
MCP Server的子进程泄漏问题终于彻底解决了——之前每次重连都会留下孤儿进程,跑几天后系统资源耗尽。这次从handshake、watchdog、orphan reaping三个层面全部堵死。
Dashboard方面,多profile场景终于有了完整视图:拓扑、profile名称、gateway模式,一目了然。
一句话判断:如果你用MCP Server或多profile部署,必须升。
全景统计:fix占四成,MCP是重头
| 类型 | 数量 | 说明 |
|---|---|---|
| fix | 20 | MCP占8个,Dashboard占4个 |
| feat | 14 | PTY重连、HF导出、WhatsApp配对 |
| 其他 | 16 | chore/docs/test |
fix:feat ≈ 1.4:1,典型的快速迭代期比例。
MCP修复方向:orphan reaping(5个)、handshake bound(2个)、watchdog(1个)。
一、MCP稳定性大修(本次绝对主角)
1. 子进程泄漏彻底堵死
这是本次最重要的修复。
问题原理:
MCP Server(stdio模式)在以下场景会泄漏子进程:
- 连接断开后重连,旧子进程没被kill
- initialize握手超时,子进程挂起
- 父进程异常退出,子进程变成孤儿
跑几天后,系统里积累上百个僵尸进程,最终OOM或fd耗尽。
修复内容(8个提交):
| 提交 | 修复点 |
|---|---|
| reap orphaned subprocesses before spawning | 重连前先清理旧进程 |
| reap stdio orphans before reconnect | 重连前清理孤儿 |
| unify reconnect orphan reaping | 统一重连时的清理逻辑 |
| bound stdio initialize handshake | 握手超时兜底,防止子进程挂起 |
| widen handshake bound to HTTP transports | HTTP transport也纳入握手超时 |
| watchdog wrap after OSV preflight | watchdog覆盖OSV预检场景 |
| forward SIGTERM to child group | 父进程退出时SIGTERM发给整个进程组 |
| guard POSIX-only kill primitives for Windows | Windows兼容性 |
设计原则:每个MCP连接生命周期结束时,必须确保子进程被清理。
2. Idle MCP Server自动回收
新增MCP stdio server空闲回收机制。
之前: MCP Server启动后一直跑,即使没有请求。
现在: 空闲超过一定时间自动回收,下次请求时重新启动。
实际意义: 减少常驻进程数量,节省系统资源。
二、Dashboard多profile增强
1. 多profile拓扑可视化
/api/status 现在返回完整的profile和gateway拓扑信息。
新增字段:
profile_names: 所有已配置的profile名称gateway_mode: gateway运行模式- 每个profile的连接状态
实际意义: 之前要手动查config.yaml才知道有哪些profile,现在一个API搞定。
commit: b062083d0
2. Memory Provider在线切换
Dashboard支持切换memory provider。
之前: 要改config.yaml重启gateway。
现在: Dashboard直接切换,即时生效。
commit: 4b184cbe5
3. WhatsApp Dashboard配对
新增WhatsApp与Dashboard的配对流程。
之前: WhatsApp配对要在命令行操作。
现在: Dashboard界面直接完成配对。
commit: 4f620a0bb
三、PTY会话重连
这是个实用功能——PTY会话现在支持断线重连。
之前: Dashboard的PTY连接断开后,会话丢失,要重新开。
现在: 通过attach token重连,会话保持。
技术实现:
- RingBuffer保持输出
- PtySessionRegistry管理会话生命周期
- 定期reaper清理过期会话
实际意义: 网络波动不再导致PTY会话丢失。Dashboard刷新、浏览器切换tab后都能恢复。
commits: e5ac169c2 41166bbe0 e10e4bca8 c3d2be073 79f4f78fa
四、其他值得关注的更新
| 功能 | 说明 |
|---|---|
| Sessions导出到HF | sessions export --format trace 直接上传HuggingFace |
| mem0自托管模式 | setup wizard支持自托管mem0实例 |
| Discord审批提及 | 审批通知@相关负责人 |
| Delegation配置优先级修复 | delegation config不再被profile config覆盖 |
| Discord pairing权限修复 | pairing grants正确应用到message auth |
升级建议
| |
升级后检查:
- MCP Server是否正常启动(
hermes tools看MCP工具是否加载) - Dashboard
/api/status是否返回profile拓扑 - 多profile gateway是否都正常运行
总结
v0.18.1是个务实的patch release:
- MCP稳定性:子进程泄漏彻底解决,idle回收机制上线
- Dashboard增强:多profile可视化、memory provider在线切换
- PTY重连:网络波动不再丢失会话
没有大的架构变更,没有破坏性改动。就是修bug、补功能、提稳定性。
如果你被MCP Server崩溃折磨过,这次升级能解决90%的问题。
Hermes Agent是开源项目,GitHub: NousResearch/hermes-agent
关注 varkm,第一时间获取 Hermes 更新解读