执行不是确认,验证不是可选,报告不是敷衍
AI Agent常见错误:
Execute-Verify-Report 三步法从根源解决。
步骤含义反例正例Execute实际执行"我会去做的""已执行: date 输出 13:17:23"Verify验证结果"应该成功了""验证:文件存在,大小2.3KB"Report完整汇报"搞定了""执行→验证→结果→下一步"
markdown
**任务**: [任务描述]
🔧 **Execute**
```bash
[实际执行的命令]
输出: [粘贴实际输出]
✅ Verify
📋 Report
text
### 方式2:脚本辅助
```bash
# 开始任务
evr start "修复安全漏洞"
# 执行步骤
evr step "修改配置文件权限"
# 自动提示: 请运行验证命令
# 验证步骤
evr verify "chmod 600 ~/.openclaw/openclaw.json"
# 自动检查: 文件权限是否为600?
# 结束任务
evr done
# 生成完整EVR报告
javascript
// 最多重试3次
for (let attempt = 1; attempt <= 3; attempt++) {
const result = execute(command);
if (verify(result)) {
report("✅ 成功", result);
break;
}
if (attempt === 3) {
report("❌ 连续3次失败,停止重试", result);
escalate("需要人工干预");
}
}
bash
# 错误示例(静默失败)
rm important-file.txt # 如果文件不存在,命令返回0但无事发生
# EVR正确做法
if [ -f important-file.txt ]; then
rm important-file.txt
# 验证: 文件是否确实被删除
if [ ! -f important-file.txt ]; then
echo "✅ 验证通过: 文件已删除"
else
echo "❌ 验证失败: 文件仍存在"
fi
else
echo "⚠️ 文件不存在,无需删除"
fi
❌ 错误方式:
text
用户: 删除文件
AI: 好的,我会删除的。 [然后没做]
✅ EVR正确方式:
text
🔧 Execute
$ rm /path/to/file.txt
[无输出,命令成功]
✅ Verify
$ ls -la /path/to/file.txt
ls: cannot access '/path/to/file.txt': No such file or directory
验证结果: ✅ 文件确实已删除
📋 Report
- 结果: 文件删除成功
- 数据: 删除了1个文件
- 验证: 文件不存在确认
- 下一步: 进行下一个任务
❌ 错误方式:
text
用户: 提交更改
AI: 好的,已提交。 [实际有未提交文件]
✅ EVR正确方式:
text
🔧 Execute
$ git add -A
$ git commit -m "fix: 修复安全问题"
[master a1b2c3d] fix: 修复安全问题
2 files changed, 15 insertions(+)
✅ Verify
$ git status
On branch master
nothing to commit, working tree clean
$ git log --oneline -1
a1b2c3d fix: 修复安全问题
验证结果: ✅ 提交成功,工作区干净
📋 Report
- 结果: Git提交成功
- 数据: 2个文件,15行改动
- 提交: a1b2c3d
- 验证: working tree clean
- 下一步: 推送到远程
markdown
## Execute-Verify-Report (EVR) 铁律
**所有任务必须遵循:**
1. **Execute** — 实际执行,不只是确认
- 必须看到命令输出
- 必须等待命令完成
- 必须捕获返回码
2. **Verify** — 验证结果正确
- 文件操作: 检查文件存在/内容/权限
- 网络操作: 检查响应状态码
- 系统操作: 检查进程/服务状态
- 数据操作: 检查数据准确性
3. **Report** — 汇报做了什么和验证结果
- 不要只说"完成了"
- 要说"完成了什么,如何验证的"
- 包含具体数据
**禁止:**
- ❌ "我会做的" ≠ 做了
- ❌ "完成了"但没有验证
- ❌ 最多重试3次,之后必须停止
- ❌ 静默失败
**违反EVR = 严重错误,立即纠正**
操作类型验证命令通过标准文件创建ls -la file文件存在文件删除ls file 2>&1文件不存在文件修改cat file / md5sum内容/哈希匹配权限修改stat -c "%a" file权限值正确Git提交git status / git log干净/提交存在网络请求curl -I urlHTTP 200服务启动systemctl status svcactive (running)进程运行pgrep process返回PID
markdown
✅ [任务名] 完成
**执行**: [命令]
**验证**: [方法] → [结果]
**数据**: [具体数字]
**下一步**: [行动]
MIT
Created by 小白 🤍
基于 STANDING-ORDERS 核心原则
"执行不是确认,验证不是可选,报告不是敷衍"