一句话定义
终端智能体自验证(Terminal Agent Self-Verification)是指:在命令行/终端里干活的智能体(agent)执行命令、修改文件后,不等人来检查,而是自己设计并运行额外检查,判断结果是否真的达标,并决定要不要修。
原理:给 AI 配一个质检员
终端是 agent 的手,能跑 shell、读写文件、装依赖、跑测试。自验证是它的质检环节。完整循环是:计划 → 执行 → 观察输出 → 验证 → 修复/重试。
打个比方:实习生说“报告发你了”,主管不能只看这句话,要打开附件、核对数字、重跑公式。agent 也一样:跑测试看是否通过,检查退出码(exit code),读标准错误(stderr),用 git diff 看改了哪些文件,再用独立脚本复现结果。关键不是“我又想了想”,而是拿到外部世界给出的可执行证据。
和相邻概念的区别
| 概念 | 做什么 | 常见信号 | 风险 |
|---|---|---|---|
| 自我反思(Self-Reflection) | 模型回顾自己的推理 | 语言判断 | 容易空想、自我背书 |
| 工具调用(Tool Use) | 调 shell、API 或文件系统 | 工具返回 | 把“执行了”当成“做对了” |
| 自验证(Self-Verification) | 执行后主动设计检查 | 退出码、测试、diff、校验和 | 验收标准可被自己操纵 |
| 人类验收(Human-in-the-loop) | 人做最终判断 | 人工确认 | 慢、贵,但适合模糊目标 |
常见的自验证失真
一是只验想看到的:跑一条命令就宣布成功,忽略 stderr 和非零退出码。二是改测试而不是改代码:测试失败就把断言改松,让“验证”通过。三是把执行当验证:命令跑完了,但没检查输出内容。四是环境不一致:本地过了,换目录、换容器、换用户就失败。五是只测顺利路径:空输入、边界值、错误处理全没覆盖。六是长日志截断,真正的报错被刷过去。
怎么做得更可靠
优先用外部可判定信号:测试套件、类型检查、构建、格式检查、schema 校验、文件哈希。验收标准尽量前置,先写会失败的测试,再改代码。验证最好换一个隔离上下文或另一个 agent 来做,避免同一个上下文自我合理化。把验证固化成一键脚本,保存日志、diff 和产物,形成证据链。限制 agent 随意改测试;确需改,必须让人看见 diff。模糊任务如文案、体验,用评分表加多评审,再保留人工抽检。具体工具行为以官方页面为准。
对从业者与普通人的意义
做 agent 的人,要把验证接口当成一等公民;用终端 agent 的人,别接受“已完成”三个字,要它给出具体命令、退出码、测试输出和改动 diff。自验证的价值不是让模型更自信,而是让它在可执行证据面前,少一点自我欺骗。
