1. 基本信息
| 项目 | 内容 | 数据来源 |
|---|---|---|
| 名称 | soul-guardian(所属合集仓库自述名称为 “ClawSec”,故单列记录) | GitHub |
| 作者/维护者 | Prompt Security(网络安全公司 SentinelOne 旗下组织账号) | GitHub API |
| 来源链接 | https://github.com/prompt-security/clawsec/tree/main/skills/soul-guardian | — |
| 许可证 | AGPL-3.0-or-later(skill.json 与仓库根目录均明确声明) |
GitHub API + 仓库核对 |
| GitHub Stars / Forks | 所属仓库 1,077★ / 114 forks(该数字属整个 16 个技能的合集,不代表本技能个体热度,仅供了解仓库规模) | GitHub API |
| 子技能自身证据 | 2 位工程师(davida-ps、abutbul)持续提交,最近一次实质更新为 2026-06-23 | GitHub API(按路径查询提交历史) |
| 最新版本 | v0.0.9(skill.json/SKILL.md frontmatter) |
仓库文件 |
| 安装方式 | Vercel Skills CLI 一条命令、随 ClawSec 套件捆绑安装,或独立签名校验安装(见第 10 章) | 官方 README/SKILL.md |
2. 功能介绍与亮点
soul-guardian 保护 agent 工作区里的核心指令文件(SOUL.md、AGENTS.md 等)免受未授权改写:为每个受保护文件建立 SHA256 基线,检测到内容漂移时按策略执行“自动恢复到批准版本 + 告警”或仅“告警”,并把每次操作写入哈希链式的防篡改审计日志。
主要亮点:
- 默认无网络行为:
skill.json显式声明network_egress: "None by default";核心脚本(约 1,000 行)逐行核对未发现任何网络请求代码,纯本地文件操作 - 诚实的自我披露式安全元数据:
skill.json主动列出三条“operator_review”提醒——恢复模式会覆盖文件、状态目录含敏感快照需限制权限、任何计划任务均为可选而非默认开启 - 拒绝处理符号链接 + 原子写入:防止典型的文件系统层面绕过手法
- 官方安全厂商出品:Prompt Security 为 SentinelOne(纽交所上市网络安全公司)旗下组织,SentinelOne 官方博客于 2026-02-16 发文专门介绍该项目
- 文档诚实列出局限:明确写出“无法证明是谁做的改动”“无法防御攻击者同时控制工作区与状态目录”,不过度承诺
3. 适用场景
固定分类:安全与合规
面向长期或生产环境中运行 OpenClaw 类 agent、担心其核心身份/指令文件(无论因外部提示注入还是意外覆写)被篡改的用户与安全工程师;默认策略同时保护 AGENTS.md,对使用该约定的 agent 生态用户也有直接价值。
4. 跨 Agent 兼容性
- OpenClaw:原生支持,默认保护文件命名(
SOUL.md/HEARTBEAT.md等)直接对应 OpenClaw 工作区惯例,可选接入openclaw cron或 macOSlaunchd定时检测 - Codex:默认策略保护
AGENTS.md(Codex 生态通行的 agent 指令文件约定),但官方材料未点名 Codex,判定为格式兼容、未获明确验证 - Claude Code:未验证——默认策略不含
CLAUDE.md;代码证实保护清单存于可编辑的本地 policy 文件,理论上可手动加入CLAUDE.md,但官方文档未给出该场景的示例 - Hermes Agent:未验证;仓库内另有专属组件(
hermes-attestation-guardian等)服务 Hermes,soul-guardian 官方材料未提及对 Hermes 的支持
5. 推荐理由
官方安全厂商出品,以纯本地、无网络外发的方式为 agent 核心指令文件提供篡改检测与自动恢复,填补 OpenClaw 等 agent 生态已被安全媒体披露的提示注入/身份文件篡改风险。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | 出自 SentinelOne 旗下安全厂商 Prompt Security 的官方仓库,SentinelOne 官方博客专文介绍,且有独立第三方在 GitHub Issue 中反馈使用体验;但作为 16 个子技能合集中的一员,其自身提交历史仅 2 位工程师,合集整体 1,077★ 不代表本技能个体热度 |
| 可用性 | 8 | 仅依赖 python3,三步快速上手(init → enable-monitoring → 接入 HEARTBEAT.md),文档完整(SKILL.md + README + CHANGELOG)且自带单元测试,近期仍有实质性维护提交 |
| 安全性 | 9 | 见下方安全检查清单 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令与权限范围 | 仅需 python3;核心操作是本地文件哈希比对/恢复/写审计日志,不涉及提权或任意 shell 执行 |
| ② 运行时联网外发 | skill.json 显式声明“默认无网络外发”;逐行核对主脚本未发现任何网络请求代码 |
| ③ API Key/凭据存储 | 不需要任何 API Key;可选的定时调度仅涉及本机 cron/launchd 配置,无凭据存储需求 |
| ④ 可疑指令 | 未发现提示注入或隐藏指令;skill.json 主动列出三条风险提醒供使用者审阅 |
| ⑤ 作者/组织信誉 | Prompt Security 为 SentinelOne(纽交所上市网络安全公司)旗下组织账号,无造假迹象 |
| ⑥ License | AGPL-3.0-or-later,skill.json 与仓库根目录均明确声明 |
| ⑦ 最近维护 | 该子技能目录最近一次实质提交为 2026-06-23,距今约五周,处于活跃维护窗口内 |
综合评分 = 三项均值 = 8.67
7. 跟同类 Skills 相比的优势
| Skill | 定位 | 与 soul-guardian 的差异 |
|---|---|---|
| clawsec-suite(同一仓库,此前已单独收录) | “技能的技能”元安装器,负责发现、签名校验与编排整个 ClawSec 套件的部署 | 定位是安装/编排层;soul-guardian 是套件中具体执行“文件漂移检测与自动恢复”的独立组件,两者可分别单独安装,职责互不重叠 |
| skill-scanner(Cisco AI Defense 出品) | 装机前静态扫描,在 skill 安装之前检测其代码是否含恶意/风险模式 | 检测时间点在“安装前”、检测对象是“待装的第三方 skill 代码”;soul-guardian 检测时间点在“安装后持续运行时”、检测对象是“agent 自身的核心指令文件是否被篡改”,二者互补而非重叠 |
| 传统主机文件完整性监控工具(如 Tripwire/AIDE) | 通用操作系统级文件完整性监控,需独立部署与规则配置 | soul-guardian 专为 agent 工作区文件设计,开箱即带 agent 生态语义(区分 SOUL.md/HEARTBEAT.md 等角色文件),无需额外配置通用 FIM 工具 |
8. 用户评价
该技能所属项目曾以 “Show HN” 形式发布于 Hacker News(发帖人 abutbul,2026-02-09),评论区收到用户 Yaelita 一条简短回应:“Nice one and so relevant these days with all the OpenClaw frenzy”(认可其在当前 OpenClaw 生态安全关注度上升背景下的相关性)。除此之外,该技能本身在第三方平台尚无具名的深度用户评价。
9. 其他补充
该仓库还有部分组件专门服务 Hermes/PicoClaw/NanoClaw 等平台的攻击面(如 hermes-attestation-guardian),以及一个面向社区的贡献反馈组件 clawtributor,本报告未单独收录。soul-guardian 自带演示脚本(demo.sh)可一键模拟“篡改 → 检测 → 恢复”全流程供试用。
10. 安装使用方式
方式一(推荐,Vercel Skills CLI):
npx skills add prompt-security/clawsec --skill soul-guardian -a openclaw -y
方式二(随套件捆绑): 安装 clawsec-suite 时若尚未安装 soul-guardian,会自动部署到 ~/.openclaw/skills/soul-guardian/。
方式三(独立签名校验安装): 从 GitHub Release 下载 checksums.json/发布包与签名文件,用 openssl 校验签名公钥指纹与内容哈希后再解压安装,脚本已内置于 SKILL.md。
安装后注意事项:
- 需先运行
soul_guardian.py init建立基线,再执行enable-monitoring并按需接入HEARTBEAT.md/openclaw cron/launchd才能形成持续监控,不初始化不会自动生效 - 建议将状态目录存放在工作区之外,避免攻击者同时控制工作区与状态目录导致防护失效
- 默认只保护
SOUL.md/AGENTS.md等 OpenClaw 惯例文件名,如需保护CLAUDE.md等其他文件需手动编辑本地 policy 配置
11. 注意事项
- 默认策略未覆盖
CLAUDE.md,Claude Code 用户需手动扩展 policy 配置才能获得同等保护,官方文档未提供该场景的示例 - “restore”模式会主动覆盖被判定为漂移的文件;若用户手动合法编辑了
SOUL.md却未执行approve命令,合法修改也会被覆盖,需配合审批流程使用 - 官方文档明确声明局限:无法证明“是谁”做的改动(actor 仅为尽力而为的元数据),也无法防御攻击者同时控制工作区目录与外部状态目录的情形
- 作为 16 个子技能合集中的一员,套件内其余组件(如自动化审计报送、依赖漏洞扫描)需要额外单独安装才能获得