插件目录从 9 条涨到 228 条:智能体的瘦核心赌注
2026 年 9 月 24 日,Hermes Agent 发布 v0.21.5 稳定 tag。这份发布说明由约 460 个合并 PR、1610 个非合并提交、4828 个改动文件汇总而成,整理版说明被推迟到 v0.22.0。在这样一份清单里,最容易被划过去的一条变更是仓库 plugin-catalog 目录的条目数:v2026.9.14 时是 9 条,现在是 228 条。
十天,两百多条。
同一窗口里,方向一致的改动还有几条:记忆提供方 Hindsight 连同 hermes-agent[hindsight] 依赖被移出核心树,改由插件目录分发,allow_lazy_installs 设为 false 的安装必须手动执行一次 hermes plugins install hindsight;gateway.multiplex_profiles: false 被就地改写为 true 并打印一次性提示,需要独立网关的多档案改用 gateway.standalone: true;桌面端的插件 SDK 落地,带来会话插槽与沙箱化嵌入原语,界面拆出 Simple 与 Advanced 两种模式,原来的 MCP 标签页被 Connectors 页取代。旁边还列着两条官方插件:Blender Lab 与 NVIDIA app。
把这几条放在一起,动作就清楚了:能力往外搬,核心往里收。
一条可以追到九月二日的线
目录从 9 到 228 不是突然发生的,它有一条清楚的前置时间线。
九月二日,项目作者用一条 /goal 指令让智能体清理自家仓库。主运行约十九小时,派发 1393 个子代理,峰值并发 218、三级委派,共产生 4271 次提交,非测试 Python 代码从 106.4 万行降到 69.8 万行,削减 34.4%;其中 gateway/run.py 从 34847 行降到 5512 行。模型成本约 1.93 万美元,含后续工作约 2.5 万美元,对照的人工估算区间是 15 万至 180 万美元。代码库先自己瘦了一遍,这是后来所有「移出核心」动作的物理前提——只有先看清哪些代码是主干、哪些是枝节,才谈得上把枝节交出去。
八月三十一日,v0.21.0 把组队能力做成桌面端默认:每个档案获得名字与确定性头像,可建二到六人的群,跨档案按 handle 互发消息,定时任务获得持久记忆与连续性传递,子代理可在运行中被实时纠正或提前终止。
九月十一日,v0.21.2 用六个改动修会话存储:托管房间状态迁到独立的共享状态库,仪表盘改为只读打开,全文索引损坏不再中断对话,坏行降级为警告,多档案数据库严格隔离,空闲读取不再抢占写锁。最后一条把空闲读取的等待时间从四到二十秒降到零点零一秒。
九月十四日,v0.21.3 处理两个折磨常驻安装的问题:桌面客户端从睡眠唤醒时会并发刷新令牌,网关把这种突发判为异常,直接吊销整个远程仪表盘会话,修复方式是把两条刷新路径上同一枚 rotating refresh token 的并发请求合并为一次;网关、仪表盘、ACP 与命令行过去各自打开 state.db 句柄,长驻进程会泄漏重复写入者,现在改为共享注册表句柄。
九月十七日,作者公开定调瘦核心:内置的第三方记忆提供方先在撤除之列,Honcho、Mem0 等交回各自作者在自己的仓库维护并上架插件市场,官方负责自动迁移用户以免中断,核心只保留默认记忆系统。他把这一步定位为「把集成搬出核心」的试验,是架构范围收窄,而不是转向另一种产品形态,并给了个参照物:更像 Pi,不像 OpenClaw。
九月二十二日,官方 Blender 插件上架。九月二十四日,v0.21.5 交付,目录 228 条。
为什么先砍记忆
在智能体的组件清单里,记忆提供方是最重的一类集成。它牵扯数据模型、迁移路径、长期兼容,还要跟着上游版本走。把它们放在核心树里,等于让核心团队为一个不属于自己主线的组件承担维护责任。
这就是「移出核心」的真实含义:维护责任回到组件作者,用户按需安装,核心只保留协议与默认实现。
生态数据解释了这种分工为什么会发生。九月十八日发布的生态报告显示,核心仓库 246755 星,比七月增长 14.1%,分叉 51729 个,增长 27.7%;被收录的 250 个生态项目合计 141.2 万星,增长 20.2%。增量的大头在两个方向:技能库 48 个项目、44.8 万星,记忆上下文 38 个项目、24 万星,两者合计 86 个项目、68.8 万星,贡献约七成生态增量。生态的增速快过核心,而且增量集中在能力层,不在内核层。
当增量发生在能力层,把能力收进核心就成了负担。
代价一:维护责任外移,迁移成本内移
搬出核心不是没有成本,成本被转成了用户视角的摩擦力。
allow_lazy_installs 为 false 的安装,升级后必须手动补一条 hermes plugins install hindsight,否则记忆提供方就是缺的。配置文件里的 gateway.multiplex_profiles: false 会被就地改写为 true,只在升级时打印一次性提示。这类「静默改写加人工补齐」的组合,是插件化之后最常见的升级形态:核心不再保证所有能力就位,它只保证入口存在。
对个人用户,这只是一条命令。对把智能体长期挂在服务器上、用定时任务和群聊跑生产流程的用户,这就是一次需要排期的变更。
代价二:信任边界跟着目录一起外移
比迁移更值得关注的是权限。
官方在 Blender 插件的文档里把风险写得很直接:该插件以用户权限执行任意 Python,且没有应用版本与存活门禁,服务发现不代表场景已就绪。NVIDIA app 插件则每次连接都读取本机 NVIDIA App 11.0 以上版本发布的 McpServer/server.json 里的端点与令牌,改动不出本地回环。官方实验插件 Claude Subscription DirectSDK 复用 Claude Code CLI 已登录的 Pro/Max 订阅额度,Hermes 保留记忆、审批、工具与压缩,Claude 只当模型,工具经 MCP 暴露、原生工具与设置被禁用;社区实测 Sonnet 与 Fable 的单请求超过 60 万 token,Sonnet 的工具往返达到约 83.7 万 token,官方把它定位为评审版而非生产可用。
这些披露本身是诚实的,问题在于它们共同指向一个结构变化:目录从 9 条到 228 条,意味着可安装的内容从核心团队审得完的范围,扩张到核心团队审不完的范围。
同一周披露的两起事件把这层风险摆在了明面上。一起是僵尸网络扫描未认证的容器守护进程端口,用特权容器接管宿主机,然后原样安装一个开源智能体框架,只改一处:把 39 行提示词写进人设文件 SOUL.md,让智能体化身后渗透工具,通过消息平台接收自然语言任务,其优先级清单第一位是窃取 14 家 AI 厂商的 API key。另一起是一套三工具串联的攻击流水线,漏洞挖掘、自动化渗透、战役编排各由一个开源框架承担,编排侧载入中文人设与 121 个技能,其中 78 个是攻击技能,操作者还专门加了一个用于移除内容安全过滤的技能。
两起事件的共同点不是模型被越狱,而是可写的指令入口与可安装的技能。前者是文件系统里的一个可写文件,后者是一个目录。插件化把这两样东西的供给面显著放大:目录里的每一条,都是一个潜在的指令入口。
同一条路,别人也走过
把视角拉远一点,这套剧本并不新。浏览器的扩展、编辑器的插件、语言的包管理器,都经历过同一条曲线:核心做薄换来生态做厚,然后兼容与安全问题倒逼治理工具——权限清单、签名、沙箱、版本锁定、下架机制。
v0.21.5 里出现的沙箱化嵌入原语与 Simple、Advanced 双模式,说明项目组已经选定了这条路线,也提前放出了一半的治理工具。但目录扩张的速度明显快过治理工具的建设速度:十天两百多条,而权限模型还在路上。
三个比形容词更硬的观察点
对使用者来说,判断一个平台化路线是否成立,不必等发布说明里的形容词,看三件事就够了。
第一,v0.22.0 的整理版说明里,有没有插件权限清单、签名或存活门禁这类具体机制。官方对 Blender 插件的风险披露说明它清楚问题在哪,接下来要看它是不是把这份清楚变成默认约束,而不只是文档里的一段提醒。
第二,目录的增速会不会在权限模型落地之后放缓。从 9 到 228 用了十天,如果下一个月继续保持这个斜率、治理机制却仍然缺位,扩张就会从优势变成风险敞口。
第三,核心的代码量与依赖面是否继续收缩。九月那次自我重构砍掉 34.4% 的非测试源码,是瘦核心的一次预演;如果核心继续变薄,用户实际拿到的产品就是「薄核心加目录」,此时目录的可靠程度就等于产品的可靠程度。
开源智能体的竞争,从模型权重打到承载层,现在进入第三段:谁能把目录做成一套可验证的信任体系。核心可以很薄,但第 229 条插件由谁负责,必须有一个能回答的名字。