provider-key-manager
$
npx mdskill add aAAaqwq/AGI-Super-Team/provider-key-managerRotate API keys instantly across all agents with one command.
- Eliminates manual edits to over fifteen configuration files.
- Depends on OpenClaw's ${ENV_VAR} syntax for key injection.
- Audits and migrates hardcoded keys to a single environment variable.
- Executes a unified rotation command that updates every agent automatically.
SKILL.md
.github/skills/provider-key-managerView on GitHub ↗
---
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 需要:
1. 修改 `openclaw.json` 全局配置
2. 修改 13+ 个 agent 的 `models.json`
3. 更新 `pass` 存储
4. 重启 Gateway
5. 逐个验证
**一个 key 要改 15+ 处,漏改一个就报错。**
## 方案:环境变量统一引用
OpenClaw 原生支持 `${ENV_VAR}` 语法引用环境变量:
```json
// 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. 审计当前配置
```bash
python3 ~/clawd/skills/provider-key-manager/scripts/manager.py audit
```
扫描所有 agent 的 models.json,报告:
- ✅ 使用 `${ENV_VAR}` 引用的 provider
- ❌ 硬编码 apiKey 的 provider
- ⚠️ key 值不一致的 agent
### 2. 迁移到环境变量模式
```bash
python3 ~/clawd/skills/provider-key-manager/scripts/manager.py migrate [--provider zai] [--dry-run]
```
自动执行:
1. 将 `openclaw.json` 中的硬编码 key 移入 `env.vars`
2. 替换 provider apiKey 为 `"${ENV_VAR}"`
3. 从各 agent models.json 中**删除** apiKey 字段(继承全局)
4. 更新 `pass` 存储
5. 生成迁移报告
### 3. 更换 API Key
```bash
python3 ~/clawd/skills/provider-key-manager/scripts/manager.py update <provider> <new-key> [--base-url <url>]
```
一条命令完成:
1. 更新 `env.vars` 中的 key
2. 如有 agent 仍硬编码,同步更新
3. 更新 `pass` 存储
4. 测试 key 可用性
5. 输出重启命令
### 4. 测试 Key 可用性
```bash
python3 ~/clawd/skills/provider-key-manager/scripts/manager.py test <provider>
```
对指定 provider 发送最小请求,验证 key 有效。
### 5. 查看 Provider 总览
```bash
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 | `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,继承全局)
```
## 注意事项
1. **env.vars 中的 key 是明文** — 但 openclaw.json 已在 .gitignore,不会被 commit
2. **per-agent models.json 仍需保留 provider 结构** — 只是删除 apiKey 字段
3. **迁移后换 key 流程**:`manager.py update zai <new-key>` → Gateway 重启 → 完成
4. **回退方案**:迁移前自动备份所有 models.json 到 `/tmp/provider-key-backup/`
More from aAAaqwq/AGI-Super-Team
- a-fund-monitor监控 A 股基金实时估值与盘后净值,自动判断交易日并生成提醒或分析。
- account-executive>
- add-leadAdd company/person/relationship to CRM
- adsComprehensive ad account analysis across all major platforms (Google, Meta
- ads-agentAI-агент для управления Facebook рекламой. Вызывай для анализа, оптимизации, создания кампаний и отчётов.
- afrexai-compliance-auditRun internal compliance audits against major governance and security
- afrexai-personal-financeComplete personal finance system — budgeting, debt payoff, investing, tax optimization, net worth tracking, and financial independence planning. Use when managing money, building wealth, paying off debt, planning retirement, or optimizing taxes. Zero dependencies.
- after-salesUse when managing post-purchase experience, building customer loyalty, or increasing repeat purchases
- agent-contactsAI agent contacts — add, list, remove MCP contacts. Use when someone gives an agent URL, or when you need to view/remove contacts.
- agent-model-switcher批量查看和切换子 agent 的模型配置,用于统一调整多 agent 的 provider/model 设置。