Config-Sentinel

为OpenClaw配置变更提供快照、验证与自动回滚的严格安全防护。

已扫描
适合谁
使用OpenClaw的开发者、需要管理多代理配置的运维人员
不适合谁
不熟悉命令行操作的用户、无需修改OpenClaw配置的一般使用者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @mike-alford/config-sentinel

Skill 说明

命令、参数、文件名以原文为准

Config-Sentinel

在修改 OpenClaw 配置时,请使用此技能。

这并非软性建议。配置更改属于高风险操作。一次错误的编辑可能导致代理路由、绑定、启动行为或整个多代理系统失效。

若配置完整性至关重要,请务必遵守此工作流程

该技能特别适用于:

  • 手动编辑主 OpenClaw 配置文件
  • 脚本化配置补丁
  • 代理/绑定/通道变更
  • 检查配置文件是否格式错误或不完整
  • 从损坏的配置更改中恢复

目的

Config-Sentinel 存在的原因是:写入成功 ≠ 配置健康。

一个配置文件可能:

  • 语法错误
  • 结构不完整
  • 静默截断
  • 内部不一致
  • 编辑器接受但运行时危险

该技能强制执行严格的安全部署流程:

  1. 修改前创建快照
  2. 修改后进行验证
  3. 验证失败立即回滚
  4. 当配置行为异常时执行健康检查

审批规则

未经用户明确批准,不得修改 OpenClaw 配置。

快照/回滚可防止配置损坏,但不能替代人工审批

正确顺序为:

  1. 获取允许修改配置的批准
  2. 运行 pre-change
  3. 执行修改
  4. 运行 validate
  5. 必要时执行回滚
  6. 清晰报告结果

核心工作流程

修改配置前:

scripts/sentinel.sh pre-change

修改配置后:

scripts/sentinel.sh validate

若验证失败:

scripts/sentinel.sh rollback

如需手动检查配置健康状态:

scripts/sentinel.sh health

不可妥协的原则

不要先修改配置,再寄希望于验证能挽救局面。

正确的顺序始终是:

  1. 创建快照
  2. 修改配置
  3. 验证
  4. 必要时回滚

保护范围

Config-Sentinel 设计用于捕获或缓解以下问题:

  • 无效 JSON
  • 配置写入不完整或被截断
  • 缺少代理条目
  • 绑定引用了不存在的代理
  • 通道/账户结构无效
  • 修改后缺失预期的配置文件
  • 补丁引入意外回归

同时创建恢复点,确保回滚操作简单可行。


功能特性

修改前快照

在任何配置修改前,创建:

  • 带时间戳的备份副本
  • 若配置目录在 Git 仓库中,则创建 Git 快照
  • 记录上次已知良好的版本,用于回滚

验证

配置修改后,执行以下验证:

  • JSON 可解析性
  • 必需的顶层键是否存在
  • 最小代理数量阈值
  • 绑定是否引用真实存在的代理 ID
  • 可选的必需工作区文件
  • 可选的特定提供者检查

回滚

若修改导致结构或验证失败,恢复到上次已知良好的配置快照。

健康检查

无需修改配置即可运行验证,评估当前配置健康状况。

严格姿态

该技能故意保持严格。配置更改是破坏正常运行的 OpenClaw 系统最常见方式之一。


默认值与覆盖设置

辅助脚本使用合理默认值,同时支持环境变量覆盖。

默认路径

  • 配置文件:~/.openclaw/openclaw.json
  • 快照状态目录:~/.openclaw/.sentinel

可选环境变量

  • CONFIG_SENTINEL_CONFIG_FILE
  • CONFIG_SENTINEL_DIR
  • CONFIG_SENTINEL_MIN_AGENTS
  • CONFIG_SENTINEL_REQUIRED_FILES
  • CONFIG_SENTINEL_VALIDATE_BINDINGS
  • CONFIG_SENTINEL_VALIDATE_TELEGRAM_TOKENS

这些设置使技能可适应不同环境,同时保持严格的默认行为。


最佳实践模式

当代理被要求修改配置时,安全做法如下:

  1. 执行 pre-change
  2. 应用配置更改
  3. 执行 validate
  4. 若验证失败,执行 rollback
  5. 明确告知用户配置是否健康

不要无声地修改配置而无恢复路径。

不要仅因写入成功就认为配置无误。

验证失败后,除非用户明确要求进行故障分析,否则不应继续操作。


通用示例

正确用法

scripts/sentinel.sh pre-change
# 编辑配置
scripts/sentinel.sh validate || scripts/sentinel.sh rollback

推荐的代理表述

  • “我在修改前创建了配置快照。”
  • “补丁应用后,验证通过。”
  • “验证失败,因此我已回滚至上次已知良好的配置。”

错误做法

  • 未创建快照直接编辑配置
  • 认为文件没问题,因为写入完成
  • 在解析错误或缺少代理引用后仍继续操作

注意事项

此技能不会持续运行。它是在高风险配置操作时使用的按需防护机制。

当配置完整性比速度更重要时,请使用它。

如果你即将修补或重写配置,并有跳过快照步骤的冲动——那正是你更不应该跳过的时候。


总结

Config-Sentinel 通过结合以下机制,提升 OpenClaw 配置更改的安全性:

  • 快照
  • 验证
  • 回滚
  • 健康检查

目标很简单:

让配置更改可恢复,而非灾难性故障。

安全说明

Config-Sentinel 会读取并复制本地 OpenClaw 配置,以便验证和恢复。脚本将环境变量提供的路径和选项作为命令行参数传递给 Python,而非内联插入 Python 源码,以防止恶意环境变量引发代码注入。

必要本地依赖:python3

可选依赖:git(用于配置目录快照);若无 git,仍会创建带时间戳的本地备份。

MA
@mike-alford

已收录 1 个 Skill

相关推荐