Openclaw Safety Guard — OpenClaw 安全卫士
v0.1.1OpenClaw 安全卫士(发布 slug:openclaw-safety-guard,内部代号:openclaw-watchdog):默认工作日 10:00 自动扫描 7 个维度(安全、记忆、心跳、定时任务、共享文件、通讯、代码规范),生成健康评分和可视化 Dashboard,通过飞书私信发送报告;没有 Cursor 也可直接看 dashboard 和下载 JSON。用户说「体检」「生成健康大盘」「跑安全检查」时手动触发。
0· 302·0 当前·0 累计
安全扫描
OpenClaw
安全
medium confidence该技能的文件、运行时指令和所需环境/二进制文件与本地 OpenClaw 健康检查器一致,会向飞书发布报告,但执行广泛的本地扫描并会写入 cron/config 状态并运行自动低风险修复 — 安装前请审查 setup 和 fix 脚本。
评估建议
该技能与其声明的目的(通过飞书通知的本地看门狗)一致,但它会:(1) 读取许多本地文件(LaunchAgents plist、exec-approvals、git 工作树、workspace 知识目录),(2) 写入 config.json 并注册计划 cron 任务,以及 (3) 可能执行自动低风险修复(chmod)。安装前:请审查 scripts/setup.py、scripts/fix_green.py、scripts/notify_feishu.py 和 scripts/upload_to_feishu_drive.py 的实际内容,以确认它们仅访问/传输您期望的数据,并且修复仅限于安全操作。考虑在安全环境中手动运行管道(python3 scripts/run_pipeline.py),同时取消设置 FEISHU 环境变量以首先检查输出。由于缺少源代码和主页,且扫描器标记了一个 base64 块,因此请谨慎行事:在授予其对您真实的飞书凭据和生产工作区的访问权限之前,优先进行手动代码审查或在隔离/测试环境中运行代码。...详细分析 ▾
✓ 用途与能力
名称/描述承诺了一个本地看门狗,扫描 7 个维度并通过飞书通知。请求的二进制文件(python3、node、npm)和环境变量(FEISHU_APP_ID、FEISHU_APP_SECRET)符合该目的(用于探针的 Python 脚本和 Node 前端构建;用于通知/上传的飞书凭据)。包含的脚本(scan_*.py、generate_dashboard.py、notify_feishu.py、upload_to_feishu_drive.py、setup.py)与声明的功能一致。
ℹ 指令范围
SKILL.md 指示 Agent 运行 setup.py(写入 config.json 并注册 cron 任务),然后运行 run_pipeline.py 执行探针,扫描代码、plist/launch agents、exec-approvals、git 仓库、memory/knowledge 目录和其他本地路径。这些读写操作在声明的看门狗范围内,但范围广泛(系统 LaunchAgents、exec-approvals 文件、workspace 文件)。Agent 还会从会话上下文获取安装者的飞书 open_id 以填充 notify.receive_id——这对于自动通知是预期的,但值得注意这是一个访问会话上下文的操作。
✓ 安装机制
没有外部安装规范(没有任意下载步骤);代码在 skill bundle 中提供,SKILL.md 指示运行本地 Python/Node 命令。这比从不受信任的 URL 获取可执行文件风险更低。SKILL.md 中没有引用安装程序或第三方 URL 下载。
ℹ 凭证需求
仅声明了 FEISHU_APP_ID 和 FEISHU_APP_SECRET,这些由飞书通知/云盘上传功能证明是合理的。然而,作为扫描的一部分,该技能将读取许多本地文件/路径(plist、exec-approvals、workspace 文件、git 仓库);虽然与目的一致,但这些是敏感的数据源。primaryEnv (FEISHU_APP_ID) 是合适的。
ℹ 持久化与权限
该技能的后安装设置写入 config.json 并在 .openclaw/state/cron/jobs.json 中注册 cron 任务,并指示重启 Gateway 以便每日扫描运行。它还包括自动的 'fix_green.py' 修复步骤(记录为仅限于 chmod 类低风险操作)。这些对于计划的看门狗是合理的,但构成了持久存在和修改本地状态/权限的能力,因此在授予运行时访问权限之前审计 setup 和 fix 脚本。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv0.1.12026/3/8
## openclaw-safety-guard v0.1.1 - 更新了 README.md 中的文档,使其更加清晰和完整。 - 没有代码或功能更改;仅修改了 README 内容。
● 无害
安装命令 点击复制
官方npx clawhub@latest install openclaw-safety-guard
镜像加速npx clawhub@latest install openclaw-safety-guard --registry https://cn.clawhub-mirror.com
技能文档
OpenClaw 安全卫士的 Clawhub 发布 slug 为 openclaw-safety-guard,内部技术代号仍为 openclaw-watchdog。它是 OpenClaw 项目全链路健康监控工具,默认工作日自动扫描 7 个维度,生成评分和可视化 Dashboard,通过飞书发送报告。没有 Cursor 也可以直接查看 dashboard 和下载 JSON 日志。
安装(clawhub)
clawhub install openclaw-safety-guard
安装完成后,Agent 立即执行 post-install 初始化:
python3 {baseDir}/scripts/setup.py --receive_id <当前对话 sender 的 Feishu open_id>
--receive_id 由 Agent 从当前会话 context 中自动获取(即安装者本人的 open_id),无需手动填写。
setup.py 自动完成:
- 写入
{baseDir}/config.json(绑定通知接收人) - 在
.openclaw/state/cron/jobs.json注册每日扫描任务 - 立即执行一次完整扫描,安装者 30 秒内收到第一份飞书健康报告
⚠️ 安装完成后重启 Gateway 使 cron 生效:openclaw gateway restart前置条件
FEISHU_APP_ID和FEISHU_APP_SECRET已配置在 Gateway plist 的EnvironmentVariables中- 本机已安装
node(用于首次 build frontend) - OpenClaw Gateway 已运行
触发方式
- 每日自动:安装时注册的 cron job,默认工作日 10:00(Asia/Shanghai)触发
- 手动触发:在飞书群对 Agent 说
体检、生成健康大盘、跑一遍安全检查
执行流程
触发
↓
Step 1: 执行 7 个探针扫描
python3 {baseDir}/scripts/run_pipeline.py
内部依次调用:
scan_heartbeat.py → 心跳监控维度
scan_standards.py → 代码规范维度
scan_memory.py → 记忆健康维度
scan_cron.py → 定时任务维度
scan_shared.py → 共享文件维度
scan_comm.py → 通讯配置维度
scan_security.py → 安全维度
↓
Step 2: 聚合评分(含与上次对比的 score_delta)
aggregate_watchdog.py
↓
Step 3: 生成可视化 Dashboard HTML(含飞书 bot 头像)
generate_dashboard.py
↓
Step 4: 按次归档到 data/logs/YYYY-MM-DD_HH-MM/
↓
Step 5: 飞书私信通知(含健康分、问题列表、Dashboard 本地路径)
notify_feishu.py
↓
Step 6: 自动执行 GREEN 安全修复(仅 chmod 类低风险操作)
fix_green.py
手动重发通知
python3 {baseDir}/scripts/notify_feishu.py
配置文件
config.json 由 setup.py 自动生成,参考 config.example.json 了解全部可配项。
关键字段:
| 字段 | 说明 |
|---|---|
notify.receive_id | 接收飞书通知的 open_id(setup.py 自动填入) |
notify.score_recovery_threshold | 分数提升超过此值时用「恭喜」语气(默认 3) |
memory.checks[cross_workspace_conflict].tracked_concepts | 自定义需要跨 workspace 监控一致性的概念 |
security.checks[knowledge_freshness].target | 知识库目录路径(可选,不填则跳过此检查) |
关键文件
| 文件 | 说明 |
|---|---|
data/latest_status.json | 本次扫描完整结果(含 score_delta) |
data/dashboard.html | 最新 Dashboard,浏览器本地打开 |
data/history.json | 问题生命周期历史(first_seen / resolved_at) |
data/logs/YYYY-MM-DD_HH-MM/ | 按次归档的原始扫描日志(最多保留 30 次) |
config.json | 运行时配置(由 setup.py 生成,不提交到 git) |
config.example.json | 配置模板(可提交到 git) |
错误处理
| 失败步骤 | 降级策略 |
|---|---|
| 探针执行报错 | 该维度显示 N/A,不影响其他维度 |
| Dashboard 生成失败 | 通知仍发出,不含 Dashboard 路径 |
| 飞书通知失败 | 打印 ERROR 日志,pipeline 不中断 |
| Bot info 获取失败 | Dashboard 显示默认缩写,不影响报告发送 |
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制