OpenClaw v2026.5.20:Discord语音跟随和doctor拦截明文密钥


OpenClaw 2026.5.20版本发布,语音会话能跟着Discord用户换频道,doctor插件会主动拦截明文密码,Windows安装流程也修好了。更新主要围绕权限收窄、配置明确、登录方式扩展三个方向。

这次改版主要干了三件大事

整个版本的核心变动其实可以归结成三块。

第一块是Discord的语音功能现在会跟着你换频道,你从A频道跳到B频道,机器人也跟过去。
第二块是新加了一个叫doctor的检查工具,它会扫描你的配置文件里有没有明文的密码或者密钥,发现就报错提醒你。
第三块是Windows系统上装这个软件的过程终于不卡壳了,之前某些步骤会卡住或者报错,现在恢复正常。

这三块东西表面上看没啥关系,但它们背后有一个共同的逻辑链条。你要让机器人跟着你换频道,前提是机器人知道自己是谁、该听谁的指令。你要让doctor能抓到明文密码,前提是权限系统能把哪些文件该读、哪些脚本该跑分清楚。你要让Windows安装顺利跑完,前提是安装脚本里的每一步都确认自己有没有权限去修改系统。所以这三件事最后都指向同一个问题:权限边界和身份识别。

老的技能加载方式有安全漏洞所以被砍掉了

以前OpenClaw里有一种老的技能加载办法。系统里有一个叫SKILL.md的旧文件,还留着一套兼容路径,允许某个技能文件不用通过专门的读取工具就能被加载。这听起来有点绕,打个比方你就明白了。假设你家里请了一个管家,你告诉管家说,厨房里的菜刀只能由你亲手递给他才能用。但老版本里有一条隐藏规矩,说如果这把菜刀上贴了标签写着菜刀两个字,管家就可以自己从厨房拿。那万一坏人偷偷在厨房放了一把贴着菜刀标签的假刀呢?管家就直接拿起来用了。

这次更新把那条隐藏规矩彻底删掉了。以后任何技能文件都必须通过一个叫read tool的读取工具来加载,只有真正被验证过的技能执行程序才能自动获得运行许可。也就是说,管家再也不能自己从厨房拿任何东西了,每一把刀都必须你亲手递过去。这个改动看起来很小,但它堵住了一个很大的安全口子,因为以前黑客可以伪造一个SKILL.md文件塞进系统里,让机器人误以为那是合法技能直接跑起来。

Discord语音现在会跟着你换频道而且记得住你是谁

这次更新里对Discord语音的改造是最复杂的部分。以前机器人进了一个语音频道之后,你换到别的频道,它不会跟过去。现在它会跟着你跑。你从大厅跳到游戏房间,机器人三秒钟之内也跳过去。这个功能要跑通,得同时解决好几个问题。

第一个问题是频道检查。机器人不能随便进任何频道,它只能进那些被你提前设置成允许范围的频道。比如你只允许它进游戏频道和开会频道,那它就不会跳进闲聊频道。第二个问题是多用户交接。假设你和你的朋友同时在语音频道里,你走了但朋友还在,机器人要不要也跟着你走?新版的处理办法是,机器人会看当前频道里还有没有你配置文件里认定的授权用户,如果有,它先不动;只有当所有授权用户都离开了,它才跟着最后离开的那个人切换。第三个问题是状态恢复。如果网络突然断了,或者Discord服务器抽风,机器人重新连上来之后,会自己检查一遍你最后待的频道是哪个,然后自己钻回去。

这些东西听起来很技术,但你把它想象成一条导盲犬就好懂了。导盲犬会跟着主人走,但主人进了一家商店,商店门口写着导盲犬不能入内,那狗就在门口等着。主人和朋友一起逛街,主人上厕所去了,导盲犬不会直接跑掉,因为它知道主人的朋友也是被授权照顾它的人。主人和朋友都走了,导盲犬才跟着最后出门的那个人离开。网络断了相当于狗被人蒙上了眼睛,等眼睛重新睁开,狗会先闻一闻主人的味道,然后自己找回去。

语音会话里默认塞进了三份身份说明文件

这次更新里还有一个和语音相关的细节改动。当机器人进入一个实时语音会话的时候,它会默认往对话指令里塞进三份文件的内容。这三份文件分别叫IDENTITY.md、USER.md和SOUL.md。IDENTITY.md描述机器人自己的身份,比如我是谁、我能干什么、我的边界在哪里。USER.md描述用户的信息,比如你是谁、你有哪些权限。SOUL.md描述机器人的性格和回应风格,比如它应该用轻松的语气还是严肃的语气。

为什么要塞这三份东西呢?因为纯语音对话没有上下文。你对着机器人说帮我查一下天气,机器人得知道你是谁、你有什么权限、我该用什么口气回你。这三份文件相当于给机器人塞了一张小抄,上面写着你是谁、我是谁、咱们该怎么说话。当然如果你嫌吵或者嫌烦,新版也提供了一个配置开关叫voice.realtime.bootstrapContextFiles,你把它设成空数组,机器人就不塞这几份文件了。

这就像你新认识一个朋友,每次见面你都得重新自我介绍一遍,说我叫张三、我住哪个小区、我喜欢喝美式咖啡。时间久了你觉得烦,你就让介绍人每次见面之前先把你的名片塞给对方。这三份文件就是那张名片。

模型列表文档更新了因为底层推理引擎升级了

这次版本更新还顺手把底层的Codex推理引擎从旧版本升到了0.132.0。Codex是OpenAI出的一个可以让AI写代码的模型套件。底层引擎升级之后,应用服务器里显示的支持模型列表也变了,新版本加了一些模型进去,也去掉了一些老模型,所以开发团队刷新了文档。

这件事本身不大,但它说明了一个问题。机器人能干什么事情,很大程度上取决于它底下用的是什么模型。模型就像汽车发动机,不同的发动机有不同的马力、油耗和脾气。你给机器人换了一个新发动机,原来能跑的山路现在可能跑不了了,原来跑不动的高速现在可能嗖嗖跑。所以文档必须跟着更新,不然用户还照着老列表去选模型,选到一个已经不存在的选项,机器人就直接报错给你看。

这就像你修车的时候把发动机换了,修车师傅必须给你一本新的说明书,告诉你新的发动机最高转速是多少、加几号汽油、多久换一次机油。你不能还拿着老说明书去折腾新发动机。

新增了一个叫doctor的插件专门抓明文密钥

这次更新里加了一个全新的插件叫Policy。Policy插件干三件事。第一件事是做基于规则的频道合规检查,比如检查机器人有没有跑进不该进的频道。第二件事是提供一个叫doctor的命令,扫描你的代码和配置文件,找出来那些不应该出现的东西。第三件事是如果你觉得某些问题可以自动修,doctor可以尝试动手帮你修。

doctor最实用的功能是抓明文密钥。

什么叫明文密钥?就是你把密码、密钥、token这些本该藏好的东西直接写在配置文件里。比如你写了一个配置文件叫config.json,里面有一行password: 123456,doctor扫到这里就会报警告,告诉你哥们你把密码写出来了。以前这种事情得靠你自己眼神好使才能发现,现在机器人帮你盯着。

这个插件的工作方式你可以理解成物业公司的巡逻保安。保安每天晚上拿着手电筒在小区的楼道里照,发现哪家门口堆了纸箱子或者放了煤气罐,就贴一张小纸条在门上提醒你。如果你授权保安可以动手,他就直接帮你把纸箱子搬走。你不想让他动,他就只提醒不碰。

本地小模型模式现在可以按单个机器人配置了

以前OpenClaw里有一个全局开关叫localModelLean,打开之后整个系统里的所有机器人都切换到本地小模型模式。本地小模型跑得快、省资源,但是智商相对低一点。云端大模型聪明但是慢、花钱、还依赖网络。全局开关的问题在于,你一个机器人想用小模型省电,另一个机器人想用大模型写代码,全局一开全变小,全局一关全变大,很烦。

这次更新加了一个新选项叫agents.list.experimental.localModelLean。你不用动全局开关了,你可以在配置每个机器人的时候单独给它开小模型模式。比如你让扫地机器人用本地小模型,因为它只需要识别地上有没有垃圾这种简单任务。你让编程机器人用云端大模型,因为它要理解复杂的需求描述。各过各的日子,互不干扰。

这就像你家里有几盏灯,以前只有一个总开关,一关全关,一开全开。现在你给每个灯单独装了一个开关,客厅的灯用大灯泡,卧室的灯用小灯泡,书房的灯你想开就开想关就关,不用管别的灯。

xAI现在可以用设备码登录了不用弹浏览器窗口

xAI是马斯克的公司做的AI平台,它上面跑着Grok系列模型。以前你要用OpenClaw连xAI,必须通过OAuth授权流程,这个流程会在你电脑上弹出一个浏览器窗口,让你去xAI的网站点一下确认。这在你自己的电脑上没问题,但假如你把OpenClaw跑在一台远程服务器上,比如阿里云的虚拟机或者树莓派上,那台机器压根没有显示器,更弹不出浏览器窗口,你就没法完成授权。

新版加了一个叫设备码OAuth登录的方式。流程变成了这样。你在命令行里敲一个登录命令,屏幕上显示一个网址和一组八位数的设备码。你用你身边随便哪台能上网的机器,手机也行、平板也行、另一台电脑也行,打开浏览器访问那个网址,输入设备码,然后确认授权。授权完成之后,命令行那头自动就登录成功了。

这个设计特别适合那些没有图形界面的设备。比如你拿一个树莓派挂在客厅角落里跑机器人,树莓派没有屏幕没有键盘,你总不能接个显示器上去就为了点一下确认按钮。设备码登录就像你扫码登录微信一样,用你的手机去完成认证,设备本身不需要任何图形界面。

OpenRouter的模型路由规则现在可以按层覆盖了

OpenRouter是一个聚合平台,它把好几十个AI模型提供商的服务揉在一起,你通过一个接口就能调用各种模型。这次更新改的是OpenRouter的请求路由机制。以前你在OpenRouter里设置了一个全局的路由策略,比如优先用便宜的模型,那所有请求都走这个策略。但有时候你想让某个特别重要的任务用高质量模型,老版本做不到。

新版允许你在三个层面上覆盖路由策略。最底层是provider级别的params.provider设置,你可以在全局配置里指定默认用哪个模型供应商。中间层是模型级别的覆盖,你可以在调用某个具体模型的时候指定路由规则。最上层是单个机器人级别的覆盖,你可以在配置这个机器人的时候写死它只能用哪个供应商的哪类模型。三层的优先级是机器人大于模型大于全局。

你可以把它理解成公司里的请假审批。公司规定所有员工请假都要提前三天申请,这是全局规则。但技术部门自己规定程序员请假要提前五天,这是部门级别的覆盖。然后张三程序员自己有个特殊安排,他请假可以提前一天说就行,因为他是核心骨干,这是个人级别的覆盖。OpenRouter现在就是这套逻辑,最细的规则覆盖最粗的规则。

Windows安装流程里卡住的那些步骤全部修好了

最后说一个虽然技术含量不高但是很救命的事情。OpenClaw在Windows上安装的时候,以前有几个步骤经常会卡住或者报错。比如装到一半的时候脚本尝试去修改注册表,但Windows的权限系统弹了一个UAC确认窗口出来,安装脚本看不懂这个窗口就直接卡死了。又比如某个依赖包在Windows上的路径分隔符是反斜杠,但脚本里写的是正斜杠,导致找不到文件。

这次更新把Windows安装流程整个捋了一遍。开发团队去掉了那些需要弹窗确认的操作,改成在安装一开始就统一申请管理员权限。所有文件路径的处理都做了跨平台兼容,不管是正斜杠还是反斜杠都能认。还有一些依赖包的版本也锁死了,不会因为网络波动下载到不兼容的版本。

这件事给人的感觉就像你家楼道里的灯坏了半年,你每次晚上回家都得摸黑爬五层楼。这次物业终于派人来换了个灯泡,你突然觉得这个世界还挺美好的。虽然不是什么惊天动地的大功能,但是这种枯燥乏味的修复工作,恰恰是一个项目能不能长久用下去的关键。OpenClaw的开发团队在更新日志里自己也写了一句,依然热衷于枯燥乏味的修复工作。看到这句话你就知道,这帮人是真的在认真做东西。


总结

划几个重点快速把握这个版本的价值:

1.   Discord 语音进化:之前语音机器人可能只待在固定频道,现在它能跟随指定用户进出不同语音频道了,并且保留了 DAVE 协议加密恢复。这对于需要动态陪聊或监听的场景很实用。

2.   安全与权限收紧:之前 SKILL.md 可能有一些兼容性的宽松路径,现在强制必须通过 read 工具加载,只有真正的可执行文件才能自动授权。另外,新增的 Policy 插件(感谢 @giodl73-repo)可以让你用策略来检查频道合规性、doctor 发现问题并修复工作区——这正是枯燥但必要的修复工作。

3.   模型地位与上下文:在实时语音会话中,默认会注入 IDENTITY.mdUSER.mdSOUL.md 作为配置上下文。这意味着你的 AI 角色身份和用户画像能保持连贯,解释了为什么“意外情况”变少了——模型知道自己是谁、在跟谁说话。

4.   Windows 安装恢复:你提到 Windows 安装已恢复正常,说明之前某个依赖或路径问题在这个版本中被解决。

5.  额外亮点
    -   xAI / Grok 现在支持设备码 OAuth,在远程或无头机器上也能登录授权。
    -   OpenRouterprovider 路由策略现在可以正确传递参数了。
    -   本地瘦模型模式 支持按 agent 单独开启,不必全局生效。

关于“枯燥乏味的修复工作”:从提交记录看,确实如此——移除旧的兼容路径、限制 skill 加载、边界协调、文档刷新……这些不性感但极其重要的稳定性工作,恰恰是很多项目忽略的。OpenClaw 团队(特别是 @fuller-stack-dev 连续贡献多个 Discord 相关修复)在这个版本里做得很扎实。

如果你想升级,注意那条破坏性变更:旧的 skill 文件必须改用 read 工具加载,否则可能不工作。建议先跑一遍新增的 doctor 检查。