本教程从“循环工程”(Loop Engineering)这一流行概念切入,揭示其并非AI时代的新发明,而是根植于古老的闭环控制系统。文章旨在剥离围绕该概念的神秘外壳,强调AI时代软件开发的本质在于构建坚实的地基工程,而非盲目追逐表层的“循环”机制。
祛魅:Loop Engineering的古老本质
“循环工程”的核心理念,即系统能够“自己会跑、自己检查、自己迭代到完成”,实际上与1885年就已问世的恒温器原理如出一辙。一个闭环控制系统包含设定值(目标)、执行机构(执行动作)、反馈(传感器)和控制器(决策),恒温器的控温机制完美对应了这些要素。更早至1788年瓦特的蒸汽机调速器,也体现了自动反馈循环。
因此,将“循环工程”包装成AI时代的新纪元入场券,实则是将一个230年前的古老结构进行内容营销。这一现象与“Harness工程”如出一辙,都是先有命名再用焦虑填充,而非真正基于技术洞察。
值得注意的是,这套表象之下,唯一真正发生革命性变化的,是“执行机构”那一格——它从“专用”变为“通用且便宜”,使得执行本身变得极大充裕甚至趋近于免费。而与之互补的稀缺品,则是另外四格中由人亲手设定的“设定值”和“传感器”——即“什么算对”。
干货:Loop的真正核心是判定
一个有效的循环(loop)系统,无论其表层工具如何华丽,其核心都由五个不可再分的零件组成:
- 意图(设定值):明确系统要达成的目标。
- 执行(执行机构):真正去完成任务的Agent。
- 判定(传感器):每轮结束后评估是否达到目标。
- 记忆(状态):记录当前进度和系统状态。
- 控制(控制器):根据判定结果决定是否继续下一轮。
这五个零件中,执行、控制、记忆和触发如今已被内置于成熟工具中,如同恒温器的电路板,免费且易得。而真正稀缺且需要投入工作的,是第三个零件——判定。
判定的核心要素
- 独立性:执行者不能同时是判定者。代码生成Agent不能自己宣布“我好了”,因为模型有讨好倾向,容易报告“完成”。判定需要一个独立的checker,甚至是一组从不同角度进攻的“猎人”,以证伪而非正面检验的方式发现问题。
- 证据链:判定结果必须有明确的证据路径。一个说“完成了”的判定器,如果拿不出检查了什么、怎么检查的、检查到何种粒度的具体路径,其结论则不可信。这对应了“没有攻击路径,就没有严重性”的原则。
判定下沉与类型系统
那么,独立的判定者到底该“读”什么?
如果用另一个语言模型来判定,只是将“讨好”从执行端搬到了判定端。真正不会“拍马屁”、不会累且几乎免费的判定工具,就是类型检查器(如TypeScript的 tsc)。
类型系统能够将“什么算对”的判断能力提升到极致,而边际成本几乎为零。精确的类型定义,如同给loop装上了细致的传感器,让它能清晰地看到运行时值的合法性。any 关键字则如同给loop戴上眼罩,导致“盲循环”——即系统高效地奔向一个未清晰定义的目标。
然而,类型系统并非万能,它有其看不见的世界:
- 语义关系:类型不关心代码库中模块间的调用关系、重命名影响等,这需要更高级的语义分析能力。
- 运行时行为:类型无法预知真实网络请求返回的数据形态、并发条件下的安全问题等,这需要运行时验证。
- 人类视觉:界面布局错位、文本截断等视觉问题,只有人眼或像素级对比工具才能发现。
因此,专业的loop需要一张多层传感网,为不同层级的bug配备对应的传感器,并秉持“判定下沉”原则:能用最便宜的层解决的问题,绝不留给昂贵的层。
颗粒度:业余与职业的分水岭
判定的“粗细”——即颗粒度——是区分业余和职业loop的关键。盲循环往往源于大颗粒度的意图和粗放的判定,导致系统在高速执行中无法发现深层腐烂。
一个loop中存在三种关键颗粒度,且它们必须对齐:
- 任务颗粒度:单次循环修改代码的范围。
- 验证颗粒度:判定器能够定位错误的细致程度。
- 记忆颗粒度:系统记录进度的详细程度。
颗粒度对齐定律指出:验证颗粒度必须细于任务颗粒度。否则,系统将像一个“动作幅度大于它视力范围”的盲人,无法发现自身产生的“编得过的错误”。这类似于奈奎斯特采样定理,反馈的频率和精度必须高于变更的频率和幅度。
治理盲循环的途径是:减小任务颗粒度(让loop每次只修改少量代码),或提升验证颗粒度(让判定器看得更深)。类型系统在提升验证颗粒度方面具有无可比拟的优势,它以接近零成本的方式提供了细致到“行+值+期望”的反馈。
记忆的颗粒度则应采用事件流模式——记录“谁、什么时候、做了什么、结果是什么、谁说的”,只增不改,而非简单快照,以保证可复盘性。
系统化:从戏法到永不暂停的世界
将单个loop提升为系统,意味着构建一个能够自我运转、生长和适应的组织,这可以用控制论中的**可生存系统模型(VSM)**来理解:
- 操作(干活的):自动化执行loop,由模型(Agent)扮演。
- 协调(避免冲突):确保并行Agent互不干扰,内置在工具中。
- 控制(验收的):独立的判定器、传感网,由人制定标准。
- 情报(发现任务):扫描、分诊、优先级决策,由人制定策略。
- 政策(立法的):定义系统目标和“什么算对”,只能由人(玩家)来完成。
系统化的本质不是堆叠更多loop,而是将人的判断力层层安装进系统的组织架构中。Loop是工人,人是立法者和团长。这种系统化使得世界“永不暂停”,人在下线后loop仍然工作,而人则需将宝贵的判断力集中于每次登录后对世界的宏观判断。
校准回路与理解债
为了防止系统判定标准漂移和“谄媚死”,系统需要校准回路机制。清醒时,通过强制带预测、到期日和实际结果回填来迭代判定标准;睡着时,系统能够回放过往判断、提炼模式并用未见过的新任务进行留出集验证。
系统化道路上的陷阱是理解债(Comprehension Debt)。它指的是系统产出不断增长,但人对系统运作的理解却未能同步增长。系统越强大,理解债的增长率越高,最终可能让人成为系统的“人质”。治理理解债的关键在于将可复盘性提升为一等公民——系统不仅要产出代码,还要产出可供未来重新审判的轨迹和依据。
TSC思维:把判断编译进机器
文章的双关在于“tsc”既指TypeScript的类型检查器,也指作者所倡导的判断本身——一种“立法者思维”。类型系统是“立法者思维”的最小可执行版本,每定义一个精确类型,就是立了一条法,由 tsc 严格执行。
**判定下沉(Judgment Descent)**是AI时代的核心工程动作,即将“什么算对”从昂贵、慢、不可靠的层,一层一层压到最便宜、最快、最确定的层。这意味着充分利用类型系统、约束函数、语义关系分析、运行时行为验证、视觉验证等九层传感网。
“先声明,后使用”是判定下沉的朴素前奏,它强制人在执行前思考并声明loop的工具权限和作用域,从而构建安全的“牢笼”。
作者此前提出的“汇编思维、面向对象思维、Lisp/元编程思维、对抗思维”四种思维,都应映射到loop系统的构建中,它们共同构成了AI时代“架构师”角色的核心能力。
对未来的预判
文章对未来三年做出以下预判:
- IDE会死,环境成为产品:开发者将配置“环境”而非打开“编辑器”,工作单元从“文件”变为“意图”。开发者职业将分化为立法者、牧场主和按“开始”的执行狗。
- 判定覆盖率成为新指标:取代测试覆盖率,衡量“什么算对”有多少被编码进机器可检查的层,影响公司招聘和估值。
- 反馈基础设施成为新品类:未来十年将构建“判定”自动化、廉价化、可组合化、多模态化的基础设施。
- 经济将沿“可验证线”裂开:执行免费,判断昂贵,可验证性将决定事物价格。
- 盲循环大暴雷:未来18-30个月内,将出现因盲循环导致的生产事故和数据灾难。
- 护城河从“模型”搬到“记忆”:最值钱的AI公司将是那些判断存量最深、校准最准、最经得起复盘的公司。
- 立法即编程:出现将判断编译成评判标准的新型“编程语言”和工具链,最热门的工程师将是编写“法典”的人。
结语:所有的开发都是地基工程
AI时代,“拉条狗都能做开发”和“技术再牛,普通人不会用也是废物”这两句话并不矛盾。前者描述了执行层面的自动化,后者则指向了立法层的缺失。价值已从“按开始的狗”转移到“造出这台机器、并决定‘什么算对’的人”身上。
文章指出“循环工程”这个名字的误导性,因为它将焦点置于最不重要的“循环”上。真正的活在于其脚下的“地基”。因此,作者将此命名为地基工程(Foundation Engineering)。
如同瓦特的调速器,AI没有改变开发的本质——打地基。AI只是让地基之上那座楼盖得异常迅速,从而使地基本身成为唯一重要之物。
最后,作者鼓励开发者积极构建loop,但要像一个真正的工程师一样,不断审视自己脚下的地基,确保它依然可读、可理解。如此,才能成为立法者,而非沦为机器的人质。因为“什么算对”——始终只能由人来定义和坚守。