AI已经接管了写代码的任务,但验收代码的重担依然压在人类身上。AI生成的代码是否正确?AI不负责,必须由开发者逐行审查。这正是许多开发者的瓶颈所在。
最近,Anthropic将验证机制引入了工作流。他们让Claude在提交代码前执行四道检查:代码审查以发现Bug,简化以清理冗余实现,端到端验证以确保功能正确,以及设计检查以确保视觉一致性。7月22日,Claude Code团队公开了这套“验证循环”。简单来说,Claude写完代码后,会先自行找错,修复后再交给你。这标志着AI从“会写代码”进化到了“会检查自己写的代码”。
Anthropic将这种机制命名为“验证循环”。它是一个迭代过程,Claude检查并尝试修复自己的工作。这改变了智能体工作的闭环。过去是“收集上下文 -> 执行动作 -> 人工检查”。现在,这条线被拉长为“收集上下文 -> 执行动作 -> 自动验证 -> 修复 -> 再验证”。检查和修复被重新纳入循环之中。
Anthropic的官方智能体循环示意图展示了这一过程:提示进来后,Claude收集上下文、执行动作、验证结果。验证不过就打回重跑,通过才返回。有些检查Claude本来就会做,比如代码库中的确定性信号:类型检查器、代码检查器、运行测试和错误报告。它能读懂并顺手修复。真正麻烦的是另一类:界面改得对不对、用户流程顺不顺、改动是否埋下隐患……这些过去只能靠人工死盯,现在Anthropic的解法是将这些检查封装成“技能”,让Claude在每次任务中自动执行。
过去几十年,软件工程的所有流程——写需求、做规划、层层评审、开不完的会——本质上都是因为写代码太慢,工程师的时间太值钱。但当AI把写代码这一环变快、变便宜,这个前提就不复存在了。Claude Code团队的判断是:瓶颈没有消失,只是转移了。从“写代码”转移到了验证、代码评审、安全这些环节。代码生成得太快,新的问题变成了这些代码到底对不对,谁来维护,人还跟不跟得上审代码的节奏。
面对这个新瓶颈,Claude Code团队先在自己身上做了实验。他们每天使用的四个自查技能包括:代码审查,专审代码改动;简化,清理冗余实现;验证,做端到端验证;设计,核对视觉实现。这等于给自己配了个不知疲倦的审稿人。这4个技能不是凭空产生的。它们的底层,Claude Code已铺了一层现成的验证支持:内置的验证能运行应用观察变化,CLAUDE.md中写清楚构建和测试命令,它就照着执行;还有GitHub Actions,能在每次提交时自动进行多智能体审查。团队那4个技能,等于在这层通用地基上,又加了一道自己的工序。
如何编写一个验证技能?Anthropic的方法很简单:把你每次都要手动做的那一步,用大白话写下来,就当你在给一个第一天入职的新同事交代注意事项。如果你连这步检查该怎么描述都卡壳,可以先让Claude给一版通用最佳实践,再在上面改。检查也不一定非得是“感觉对不对”这种模糊判断。例如:任何删掉数据库字段却没配套数据迁移步骤的改动,一律打回。这是一条通用检查器永远抓不到,却是你项目专属的“土规矩”。凡是你一直靠手动死盯才守得住的红线,都值得写成一个循环。
写完技能怎么办?丢给skill-creator让它反过来采访你几句,或者干脆自己往.claude/skills/里扔一个Markdown文件。碰到那些你改不动的内置或插件托管的技能,也有应对办法:写一个外壳技能,让它先调原来的,再调你的验证。绕一下,照样把检查嵌进去。
验证不是一刀切,它有四种模式。检查封装成技能之后,触发方式有四种:独立(手动调用)、嵌入(随任务跑)、链式(多技能串成链自动跑)、PR级(每次提交自动过)。官方管中间这层跃迁,叫“从习惯到契约”。本来是“我每次都记得在简化后面补跑一次验证”的个人习惯,串成链之后,就变成“简化跑完,自动就调验证”的固定契约。整条链自己把开发循环走完,只在需要你拍板时才回来找你。链条拉得越长,可靠性越高,但官方特意嘱咐了一句:链式验证会实打实地烧token。所以别一上来就把所有检查都设成PR gate、每次提交必卡,正确姿势是先看它稳不稳,再一步步往上加。
四个技能背后,AI编程的竞争,正在从生成转向验证。Claude Code之父也给出过同样的判断。在强大模型能长时间自主运行的时代,自我验证是让模型跑得更久、结果更贴近你预期的关键。你不必守在一旁频繁盯着Claude,就能把更多活儿交出去。说白了,验证做得越扎实,智能体才敢放开了跑;跑得越久,人越省心。过去我们靠提示词,可它也有个天花板:只解决这一次的任务,下次还得从头再来。
这里先纠正一个常见的误解:Skill不是一段Markdown提示词。它是一个能力模块,里面装着指令、文件结构、脚本、工具调用、配置和一整套工作流程,是把团队的检查步骤、设计规范、踩过的坑,沉淀成一个随叫随到的包,Claude需要时自己去翻。更关键的是,Skill正在从Claude Code的一个特性,变成跨厂商的开放标准。GitHub Copilot、Cursor、OpenAI Codex、Gemini CLI都已经采用同一套格式。这意味着,你为团队沉淀的那些Skill,不会被锁死在某一家工具上,它会把团队的经验、规范、检查流程沉淀下来,变成一块能反复调用的能力。
这也引出这样一个扎心的现实:同一个Claude,不同团队用出来的效率,可能差出好几倍,造成这个差距不在模型,而在于工作流。你有没有把检查写成Skill,有没有搭起验证循环,有没有让智能体自己把反馈闭环跑通。说到底,智能体的能力,就是一道加法题:模型,加工具,加验证机制,加工作流程。模型这一项,各家越来越接近。真正拉开距离的是后面那三项,它们全掌握在用户手里。
当然,这篇博客所展示的,是AI辅助开发的流程优化,而非“AI已经能独立写软件”。它仍离不开工程师,也没法脱离人去做生产级交付。因此,它不是智能体要来抢人类工程师的饭碗,但方向已经很清楚了。过去,我们一直在教AI怎么写代码,现在要开始教它验证自己写得对不对。对于一个天天要用AI写代码的人来说,等到“下班前还得手动复查一遍”这件事终于能安心交给AI的那天,它才算真正开始替你扛活了。
