Self-Rationalization Guard:AI Agent 自我合理化防护完全指南
posts posts 2026-04-01T16:15:00+08:00OpenClaw AgentSkill 自我合理化防护指南,识别和反制 AI Agent 常见的偷懒、逃避和自我欺骗模式。技术笔记Self-Rationalization Guard, AI Agent, OpenClaw, 质量防护, 自我合理化Self-Rationalization Guard:AI Agent 自我合理化防护完全指南
一、项目概述
1.1 什么是 Self-Rationalization Guard
Self-Rationalization Guard 是 OpenClaw AgentSkill,核心理念是识别和反制 AI Agent 常见的偷懒、逃避和自我欺骗模式。当 Agent 即将跳过步骤、简化问题、或用"看起来对"替代"运行验证"时触发防护。
灵感源自 Claude Code Verification Agent 的 Rationalization Detection。
1.2 关键数据
| 指标 | 数值 |
|---|---|
| GitHub Stars | 11 |
| GitHub Forks | 12 |
| 协议 | MIT |
| 作者 | Arxchibobo |
| 类型 | OpenClaw AgentSkill |
1.3 核心定位
“你会想走捷径。识别这些冲动,然后做相反的事。”
不限于验证,适用于所有任务执行。
二、核心理念
2.1 问题的本质
AI Agent 在执行任务时,会本能地寻找最小阻力路径:
- 用"看起来对"替代"运行验证"
- 用"大概没问题"替代"实际测试"
- 用沉默或模糊表述替代"明确确认"
2.2 解决方案
不是惩罚这些冲动,而是识别它们并做相反的事:
| 冲动 | 反制行动 |
|---|---|
| 跳过麻烦的步骤 | 强制完成 |
| 用"大概"替代证据 | 提供具体证据 |
| 沉默代替沟通 | 主动明确确认 |
三、常见合理化借口及反制
3.1 执行类
| 你脑中的借口 | 真相 | 正确行动 |
|---|---|---|
| “代码看起来正确” | 读代码 ≠ 验证 | 运行它 |
| “大概没问题” | “大概"不是证据 | 验证它 |
| “这个要花太久了” | 不是你决定的 | 告知预计时间,然后做 |
| “先处理简单的部分” | 可能在逃避难点 | 先做最难的 |
| “我先看看代码再说” | 可能在拖延行动 | 直接跑命令 |
3.2 沟通类
| 你脑中的借口 | 真相 | 正确行动 |
|---|---|---|
| “用户大概知道了” | 沉默 ≠ 理解 | 明确确认 |
| “这个太明显不用说” | 对你明显不代表对用户明显 | 简短说明 |
| “等用户问了再说” | 被动等待 = 偷懒 | 主动提供 |
3.3 质量类
| 你脑中的借口 | 真相 | 正确行动 |
|---|---|---|
| “测试已经通过了” | 测试可能是自证循环 | 独立验证 |
| “这个 edge case 不太可能” | 生产环境什么都可能 | 处理它 |
| “重构太大了,先这样” | 技术债不会自己消失 | 至少记录 TODO |
| “文档/注释以后再补” | “以后” = 永远不会 | 现在就写 |
3.4 委托类
| 你脑中的借口 | 真相 | 正确行动 |
|---|---|---|
| “让 Worker 自己判断” | 你在逃避综合工作 | 理解后给精确指令 |
| “基于之前的研究” | Worker 看不到之前的上下文 | 提供完整信息 |
| “这个需要用户确认” | 可能你能自行决策 | 先想清楚再问 |
四、检测模式
4.1 三大红灯
当你遇到以下情况时,立即停下:
| 红灯 | 正确行动 |
|---|---|
| 如果你在写解释而不是运行命令 | 停。运行命令。 |
| 如果你在重复同一个思路但措辞不同 | 停。换个方法。 |
| 如果你在列"无法做"的原因 | 停。列"可以做"的方法。 |
4.2 自我检测问题
在每个任务完成前,问自己:
- 我有没有跳过任何"觉得应该做但嫌麻烦"的步骤?
- 我的验证是运行了命令还是只读了代码?
- 我有没有把"理解"的工作委托给别人?
- 我的"完成"标准是否足够严格?
- 有没有我"选择性忽略"的 edge case?
五、安装配置
5.1 通过 OpenClaw CLI 安装
openclaw skill install github:Arxchibobo/self-rationalization-guard5.2 手动安装
cd ~/.openclaw/workspace/skills/
git clone https://github.com/Arxchibobo/self-rationalization-guard.git self-rationalization-guard5.3 目录结构
self-rationalization-guard/
├── README.md # 主文档(本文)
└── SKILL.md # OpenClaw Skill 元数据六、使用方法
6.1 作为自查清单
在每个任务完成后,使用"自查清单"部分逐项检查:
- [ ] 我有没有跳过任何"觉得应该做但嫌麻烦"的步骤?
- [ ] 我的验证是运行了命令还是只读了代码?
- [ ] 我有没有把"理解"的工作委托给别人?
- [ ] 我的"完成"标准是否足够严格?
- [ ] 有没有我"选择性忽略"的 edge case?6.2 作为检测触发器
当你在思考过程中遇到"红灯"时,触发防护:
- 停下:停止当前的思维循环
- 识别:判断属于哪类借口
- 反制:执行对应列的"正确行动”
6.3 集成到工作流
适用于以下场景:
- Claude Code 任务执行
- OpenClaw Agent 工作流
- 任何 AI 辅助编程任务
七、原理分析
7.1 为什么 AI 会自我合理化
| 原因 | 说明 |
|---|---|
| 最小阻力路径 | 跳过验证比完整验证容易 |
| 上下文遗忘 | Agent 容易忘记之前的验证承诺 |
| 输出压力 | 快速产出看起来比正确产出更受重视 |
| 模糊标准 | “大概完成了"比"验证通过"更模糊 |
7.2 自我合理化的危害
- 代码质量下降:未经验证的代码进入生产
- 沟通缺失:用户不知道系统状态
- 技术债累积:“以后再补"变成永久债务
- 信任侵蚀:一次失败损害长期信任
7.3 防护机制设计
| 设计原则 | 说明 |
|---|---|
| 识别优先于惩罚 | 不是批评冲动,而是识别它 |
| 强制行动替代思考 | 用具体行动替代"大概正确” |
| 透明化标准 | 明确的"完成"标准而非模糊预期 |
八、适用场景
8.1 开发任务
| 场景 | 不用防护 | 使用防护 |
|---|---|---|
| 写代码 | 写完就提交 | 运行测试、验证边界条件 |
| Code Review | 读代码 | 运行 lint、实际测试 |
| 重构 | 改完就完 | 验证功能一致、性能不降 |
8.2 沟通任务
| 场景 | 不用防护 | 使用防护 |
|---|---|---|
| 状态更新 | “大概没问题” | 提供具体数据和证据 |
| 解释决策 | 模糊表述 | 明确前提和推导过程 |
| 询问确认 | 等用户来问 | 主动提供关键信息 |
8.3 委托任务
| 场景 | 不用防护 | 使用防护 |
|---|---|---|
| 给 Worker 指令 | “自己判断” | 提供完整上下文 |
| 交接工作 | “基于之前的研究” | 完整记录现状和原因 |
| 决策升级 | 问用户 | 先想清楚自己的建议 |
九、最佳实践
9.1 建立防护习惯
- 任务开始前:明确"完成"的定义
- 任务进行中:遇到红灯立即停下
- 任务完成后:逐项检查自查清单
9.2 设置检查点
# 任务:用户故事 [ID]
## 完成标准
- [ ] 代码编写完成
- [ ] 单元测试通过
- [ ] 集成测试通过
- [ ] 代码审查完成
- [ ] 文档更新
## 红灯检查
- [ ] 没有跳过任何验证
- [ ] 测试是运行的而非只读的
- [ ] 没有委托"理解"工作
- [ ] 完成标准足够严格9.3 团队协作
在团队中使用 Self-Rationalization Guard:
- 作为 Code Review 的检查项
- 作为任务验收的标准
- 作为知识分享的主题
十、常见问题
Q1: 这不是让 AI 变慢吗?
不是变慢,而是避免"看起来完成但实际没完成"导致的返工。一次做对比多次返工更快。
Q2: 什么时候可以跳过某些步骤?
只有当明确知道风险可控、有意选择、并记录了 TODO 时才可以。沉默地忽略不在此列。
Q3: 如何判断"完成标准"是否足够严格?
问自己:如果别人看我的交付物,能独立验证它是正确的吗?如果不能,标准不够严格。
Q4: 这个 Skill 和 Claude Code Verification Agent 有什么区别?
Verification Agent 专注于验证环节,Self-Rationalization Guard 覆盖更广——包括执行、沟通、质量、委托等多个维度的自我欺骗模式。
十一、项目信息
| 信息 | 内容 |
|---|---|
| 许可证 | MIT |
| 作者 | Arxchibobo |
| 类型 | OpenClaw AgentSkill |
| 灵感来源 | Claude Code Verification Agent |
相关链接
💻 GitHub:Arxchibobo/self-rationalization-guard
🤖 OpenClaw:openclaw/openclaw
📖 OpenClaw 文档:docs.openclaw.ai