Agent Skills
› NeverSight/learn-skills.dev
› provider-key-manager
provider-key-manager
GitHub用于在OpenClaw多Agent环境中统一管理供应商API密钥。支持审计配置、迁移至环境变量模式、一键更换密钥、测试可用性及查看状态,解决硬编码导致的维护难题,确保密钥同步生效。
Trigger Scenarios
换key
更换key
provider key
API key 更换
模型key
key管理
供应商密钥
Install
npx skills add NeverSight/learn-skills.dev --skill provider-key-manager -g -y
SKILL.md
Frontmatter
{
"name": "provider-key-manager",
"description": "Provider key manager — rotate and sync API keys across multi-agent workspaces"
}
Provider Key Manager
一条命令更换供应商 API Key,全员生效,零遗漏。
痛点
OpenClaw 多 agent 架构下,每个 agent 都有独立的 models.json,更换一个 provider key 需要:
- 修改
openclaw.json全局配置 - 修改 13+ 个 agent 的
models.json - 更新
pass存储 - 重启 Gateway
- 逐个验证
一个 key 要改 15+ 处,漏改一个就报错。
方案:环境变量统一引用
OpenClaw 原生支持 ${ENV_VAR} 语法引用环境变量:
// openclaw.json
{
"env": {
"vars": {
"ZAI_API_KEY": "actual-key-value-here"
}
},
"models": {
"providers": {
"zai": {
"apiKey": "${ZAI_API_KEY}", // ← 引用环境变量,不硬编码
"baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4"
}
}
}
}
核心原则:
- API Key 只存在
env.vars中(单一真相源) - 所有 provider 的
apiKey用"${ENV_VAR}"引用 - 各 agent 的
models.json删除 apiKey 字段,继承全局 provider - 换 key = 改一个 env var + 重启,全员自动生效
触发词
换key, 更换key, provider key, API key 更换, 模型key, key管理, 供应商密钥
命令
1. 审计当前配置
python3 ~/clawd/skills/provider-key-manager/scripts/manager.py audit
扫描所有 agent 的 models.json,报告:
- ✅ 使用
${ENV_VAR}引用的 provider - ❌ 硬编码 apiKey 的 provider
- ⚠️ key 值不一致的 agent
2. 迁移到环境变量模式
python3 ~/clawd/skills/provider-key-manager/scripts/manager.py migrate [--provider zai] [--dry-run]
自动执行:
- 将
openclaw.json中的硬编码 key 移入env.vars - 替换 provider apiKey 为
"${ENV_VAR}" - 从各 agent models.json 中删除 apiKey 字段(继承全局)
- 更新
pass存储 - 生成迁移报告
3. 更换 API Key
python3 ~/clawd/skills/provider-key-manager/scripts/manager.py update <provider> <new-key> [--base-url <url>]
一条命令完成:
- 更新
env.vars中的 key - 如有 agent 仍硬编码,同步更新
- 更新
pass存储 - 测试 key 可用性
- 输出重启命令
4. 测试 Key 可用性
python3 ~/clawd/skills/provider-key-manager/scripts/manager.py test <provider>
对指定 provider 发送最小请求,验证 key 有效。
5. 查看 Provider 总览
python3 ~/clawd/skills/provider-key-manager/scripts/manager.py status
显示所有 provider 的 key 来源、baseUrl、模型列表。
Provider ↔ 环境变量映射
| Provider | 环境变量 | pass 路径 |
|---|---|---|
| zai | ZAI_API_KEY |
api/zai |
| xingjiabiapi | XINGJIABIAPI_KEY |
api/xingjiabiapi |
| xai | XAI_API_KEY |
api/xai |
| xingsuancode | XINGSUANCODE_KEY |
api/xingsuancode |
| moonshot | MOONSHOT_API_KEY |
api/kimi |
| minimax | MINIMAX_API_KEY |
api/minimax |
| xinyuan | XINYUAN_API_KEY |
api/xinyuan |
| boluobao | BOLUOBAO_API_KEY |
api/boluobao |
GOOGLE_API_KEY |
api/google-ai-studio |
架构图
┌─────────────────────────────────┐
│ openclaw.json │
│ ┌───────────────────────┐ │
│ │ env.vars │ │
│ │ ZAI_API_KEY: "xxx" │ ← 单一真相源 (Single Source of Truth)
│ │ XAI_API_KEY: "yyy" │ │
│ └───────────┬───────────┘ │
│ │ ${ZAI_API_KEY} │
│ ┌───────────▼───────────┐ │
│ │ models.providers.zai │ │
│ │ apiKey: "${ZAI_API_KEY}" │
│ │ baseUrl: "https://..." │ │
│ └───────────────────────┘ │
└─────────────────────────────────┘
│ 继承
┌─────────┼─────────┐
▼ ▼ ▼
agent/ agent/ agent/
main/ ops/ code/ ...
models.json models.json
(无 apiKey,继承全局)
注意事项
- env.vars 中的 key 是明文 — 但 openclaw.json 已在 .gitignore,不会被 commit
- per-agent models.json 仍需保留 provider 结构 — 只是删除 apiKey 字段
- 迁移后换 key 流程:
manager.py update zai <new-key>→ Gateway 重启 → 完成 - 回退方案:迁移前自动备份所有 models.json 到
/tmp/provider-key-backup/
Version History
- e0220ca Current 2026-07-05 21:48


