Cli 导读

用 openclaw secrets 管理密钥:审计、配置、应用、重载

先跑 `openclaw secrets audit --check` 扫描明文密钥和未解析引用,再用 `configure` 交互式规划 provider 和凭证映射。应用计划时务必先用 `--dry-run` 验证,注意 exec 型 SecretRef 默认被拒绝,需加 `--allow-exec` 显式放行。

先讲这一页到底在解决什么

用 openclaw secrets 管理密钥:审计、配置、应用、重载

先跑 `openclaw secrets audit --check` 扫描明文密钥和未解析引用,再用 `configure` 交互式规划 provider 和凭证映射。应用计划时务必先用 `--dry-run` 验证,注意 exec 型 SecretRef 默认被拒绝,需加 `--allow-exec` 显式放行。

原文共 8 节,先看 Start Here 路径:/cli/secrets 查看官方原文

第一站

🧭 先记住这 4 个角色:巡查员、规划师、彩排员、换锁员

官方把它分成 reloadauditconfigureapply。别先背英文,把它们想成四个工种就顺了。

🔍

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 种麻烦东西

官方列得很细,但压成画面以后很好记。

📄

plaintext secret

像把总钥匙明晃晃贴在冰箱门上。谁路过都看得见。

🪫

unresolved ref

像抽屉标签写着“钥匙在这里”,结果拉开一看是空的。

🫥

precedence drift

像新钥匙柜明明已经摆好了,可旧口袋里那把旧钥匙还在偷偷先被拿去开门。

🗃️

legacy residue

像搬完家以后,旧纸盒、旧提醒条、旧 auth.json 角落里还留着残影。

第四站

📊 那些 statussummary、finding codes,不是在卖弄字段,而是在给你一张体检单

如果你把 JSON 输出看成体检报告,就不会嫌它冷冰冰。

status: clean | findings | unresolved

像医生先写一句总评:完全干净、发现问题、还是有些钥匙根本打不开柜子。

summary.plaintextCount

像数一数到底还有几把钥匙还被明文扔在桌面上。

REF_SHADOWED / LEGACY_RESIDUE

像报告上写明“旧钥匙抢着先开门”和“旧纸条没清掉”这两种常见病。

audit --check 退出码

官方说发现问题会返回 1,遇到打不开的 ref 会更严重地返回 2。像体检系统用不同颜色告诉你“有问题”和“关键问题”。

第五站

🧱 configure 不是一把梭地乱改,它其实分 3 步:选钥匙柜、挂标签、先试运行

这也是为什么它需要 TTY。因为你得坐在桌前,和规划师一起选。

1

provider setup first

像先决定家里装哪种钥匙柜:环境变量柜、file 柜、exec 柜,名字各叫什么。

2

credential mapping second

再把每把钥匙挂上标签:这一把属于 OpenAI,那一把属于 gateway.auth.token,那一把属于某个 agent。

3

preflight last

最后先在门口试一下,确认新标签真的能把门打开。

📌

一句话

先搭柜子,再挂钥匙,再试门锁。

第六站

🪤 --providers-only--skip-provider-setup 这些看起来绕口,其实是在说“今天只装柜子”还是“今天只搬钥匙”

官方不让这两个一起用,是有道理的。你不能一边说“只装柜子”,一边又说“跳过装柜子”。

--providers-only

像今天施工队只负责把钥匙柜装上墙,先不管每把钥匙具体挂哪。

--skip-provider-setup

像墙上的钥匙柜已经装好了,今天只做挂钥匙和对标签。

--agent ops

像别扫整栋楼,只去某个工位的小房间里整理它自己的钥匙盒。

--allow-exec

像有些钥匙柜不是普通抽屉,而是按一下会执行命令的保险箱。系统默认更谨慎,只有你明确点头才会去试。

第七站

🧪 apply --dry-run 和真正的 apply,差别就像“排练换锁”和“真的换锁”

这一段如果不讲清楚,最容易让人误以为 dry-run 只是“少输出点内容”。其实不是。

🎭

--dry-run

像整套流程彩排一遍:看新方案能不能开门,但不真的写文件、不真的把旧钥匙刮掉。

✍️

正式 apply

像开始真改门锁、真更新账本、真把旧明文残影清走。

🚫

exec 计划默认挡住

如果计划里有 exec SecretRef,而你没显式带 --allow-exec,正式施工会直接拦下,不让你稀里糊涂动高风险柜子。

📌

一句话

dry-run 是先演,apply 才是真换。

第八站

🚚 apply 真正在搬哪些地方?就是几本最常藏钥匙的账本

官方列出了它可能更新的文件。把它想成“搬钥匙时会翻哪些抽屉”就行。

openclaw.json

像总账本。很多大门钥匙的目标位置都写在这里。

auth-profiles.json

像工位分账本。某些 provider 的小钥匙会挂在这里。

legacy auth.json / .env

像旧柜子和旧口袋。搬完家后,系统会尽量把这些地方的旧钥匙痕迹擦掉。

没有回滚备份

官方特地说不会再额外留一份“装着旧明文钥匙”的回滚包。因为那等于又复制了一份敏感东西。它靠的是前面严格彩排,加上尽量原子地落地。

第九站

🔄 reload 像“让值班门卫重新认一遍新钥匙柜,而且必须整套认完才换班”

很多人会以为改完文件就够了。官方把 reload 放进推荐流程,就是告诉你:运行中的那位门卫也得更新脑子里的钥匙表。

openclaw secrets reload

像通知门卫:“别再看旧值班本了,去重新把新柜子里的钥匙全认一遍。”

只在全成功时切换

如果中途有哪把钥匙没认出来,它不会半套旧、半套新地乱上岗,而是继续守着上一版能用的值班本。

warningCount

像门卫交班时说:“门都能开,但我还记下了几条提醒。”

🎈 一句话

reload 不是改配置,它是让正在值班的系统正式切到新钥匙图。

最后总结

🎈 把 openclaw secrets 压成一句话

openclaw secrets 就像一整套钥匙搬家工程:先巡查哪些钥匙乱放了,再设计新钥匙柜方案,先彩排一遍,正式换过去,清掉旧明文残影,最后让值班门卫整套重新认新钥匙。

如果你下一页只想继续看一页,我建议看 /cli/security。因为 secrets 关心“钥匙放得对不对”,security 关心“整栋楼还有没有别的门开太大”。