audit
像巡查员,拿着手电筒去看钥匙有没有乱放、有没有打不开的假钥匙、有没有新旧规则打架。
Cli 导读
先跑 `openclaw secrets audit --check` 扫描明文密钥和未解析引用,再用 `configure` 交互式规划 provider 和凭证映射。应用计划时务必先用 `--dry-run` 验证,注意 exec 型 SecretRef 默认被拒绝,需加 `--allow-exec` 显式放行。
先讲这一页到底在解决什么
先跑 `openclaw secrets audit --check` 扫描明文密钥和未解析引用,再用 `configure` 交互式规划 provider 和凭证映射。应用计划时务必先用 `--dry-run` 验证,注意 exec 型 SecretRef 默认被拒绝,需加 `--allow-exec` 显式放行。
第一站
官方把它分成 reload、audit、configure、apply。别先背英文,把它们想成四个工种就顺了。
audit像巡查员,拿着手电筒去看钥匙有没有乱放、有没有打不开的假钥匙、有没有新旧规则打架。
configure像规划师,跟你一起商量“哪些钥匙搬去哪个钥匙柜、用哪个 SecretRef、先改哪一批”。
apply --dry-run像正式换锁前先演习,看看新钥匙柜方案能不能跑通,但先不真的动门锁。
apply + reload先正式换过去,再让 Gateway 重新读一遍新钥匙,像门卫换班后重认所有门卡。
第二站
这段命令很多人会一眼跳过,但它其实是整页最该记住的主线。
openclaw secrets audit --check像先做一次全屋巡查,看看明文钥匙、坏钥匙、旧钥匙影子到底散在哪。
openclaw secrets configure像坐下来画搬家图:这把钥匙改放环境变量,还是 file provider,还是 exec provider。
openclaw secrets apply --from ... --dry-run像先带着新钥匙去空门上试一遍,确认不会卡住,但先不把旧钥匙真的扔掉。
openclaw secrets apply ... → reload先正式换锁,再让门卫重新读新钥匙柜。这样系统才会开始按新方案上班。
第三站
audit 到底在找什么?它像在家里搜 4 种麻烦东西官方列得很细,但压成画面以后很好记。
像把总钥匙明晃晃贴在冰箱门上。谁路过都看得见。
像抽屉标签写着“钥匙在这里”,结果拉开一看是空的。
像新钥匙柜明明已经摆好了,可旧口袋里那把旧钥匙还在偷偷先被拿去开门。
像搬完家以后,旧纸盒、旧提醒条、旧 auth.json 角落里还留着残影。
第四站
status、summary、finding codes,不是在卖弄字段,而是在给你一张体检单如果你把 JSON 输出看成体检报告,就不会嫌它冷冰冰。
status: clean | findings | unresolved像医生先写一句总评:完全干净、发现问题、还是有些钥匙根本打不开柜子。
summary.plaintextCount像数一数到底还有几把钥匙还被明文扔在桌面上。
REF_SHADOWED / LEGACY_RESIDUE像报告上写明“旧钥匙抢着先开门”和“旧纸条没清掉”这两种常见病。
audit --check 退出码官方说发现问题会返回 1,遇到打不开的 ref 会更严重地返回 2。像体检系统用不同颜色告诉你“有问题”和“关键问题”。
第五站
configure 不是一把梭地乱改,它其实分 3 步:选钥匙柜、挂标签、先试运行这也是为什么它需要 TTY。因为你得坐在桌前,和规划师一起选。
像先决定家里装哪种钥匙柜:环境变量柜、file 柜、exec 柜,名字各叫什么。
再把每把钥匙挂上标签:这一把属于 OpenAI,那一把属于 gateway.auth.token,那一把属于某个 agent。
最后先在门口试一下,确认新标签真的能把门打开。
先搭柜子,再挂钥匙,再试门锁。
第六站
--providers-only、--skip-provider-setup 这些看起来绕口,其实是在说“今天只装柜子”还是“今天只搬钥匙”官方不让这两个一起用,是有道理的。你不能一边说“只装柜子”,一边又说“跳过装柜子”。
--providers-only像今天施工队只负责把钥匙柜装上墙,先不管每把钥匙具体挂哪。
--skip-provider-setup像墙上的钥匙柜已经装好了,今天只做挂钥匙和对标签。
--agent ops像别扫整栋楼,只去某个工位的小房间里整理它自己的钥匙盒。
--allow-exec像有些钥匙柜不是普通抽屉,而是按一下会执行命令的保险箱。系统默认更谨慎,只有你明确点头才会去试。
第七站
apply --dry-run 和真正的 apply,差别就像“排练换锁”和“真的换锁”这一段如果不讲清楚,最容易让人误以为 dry-run 只是“少输出点内容”。其实不是。
--dry-run像整套流程彩排一遍:看新方案能不能开门,但不真的写文件、不真的把旧钥匙刮掉。
apply像开始真改门锁、真更新账本、真把旧明文残影清走。
如果计划里有 exec SecretRef,而你没显式带 --allow-exec,正式施工会直接拦下,不让你稀里糊涂动高风险柜子。
dry-run 是先演,apply 才是真换。
第八站
apply 真正在搬哪些地方?就是几本最常藏钥匙的账本官方列出了它可能更新的文件。把它想成“搬钥匙时会翻哪些抽屉”就行。
openclaw.json像总账本。很多大门钥匙的目标位置都写在这里。
auth-profiles.json像工位分账本。某些 provider 的小钥匙会挂在这里。
auth.json / .env像旧柜子和旧口袋。搬完家后,系统会尽量把这些地方的旧钥匙痕迹擦掉。
官方特地说不会再额外留一份“装着旧明文钥匙”的回滚包。因为那等于又复制了一份敏感东西。它靠的是前面严格彩排,加上尽量原子地落地。
第九站
reload 像“让值班门卫重新认一遍新钥匙柜,而且必须整套认完才换班”很多人会以为改完文件就够了。官方把 reload 放进推荐流程,就是告诉你:运行中的那位门卫也得更新脑子里的钥匙表。
openclaw secrets reload像通知门卫:“别再看旧值班本了,去重新把新柜子里的钥匙全认一遍。”
如果中途有哪把钥匙没认出来,它不会半套旧、半套新地乱上岗,而是继续守着上一版能用的值班本。
warningCount像门卫交班时说:“门都能开,但我还记下了几条提醒。”
reload 不是改配置,它是让正在值班的系统正式切到新钥匙图。
最后总结
openclaw secrets 压成一句话openclaw secrets 就像一整套钥匙搬家工程:先巡查哪些钥匙乱放了,再设计新钥匙柜方案,先彩排一遍,正式换过去,清掉旧明文残影,最后让值班门卫整套重新认新钥匙。
如果你下一页只想继续看一页,我建议看 /cli/security。因为 secrets 关心“钥匙放得对不对”,security 关心“整栋楼还有没有别的门开太大”。