openclaw / config-safe
Install for your project team
Run this command in your project directory to install the skill for your entire team:
mkdir -p .claude/skills/config-safe && curl -L -o skill.zip "https://fastmcp.me/Skills/Download/2057" && unzip -o skill.zip -d .claude/skills/config-safe && rm skill.zip
Project Skills
This skill will be saved in .claude/skills/config-safe/ and checked into git. All team members will have access to it automatically.
Important: Please verify the skill by reviewing its instructions before using it.
安全地修改 OpenClaw 配置。先读取官方最新文档,理解配置结构和验证规则,预览变更,验证无误后再写入。**绝不直接修改配置**,所有变更都需要用户确认。触发词:"修改配置"、"更改配置"、"配置 openclaw"、"设置 openclaw"、"config"。
1 views
0 installs
Skill Content
---
name: config-safe
description: 安全地修改 OpenClaw 配置。先读取官方最新文档,理解配置结构和验证规则,预览变更,验证无误后再写入。**绝不直接修改配置**,所有变更都需要用户确认。触发词:"修改配置"、"更改配置"、"配置 openclaw"、"设置 openclaw"、"config"。
---
# Config Safe
安全地修改 OpenClaw 配置,避免写入无效配置导致 Gateway 无法启动。
## 核心理念
**配置修改是高风险操作。**
- OpenClaw 有严格的配置验证,**任何错误都会导致 Gateway 拒绝启动**
- 一旦配置损坏,Gateway 崩溃,**无法与你通信**,只能通过 CLI 修复
**核心原则:先预览,后验证,再确认,绝不直接修改。**
## 验证方法
在修改配置之前,可以使用以下方法验证配置是否有效:
### 方法 1: Schema 验证(静态检查)
获取配置的 JSON Schema,检查字段类型和必填项:
```bash
openclaw gateway call config.schema --params '{}'
```
**用途:**
- 检查字段名是否正确
- 检查值的类型是否正确
- 检查必填字段是否遗漏
**示例:**
```json
// Schema 返回结构
{
"schema": {
"type": "object",
"properties": {
"channels": { "type": "object" },
"agents": { "type": "object" }
},
"required": ["agents"]
}
}
```
### 方法 2: 模拟写入验证(动态检查)
使用 `config.patch` 尝试验证配置(**不会实际写入**,除非验证通过):
```bash
openclaw gateway call config.patch --params '{
"raw": "{\"channels\":{\"telegram\":{\"enabled\":true}}}",
"baseHash": "<current-hash>"
}'
```
**行为:**
- 如果配置无效 → 返回错误,**不写入**,Gateway 继续运行
- 如果配置有效 → 写入并重启 Gateway
**注意:** 验证通过后会实际写入配置,所以要先向用户展示预览并获得确认。
## 工作流程
### Step 1: 读取官方最新文档
在修改任何配置之前,先阅读相关文档:
```bash
# 配置总览和验证规则
cat /opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md
# 配置示例(常见场景)
cat /opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-examples.md
```
**必读内容:**
- 严格配置验证 (Strict config validation)
- 配置字段的类型和默认值
- 相关功能的具体配置示例
### Step 2: 获取当前配置(只读)
```bash
openclaw gateway call config.get --params '{}'
```
**只读取,不修改。** 保存返回的 JSON 和 hash。
### Step 3: Schema 验证(可选但推荐)
先用 schema 验证配置结构:
```bash
openclaw gateway call config.schema --params '{}'
```
检查你的变更是否符合 schema 要求。
### Step 4: 生成预览
向用户展示变更内容:
```
=== 配置变更预览 ===
要修改:
- channels.telegram.enabled: false → true
- channels.telegram.botToken: [已隐藏]
变更前:
{
"channels": { "telegram": { "enabled": false } }
}
变更后:
{
"channels": { "telegram": { "enabled": true, "botToken": "***" } }
}
⚠️ 风险检查:
- 字段名正确 ✓
- 类型正确 ✓
- botToken 必填 ✓
```
### Step 5: 用户确认
**必须明确获得用户确认后才继续:**
```
请确认以上变更?输入 "确认" 继续,或 "取消" 放弃。
```
### Step 6: 验证并写入
```bash
# 部分更新(推荐)
openclaw gateway call config.patch --params '{
"raw": "{\"channels\":{\"telegram\":{\"enabled\":true}}}",
"baseHash": "<hash>"
}'
# 全量替换(仅当你完全理解风险时使用)
openclaw gateway call config.apply --params '{
"raw": "<完整配置>",
"baseHash": "<hash>"
}'
```
**注意:** 写入成功后 Gateway 会自动重启。
### Step 7: 验证结果
重启后检查配置是否生效:
```bash
openclaw status
openclaw doctor
```
## 常见配置场景
### 添加/修改 channel
```json5
{
channels: {
telegram: {
enabled: true,
botToken: "your-token",
dmPolicy: "pairing"
}
}
}
```
### 配置 agent 身份
```json5
{
agents: {
list: [{
id: "main",
identity: {
name: "Samantha",
emoji: "🦥"
}
}]
}
}
```
### 配置 sandbox
```json5
{
agents: {
defaults: {
sandbox: {
mode: "all",
scope: "session"
}
}
}
}
```
## 错误处理
**如果配置写入后 Gateway 无法启动:**
1. 运行 `openclaw doctor` 查看具体错误
2. 运行 `openclaw doctor --fix` 尝试自动修复
3. 如果无法修复,手动编辑 `~/.openclaw/openclaw.json`
**常见错误:**
- `Unknown key`: 字段名拼写错误
- `Invalid type`: 值的类型不对
- `Missing required field`: 缺少必填字段
## 黄金法则
**在你这个技能中,永远不要:**
- ❌ 直接写入配置而不预览
- ❌ 直接写入配置而不确认
- ❌ 使用 config.apply 而不提醒用户风险
**你应该:**
- ✅ 先读取文档
- ✅ Schema 验证配置结构
- ✅ 生成变更预览
- ✅ 明确要求用户确认
- ✅ 优先使用 config.patch
## 安全检查清单
在确认配置变更前,确认用户已经:
- [ ] 看到变更预览(变更前 vs 变更后)
- [ ] 了解潜在风险
- [ ] 输入 "确认" 明确同意
---
**记住:Gateway 崩溃 = 通信中断 = 无法修复。预览 + 确认是唯一的防线。**