文章总结: 循环工程是一种构建AI编程工作流的方法,通过规划、行动、观察、调整的持续迭代过程,使AI智能体能够从错误中学习并改进代码。该方法强调小步行动、可靠验证和明确停止规则,包含测试驱动、编译器驱动等五种常见模式。文章提出从狭窄任务开始、明确验证方法、人类参与判断等最佳实践,帮助团队实现安全高效的AI辅助编程。 综合评分: 87 文章分类: AI安全,安全开发,解决方案,安全工具,技术标准
循环工程:教会 AI 智能体从自己的错误中学习
Rakesh Gohel Rakesh Gohel
ThinkInAI社区
2026年6月21日 17:08 上海
在小说阅读器读本章
去阅读
Rakesh Gohel · 2026-06-20T15:01:08.000Z
原文:https://x.com/rakeshgohel01/status/2068348429667824086
为什么最好的 AI 编程工具不会只猜一次,而是持续迭代
当你让 AI 写代码时,第一版草稿很少就是最终答案。真实的软件项目里有隐藏规则、不稳定的测试、遗留约定,以及最初需求里没人提到的边界情况。循环工程是一种构建 AI 编程工作流的实践:让系统先规划、再行动、观察结果,并不断调整,直到任务真正完成。它不把编程看作一次性的提示词请求,而是一个不断接收反馈的循环过程。
从核心上看,循环工程意味着围绕 AI 模型设计整个系统,而不仅仅是设计你喂给它的提示词。一个基础循环包含五个阶段:
- 意图:有人定义需要完成什么。
- 上下文:智能体收集相关代码、错误、日志和约束。
- 行动:智能体编辑文件、运行命令,或起草计划。
- 观察:系统捕获测试结果、编译器错误或运行时输出。
- 调整:智能体更新计划并重复循环。
这不同于提示词工程。提示词工程关注的是如何提出一个更好的问题。循环工程关注的是如何构建一个更好的过程:智能体可以使用哪些工具、它信任哪些验证结果,以及哪些规则告诉它什么时候该停止。
一个出色的第一答案,并不等于一次正确的最终变更。真正的信号往往出现在第一次行动之后:类型检查失败、缺少 import、测试失败,或者截图里的布局问题。循环工程会把这些信号纳入系统,而不是把它们当作后续清理工作。
核心循环如何运作
大多数智能体式编程工作流都遵循这个循环:
-
计划
:把请求拆解成具体步骤。
-
搜索
:找到相关的文件、符号、测试和约定。
-
修改
:做出最小且连贯的代码变更。
-
验证
:运行类型检查、测试、构建或 linter。
-
修复
:利用验证输出修正错误。
-
总结
:说明改了什么、哪些验证通过了,以及还存在哪些风险。
力量并不来自某一个单独步骤。真正的力量在于闭合循环。一次测试失败不只是一条错误信息;它是新的上下文。一个类型错误不只是阻碍;它是关于某个错误假设的信号。
举个例子,假设要修复一个 bug:当公司名称包含撇号时,用户无法保存账单设置。一个薄弱的循环会猜测问题出在 SQL 转义,然后直接修补查询语句。一个更强的循环会先找到表单、API 路由、验证 schema 和数据库更新路径。它会复现失败,观察问题到底出在客户端验证、服务端验证、序列化、SQL,还是展示逻辑上,然后修改最相关的最小代码路径,并运行有针对性的回归测试。
什么构成一个好的循环
一个好的循环建立在清晰目标、有用上下文、小步行动、可靠观察和明确停止规则之上。它并不是简单地“让智能体一直尝试”。没有边界的重试可能会浪费时间,或者造成不必要的代码震荡。
-
清晰目标
:“优化仪表盘”很模糊。“通过延迟加载非关键图表来减少仪表盘初始加载时间,同时保持现有筛选器正常工作”则给了智能体一个可观察、可优化的目标。
-
相关上下文
:上下文太少会导致错误假设。上下文太多又会让模型淹没在无关细节中。有用的上下文包括附近代码、失败测试输出、包版本和编码规范。
-
小而可逆的行动
:小 diff 更容易验证和修复。大规模的推测性重写会让人更难判断究竟是哪一个假设失败了。这也能降低合并冲突风险,并让拉取请求更容易审查。
-
可靠的可观测性
:一个循环的质量取决于它的观察质量。快速的定向测试、类型检查、构建命令、运行时日志和浏览器截图,能把模糊的信心转化为证据。
-
停止规则
:智能体需要知道什么时候该停下来。有用的规则包括:验证通过时停止;遇到需要缺失凭据的阻塞项时停止;在执行破坏性命令前停止;或者当下一步会影响无关的用户改动时停止。
常见循环模式
不同任务需要不同的反馈信号。
-
测试驱动循环
:智能体先复现一个失败,或编写一个失败测试,然后修改代码直到测试通过。这非常适合 bug 修复、解析器行为调整和回归预防。
-
编译器驱动循环
:智能体做出变更、运行类型检查,并把得到的错误作为精确的修复清单。这在迁移、依赖升级和重构时尤其有用。
-
评审驱动循环
:人工反馈成为观察来源。评审者留下评论,智能体对评论进行分类,在适当位置做出修改,并验证结果。
-
运行时调试循环
:智能体利用日志、堆栈跟踪、HTTP 响应或浏览器输出来缩小原因范围。每次迭代都基于证据:形成假设、做出有针对性的修改、观察结果,并更新假设。
-
产品迭代循环
:对于营销页面和前端工作,循环会包含语义化 HTML、元数据、可访问性、响应式检查和品牌一致性。
为什么团队需要它
单个开发者可以依靠个人判断来停止智能体,或把它引向新的方向。团队则需要可重复的标准,这样智能体在不同仓库、不同人员和不同任务中的行为才是可预测的。
强有力的团队级循环工程包括:解释编码约定的仓库说明、针对智能体生成变更的分支和拉取请求规则、围绕破坏性命令的安全默认设置、面向常见工作的标准提示词、智能体和人类都信任的 CI 检查,以及对最终产品和架构决策的清晰归属。
目标不是把人类从工程中移除。目标是让人类把更多时间花在判断、架构和产品质量上,同时让智能体承担更多重复性的循环机制工作。
循环容易出错的地方
-
震荡
:智能体反复修改代码,却无法收敛。这通常意味着目标不清晰、验证信号噪声太大,或者智能体一次编辑了太多内容。解决办法是缩小目标范围并减少 diff 大小。
-
过拟合测试
:智能体可能让测试通过,却遗漏了真实的产品需求。解决办法是将自动化测试与需求评审结合起来,并在相关场景下进行人工验证。
-
上下文漂移
:智能体继续基于过时假设工作,错过用户的新修改或新的失败。解决办法是在获得有意义的观察结果后刷新上下文,并避免把初始计划当成不可动摇的东西。
-
不安全的自主性
:如果智能体可以运行破坏性命令、重写无关文件,或在没有评审的情况下推送变更,就可能造成严重损害。解决办法是权限控制、限定工具范围、对高风险操作进行人工批准,以及设置清晰的停止条件。
最佳实践
从小而可重复的工作流开始,并明确反馈信号。团队不需要一次性重构所有流程。
-
从狭窄任务开始
:“添加账号删除功能”比“改进设置”更好。“修复失败的结账税费计算测试”比“调试结账流程”更好。
-
告诉智能体如何验证工作
:如果你知道正确的命令,就把它写进去。如果你知道具体的浏览器路径或 API 端点,也一并提供。
-
优先采用现有模式
:智能体应该检查附近实现、复用共享组件、遵循现有命名,并避免添加新抽象,除非任务确实需要。
-
让人类继续坐在判断席上
:智能体可以快速执行循环,但产品意图、风险容忍度、架构和最终评审仍然由人类负责。
-
沉淀可复用循环
:当一个工作流效果很好时,把它变成可重复模式,用于依赖升级、事故修复、PR 评论处理和测试修复。
未来走向
随着编程智能体持续进步,最重要的能力将不再是写出完美的一行提示词,而是设计可靠的上下文、行动、观察和纠正系统。团队评估 AI 编程工具时,不只会看模型质量,也会看它们在安全迭代、仓库感知、验证、评审和团队治理方面支持得有多好。
最好的智能体不会只是生成更多代码。
它们会帮助开发者闭合更好的循环。
加入ThinkInAI社区
#
如果你也对AI充满兴趣,欢迎加入我们的ThinkInAI社区,在这里,你可以:
- 获取最新AI工具资讯
- 参与实战经验分享
- 结识志同道合的伙伴
- 共同探讨AI应用方向
扫描文末二维码,加入ThinkInAI社区,一起拥抱AI新时代!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:ThinkInAI社区 Rakesh Gohel Rakesh Gohel《循环工程:教会 AI 智能体从自己的错误中学习》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论