news 2026/6/26 2:55:11

一个被忽视的事实:代码库一直有反馈回路,只是太低级

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一个被忽视的事实:代码库一直有反馈回路,只是太低级

仔细想想,软件工程从一开始就是控制论的拥趸:

  • 编译器 :在语法层闭环——"代码合法吗?"
  • 单元测试 :在行为层闭环——"功能对吗?"
  • Linter / Formatter :在风格层闭环——"写法符合规范吗?"
    这三类工具完全符合控制论的定义:它们都有传感器(检测)、执行器(报错/修复)、目标函数(通过/不通过),构成了一个标准的负反馈闭环。

但它们也都有一个共同的边界—— 只能处理"机械可判定"的属性 。

至于真正决定一个系统死活的问题:

  • 这次改动是否破坏了架构分层?
  • 这个抽象在 6 个月后会不会变成债务?
  • 这个接口的命名是否暴露了不该暴露的实现细节?
  • 这个修复是否只是补丁,没有触及根因?
    ——这些问题没有传感器,也没有执行器。它们悬空在那里, 只能靠人来感知、判断、修正 。Code Review 是唯一的"人形闭环",慢、贵、不可扩展、还经常因为评审者疲劳而失灵。

三、Transformer 之后,传感器和执行器同时出现了

2017 年那篇 Attention 论文之后发生的事,本质上是把"以前只有人能做的事"变成了一种可以被批量生产的能力。LLM 第一次让两件事同时成立:

  1. 它能在高层语义上"感知" ——能读懂"这段代码违反了 DDD 的边界"
  2. 它也能在高层语义上"动作" ——能把一个错位的接口重构到正确的层级里
    这一刻, 控制论的反馈回路终于能在那些"重要的决策点"上闭合了 。Harness Engineering 的价值,就是认识到这件事,并把控制论里所有被前几代工程师们用过、试过、验证过的稳态设计套路——分层、边界、负反馈、二阶控制——一次性全部拉到 LLM Agent 身上。

四、Harness Engineering 的三层控制论结构

我把 Harness Engineering 拆成三个层次来理解,每一层都对应控制论里的一个经典概念。

第一层:闭环控制——把"写代码"变成自动调节系统

OpenAI 团队公开过他们的内部 Agent loop 大概是这样的:

人类输入意图(setpoint) │ ▼ Agent 生成代码(actuator) │ ▼ Lint / 测试 / 架构守卫执行(sensor) │ ▼ 错误信号回流给 Agent(feedback) │ ▼ Agent 自我修正(control) │ └──── 直到所有信号都收敛 ────┐ │ ▼ 收敛到目标

这是教科书式的负反馈控制系统。如果把里面的"Agent"换成"温度调节阀",把"测试"换成"温度计",这就是恒温器。

人类的角色变了。我们不再"敲代码"——我们 设计这个闭环 :决定哪些东西算 setpoint,决定哪些信号是 sensor,决定误差容忍度,决定什么时候要把系统拉出来人工干预。

第二层:硬约束 > 软建议——用机械边界代替"请你不要"

控制论里有个反直觉的真相: 减少自由度,比增加智能更能让系统稳定 。瓦特调速器之所以能工作,不是因为它"很聪明",而是因为它的机械结构物理上就只允许"转速高 → 阀门关小"这一种因果链。

Harness Engineering 把这个原则贯彻到了极致—— 让 AI 不可能越界,而不是请它别越界 :

  • 目录结构强制分层: ui/ → service/ → domain/ → infra/
  • Lint 规则禁止反向 import: ui 文件 import infra 直接红线
  • 类型系统编码契约:核心域类型不允许被序列化层污染
  • CI gate 一票否决:违规 PR 根本进不了主干
    这些都不是"建议",是机械边界。Agent 在生成代码时哪怕"想"违规也做不到——因为它的输出会被立刻拒绝并附带具体错误信息,进入下一轮反馈。

控制论给这种设计的术语是: 用环境约束替代行为约束(constraint shaping) 。结果就是系统的稳态空间被人为收窄,AI 再"聪明"也只能在这个空间里跳舞。

第三层:二阶控制——让规则本身也能进化

这是 Harness Engineering 最有意思的地方,也是真正把它从"高级 CI"提升到"自组织系统"的地方。

控制论里的二阶(second-order cybernetics)讲的是: 不仅控制系统行为,还控制控制系统的规则 。Heinz von Foerster 的话糙理不糙——"一阶控制让系统稳定,二阶控制让系统进化"。

落到 Harness Engineering 上:

一阶 二阶 Agent 通过测试 人类把"Agent 上次犯的错"沉淀成一条新规则 Lint 检查代码风格 出现新的反模式 → 加新的 Lint rule CI 阻断坏 PR 后台有 Agent 定期扫描技术债、自动修复 测试套件验证行为 测试套件本身根据新发现的边界条件自动扩张

这条二阶回路的存在意味着: 这个系统每被使用一次,它的"自我控制能力"就强一点 。它不会因为暴露了更多场景而变得脆弱,反而会因为新场景被编码进规则而变得更稳。

控制论里有一个专门的词形容这种性质—— 反脆弱(antifragile) 。一个反脆弱系统接受冲击后不是恢复原状,是变得比之前更强。

五、《三体》童话中宽姨打的那把伞

控制论的图腾,就是瓦特那个带重锤的飞球调速器。在它出现之前,蒸汽机旁边必须站一个工人,盯着压力表手动开关阀门。这个工人很重要,他的判断决定了机器的死活。

调速器装上之后,这个工人没有失业——但他的工作变了。他不再拧阀门,他开始 设计更好的调速器 :怎么让响应更灵敏,怎么避免共振,怎么在高负载下不失稳。

设计调速器的工人,没有再回去拧阀门。不是因为他们做不到,而是因为这件事已经没有意义。

Harness Engineering 想做的事,本质上是同样的位移:
让程序员从"逐行写代码的工人"变成"设计代码生产闭环的控制系统工程师"。
这不是浪漫化叙事。这是控制论一个世纪以来反复发生的剧本—— 任何一个领域,只要它的关键反馈回路能被自动化闭合,从业者的工作就会上移一层 。

六、总结

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 2:54:49

2026实测分享:工业电源厂家避坑指南,创联电源对比评测分析

之前给公司自动化产线配套电源,贪便宜选了家小厂,结果用了不到半年,三台导轨电源接连出问题,不是输出电压不稳导致PLC误报,就是高温天直接罢工,生产线一停就是半天,损失远超电源本身那点差价。后…

作者头像 李华
网站建设 2026/6/26 2:54:20

问题现场:线上内存飙高,OOM 报警

,线上老项目突然收到服务器内存使用率持续飙高的报警,紧接着应用直接抛出 OOM 错误,服务崩溃。紧急拉取了堆 Dump 文件,用 JProfiler 打开后,直接看到了内存占用的元凶:大量 com.alibaba.druid.proxy.jdbc …

作者头像 李华
网站建设 2026/6/26 2:53:16

记一次因为服务器和数据库时间不统一导致的数据入库问题排查

缘起: 下午在将测试服务迁移到预生产环境后,由于预生产环境属于内网环境,数据库使用公网访问。未确认时间差问题。将服务部署以后运行无任何报错,然后数据未能成功入库。事务处理结果都能从库里查询出结果,但是…

作者头像 李华
网站建设 2026/6/26 2:50:56

只有156页的《百页大模型原理》出版

学大模型最痛苦的事是什么? 要么是短视频碎片化知识点,越看越混乱,Transformer、自注意力、KV 缓存听过无数遍,一深究就卡壳;要么是动辄五六百页的厚重教材,公式堆砌、篇幅冗长,上班族、零基础…

作者头像 李华
网站建设 2026/6/26 2:49:44

它解决的不是“写代码”,而是“盯流程”

你告诉它要处理哪些 Story、用什么执行策略,它就自动完成「创建规格 → 开发实现 → 测试自动化 → 代码审查 → 回顾」这条流水线,只在真的需要人类决策时才打断你。 这和普通“单命令跑一个 Skill”不一样。它更像一个构建周期编排器: 初始…

作者头像 李华