先验证后信任 — 模型固定、回退与运行时安全验证
安全检查(12). 运行时安全核查的统一技能,包括模式版本的夹针、倒扣链验证、缓存悬浮检测和跨会场状态检查
功能概述
安全检查(12). 运行时安全核查的统一技能,包括模式版本的夹针、倒扣链验证、缓存悬浮检测和跨会场状态检查是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
safety-checks(安全)
统一的运行时安全验证能力,涵盖模型版本锁定、回退链校验、缓存陈旧性检测及跨会话状态检查。将 4 个细粒度能力整合为一个完整的安全验证套件。
触发时机:事前检验(pre-flight)或 HEARTBEAT
源能力:model-pinner、fallback-checker、cache-validator、cross-session-safety-check(来自 extensions)
安装
openclaw install leegitw/safety-checks
依赖项:leegitw/constraint-engine(用于强制执行集成)
# 安装含依赖项的完整套件 openclaw install leegitw/context-verifier openclaw install leegitw/failure-memory openclaw install leegitw/constraint-engine openclaw install leegitw/safety-checks
独立使用:模型锁定与缓存检查可独立运行;若需与约束强制执行(constraint enforcement)完全集成,则必须安装 constraint-engine。
数据处理方式:本能力仅执行本地操作。所有检查(模型版本比对、缓存时效性验证、文件锁检测)均为本地文件/元数据操作——不向任何模型、API 或外部服务发送数据。结果写入工作区中的 output/safety/ 目录。
解决的问题
AI 系统可能在无声中退化——模型版本漂移、缓存过期、会话累积状态。本能力可在问题引发实际故障前及时捕获:
- 模型锁定——确认你正在使用预期的模型
- 回退校验——确保降级模式路径存在且可用
- 缓存检查——识别陈旧或损坏的缓存数据
- 会话卫生——识别跨会话状态污染
核心洞察:运行时验证可捕获静态规则无法覆盖的问题。应检查系统实际运行状态,而不仅限于配置本身。
用法
/sc <子命令> [参数]
子命令
| 命令 | CJK | 逻辑 | 触发时机 |
|---|---|---|---|
/sc model |
機種 | model.version→pinned✓∨drift✗ | HEARTBEAT |
/sc fallback |
代替 | chain.exists→safe✓∨missing✗ | HEARTBEAT |
/sc cache |
快取 | response.age>TTL→stale✗ | HEARTBEAT |
/sc session |
会話 | cross_session.state→clean✓∨interference✗ | HEARTBEAT |
参数
/sc model
| 参数 | 是否必需 | 说明 |
|---|---|---|
| --expected | 否 | 预期的模型版本(默认:从配置中读取) |
| --strict | 否 | 对任意版本不匹配均报错 |
/sc fallback
| 参数 | 是否必需 | 说明 |
|---|---|---|
| --chain | 否 | 检查配置中指定的特定回退链 |
注意:该命令仅校验你的配置文件中是否存在回退配置项,不会发起网络调用,也不测试实际连通性。这是一次纯配置文件审计。
/sc cache
| 参数 | 是否必需 | 说明 |
|---|---|---|
| --ttl | 否 | TTL(秒),默认值为 3600 |
| --clear | 否 | 清除陈旧的缓存条目 |
/sc session
| 参数 | 是否必需 | 说明 |
|---|---|---|
| --check-state | 否 | 检查会话间是否存在状态泄露 |
| --clear-state | 否 | 清除已泄露的状态 |
配置
配置按以下优先级顺序加载:
.openclaw/safety-checks.yaml(OpenClaw 标准).claude/safety-checks.yaml(Claude Code 兼容性)- 默认值(内置)
核心逻辑
模型版本锁定
确保 AI 模型版本与预期配置一致。
工作原理:本能力将代理(agent)会话元数据中报告的模型版本(例如 API 响应或代理头中的模型名称)与配置文件中声明的预期版本进行比对。它不会调用模型 API 进行校验,而是直接读取代理运行时已暴露的版本字符串。
模型版本格式:{provider}-{model}-{version}-{date}
示例:
anthropic-opus-4-5-20251101openai-gpt-4-turbo-20250301google-gemini-2-pro-20260101
# .openclaw/safety-checks.yaml model: expected: "anthropic-opus-4-5-20251101" # 与提供方无关的格式 strict: true
| 条件 | 结果 |
|---|---|
| 版本匹配 | ✓ 已锁定 |
| 版本不同,strict=false | ⚠ 警告 |
| 版本不同,strict=true | ✗ 失败 |
回退链校验
仅配置审计——仅校验配置文件中是否存在回退条目。本命令不会发起网络调用,也不测试实际连通性。
检查你的 safety-checks.yaml 是否声明了回退配置:
# 此命令校验如下配置项是否存在: fallbacks: model: ["primary-model", "fallback-model", "cached"] storage: ["primary-path", "backup-path"]
| 检查项 | 校验内容 |
|---|---|
| 模型回退 | 配置中列出了替代模型 |
| 存储回退 | 配置中列出了备份路径 |
缓存陈旧性检测
防止使用过期的缓存数据:
| 缓存年龄 | TTL 级别 | 状态 |
|---|---|---|
| < TTL | 任意 | ✓ 新鲜 |
| > TTL | 非关键 | ⚠ 陈旧警告 |
| > TTL | 关键 | ✗ 陈旧失败 |
跨会话状态
检测会话之间的状态泄露:
| 检查项 | 具体检查的文件 | 风险 |
|---|---|---|
| 文件锁 | .openclaw/safety-checks.lock |
资源争用 |
| 工作区临时文件 | output/safety/temp-* |
磁盘耗尽 |
| 能力配置 | .openclaw/safety-checks.yaml 中的值 |
配置漂移 |
作用域说明:所有检查严格限定于本能力自身所使用的文件路径。本能力不会扫描目录,不会读取其他能力的配置文件,也不会访问上述明确列出路径之外的任何文件。
输出
/sc model 输出(已锁定)
[MODEL CHECK] Status: ✓ PINNED Expected: anthropic-opus-4-5-20251101 Actual: anthropic-opus-4-5-20251101 Model version matches configuration.
/sc model 输出(版本漂移)
[MODEL CHECK] Status: ✗ VERSION DRIFT Expected: anthropic-opus-4-5-20251101 Actual: anthropic-opus-4-5-20251201 WARNING: Model version has changed. This may affect behavior consistency. Action: Update expected version in settings, or investigate change.
/sc fallback 输出
[FALLBACK CHECK] Status: ✓ CONFIGURED Config file: .openclaw/safety-checks.yaml Fallback entries found: ✓ model.fallbacks: 3 entries defined ✓ storage.fallbacks: 2 entries defined Note: This validates config entries exist, not actual connectivity. ✓ Tertiary (memory) - 4GB free
/sc cache 输出
[CACHE CHECK] Status: ⚠ STALE ENTRIES FOUND Cache Statistics: Total entries: 156 Fresh (< 1h): 142 Stale (> 1h): 14 Critical stale: 0 Stale entries: - api_response_auth (age: 2h 15m) - user_preferences (age: 1h 30m) - ... Action: Run /sc cache --clear to remove stale entries.
/sc session 输出(无干扰)
[SESSION CHECK] Status: ✓ CLEAN No cross-session interference detected. Checks passed: ✓ No stale lock file (.openclaw/safety-checks.lock) ✓ No orphan temp files (output/safety/temp-*) ✓ Config file valid (.openclaw/safety-checks.yaml)
/sc session 输出(检测到干扰)
[SESSION CHECK] Status: ✗ INTERFERENCE DETECTED Issues found: 1. Stale file lock: File: .openclaw/safety-checks.lock Owner: PID 12345 (not running) Action: Remove lock with /sc session --clear-state 2. Orphan temp files (3): output/safety/temp-*.log Age: > 24 hours Action: Remove with /sc session --clear-state Run /sc session --clear-state to remediate.
集成
- 所属层级:Safety
- 依赖项:constraint-engine(用于强制执行集成)
- 被以下能力使用:constraint-engine(用于预操作安全检查)、governance(用于健康监控)
故障模式
| 条件 | 行为 |
|---|---|
| 无效的子命令 | 列出所有可用子命令 |
| 未找到配置文件 | 使用默认配置,并向用户发出警告 |
| 网络不可用 | 跳过远程检查,并发出警告 |
| 权限拒绝 | 报错并提供修复步骤 |
后续步骤
调用本能力后:
| 条件 | 操作 |
|---|---|
| 模型漂移 | 通知用户,建议更新配置 |
| 缺少回退配置 | 通知用户,建议完成配置 |
| 缓存陈旧 | 提示用户清理,或在启用自动清理时执行自动清除 |
| 会话干扰 | 清除状态并记录事件 |
工作区文件
本能力仅在声明路径内进行读写操作:
.openclaw/
├── safety-checks.yaml # 主配置文件(读取)
└── cache/
└── staleness.log # 缓存检查历史(读/写)
.claude/
└── safety-checks.yaml # Claude Code 配置(读取)
output/
└── safety/
├── model-checks.log # 模型版本历史(写入)
├── fallback-tests.log # 回退测试结果(写入)
└── session-state.log # 会话状态日志(写入)
注意:本能力不会读取 .claude/settings.json 或任何其他工具的配置文件。
HEARTBEAT 集成
这些检查应通过 HEARTBEAT 定期执行:
## P1:关键项(每次会话) - [ ] 模型版本是否已锁定? → /sc model - [ ] 会话状态是否干净? → /sc session ## P2:重要项(每周) - [ ] 回退链是否健康? → /sc fallback - [ ] 缓存是否新鲜? → /sc cache
示例
模型漂移检测
/sc model --strict [MODEL CHECK] Status: ⚠ VERSION DRIFT Expected: anthropic-opus-4-5-20251101 Actual: anthropic-opus-4-5-20260101 Model version changed. Review CHANGELOG for behavior changes.
缓存清理
/sc cache --clear [CACHE CHECK] Status: ✓ CLEANED Removed 14 stale entries from .openclaw/cache/ Freed: 2.3 MB
安全考虑
纯本地处理:所有安全检查均为本地文件和元数据操作。不向任何 LLM、API 或外部服务发送数据。“代理的模型”仅用于解释你的命令——不用于处理或传输你的数据。
确切访问的文件(读取):
.openclaw/safety-checks.yaml—— 本能力的配置.claude/safety-checks.yaml—— 替代配置位置.openclaw/cache/staleness.log—— 缓存检查历史(如存在)
确切写入的文件:
output/safety/*.log—— 检查结果与历史记录
本能力不会扫描目录,也不会读取其他能力的配置文件。
本能力不访问以下内容:
- 其他能力的配置文件
- 系统环境变量
.claude/settings.json或其他工具的配置- 上述三个配置路径以外的任何文件
- 网络资源或外部 API
本能力不执行以下操作:
- 向任何模型或外部服务发送数据
- 修改
output/safety/以外的文件 - 执行任意代码
数据处理原则:
- 除针对自身缓存/输出的
--clear操作外,其余检查均为只读 - 结果仅写入
output/safety/ - 无任何数据离开本地机器
关于模型版本的说明:
/sc model 命令将配置中声明的预期版本与代理运行时报告的模型版本字符串(例如会话元数据或 API 响应头中)进行比对。它不会调用 API 来验证模型——而是读取代理运行时已提供的信息。
来源说明:
本能力由 Live Neon(https://github.com/live-neon/skills)开发,并以 leegitw 账户发布至 ClawHub。二者指向同一维护者。
验收标准
-
/sc model验证模型版本与配置一致 -
/sc model根据 strict 设置,在版本漂移时发出警告或报错 -
/sc fallback验证配置文件中存在回退配置项 -
/sc cache检测出早于 TTL 的缓存条目 -
/sc cache --clear清除陈旧条目 -
/sc session检测跨会话状态泄露 -
/sc session --clear-state修复已发现的问题 - 所有检查均已集成至 HEARTBEAT
作为智能体能力整合(agentic skills consolidation)的一部分,由 4 个独立能力合并而成(2026-02-15)。
热门AI工具
相关专题
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题梳理XORM框架的入门路径,从框架定位、依赖安装、连接数据库到跑通第一个增删改查示例,讲清Engine初始化、日志开启与项目目录规划,并对比GORM等同类ORM的差异,帮助Go开发者建立整体认知。
0
2026.11.04
本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。
0
2026.11.03
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.7万人学习
共6课时 | 54.7万人学习
最新文章