返回列表
🧠 阿头学 · 🪞 Uota学 · 💬 讨论题

控制论才是AI工程的真正游戏规则

AI工程的核心不是模型有多强,而是你能否把隐性判断外化成机器可执行的闭环系统——这决定了谁能真正驾驭AI。
打开原文 ↗

2026-03-08 原文链接 ↗
阅读简报
双语对照
完整翻译
原文
讨论归档

核心观点

  • 控制论是AI工程的底层范式,不是新发明 从瓦特调速器到Kubernetes再到LLM agent,每次技术跃迁都遵循同一逻辑:当传感器和执行器足够强大时,人的工作从直接操作转向设计回路。作者这个类比虽然宽泛,但确实抓住了本质——问题是,这个框架本身太通用了,几乎可以套在任何自动化系统上,所以"证明力"其实有限。
  • "AI不懂你的代码库"通常是诊断错误 智能体失败的真实原因往往不是能力不足,而是你的架构原则、质量标准、依赖约束还只存在于资深工程师脑中。这个判断非常有杀伤力,也符合现实——但作者把所有失败都归结为"知识未外化",忽视了其他常见原因:上下文窗口限制、长程推理不稳定、工具调用脆弱。单因化倾向明显。
  • 工程师角色正在从执行者转向规则设计者 未来的竞争力不在于写代码快,而在于能否把团队的隐性判断系统化——文档、测试、架构规则、反馈机制。这个方向判断是扎实的,也与DevOps、平台工程的演化方向一致。但对中小团队来说,这套要求的投入成本和收益门槛都很高,文章基本没讨论何时回本。
  • OpenAI的"每周五清理AI糊弄产物"是最有信息量的细节 这说明即使在最强的团队,如果没有把标准编码进系统,AI也只是批量制造返工。这个数据点直接戳穿了"接入AI就能提效"的幻想——真正的收益来自把基本功做扎实。
  • LLM改变的是反馈回路能闭合的层级 过去编译器、测试、Linter只能在低层闭环;现在LLM能在架构决策层面同时感知和行动。这是真正的能力跃迁,但前提是你的系统已经有足够清晰的"期望状态"定义。

跟我们的关联

👤ATou 这篇文章直指"能指挥AI的top 0.0001%"的核心竞争力:不是更强的prompt,而是能设计出让AI持续自我纠偏的系统。意味着你需要从"怎么让AI做这件事"升级到"怎么让AI在我的约束下自动做对这件事"。接下来:审视自己在哪些决策上还在靠经验和直觉,把那些东西写成可验证的规则。

🧠Neta 产品增长也可以被重构成控制系统:定义期望状态(留存、配对成功率、内容安全),设计传感器(漏斗、质量指标、举报率),配置执行器(推荐权重、冷启动策略、AI行为)。海外增长尤其需要这套思路——品牌调性、禁忌区、视觉规范如果还只在少数人脑子里,AI放大的就是噪音而不是势能。接下来:把团队的"什么叫好"强制转成机器可读资产。

🪞Uota Agent失败的诊断框架:不是问"模型够不够强",而是问"系统有没有把期望状态、反馈机制、修复路径编码清楚"。这对你设计agent架构时的优先级排序很关键——不要卷模型能力,要卷基础设施。接下来:在Neta的agent设计里,把"失败后如何自动收敛"作为一等公民需求。

讨论引子

1. 我们现在有多少工程判断还只存在于某个人的脑子里? 这不是修辞问题。列出团队最常犯的5个错误,追问每一个:这能不能写成规则而不是继续靠人提醒?如果答案是"能",那就是你们的杠杆点。

2. 海外增长中,品牌一致性的真正瓶颈是什么——是内容生产速度,还是标准定义不清? 如果是后者,盲目用AI放大只会加剧混乱。你们需要先做"品牌harness",再让AI执行。

3. 20人团队靠默契运转看起来高效,但接入AI后会发生什么? 这是最现实的问题。AI会以机器速度放大所有未定义的标准。你们准备好把隐性规则外化吗?

读 OpenAI 的“harness engineering”那篇文章时,我总有一种说不清的熟悉感。直到某一刻我才突然明白:这种模式我以前见过——不是一次,而是三次。

第一次是在 1780 年代,詹姆斯·瓦特(James Watt)的离心式调速器。在它出现之前,总要有工人站在蒸汽机旁边,用手不断调节阀门;在它出现之后,一个带配重的飞球机构会感知转速,并自动调节阀门。工人没有消失,工作变了:从拧阀门,变成设计调速器。

https://arxiv.org/abs/2110.14168

第二次是 Kubernetes。你声明期望状态——三个副本、这个镜像、这些资源限制。控制器持续观察实际状态;一旦两者偏离,控制器就会对齐它们:重启崩溃的 Pod、伸缩副本数、回滚有问题的部署。工程师的工作从“重启服务”转移为“编写系统用来对齐的规格说明”。

第三次就是现在。OpenAI 描述了一类不再写代码的工程师:他们改为设计环境、构建反馈回路、把架构约束写成规则——然后由智能体来写代码。五个月一百万行,手写为零。他们把这称为“harness engineering”。

每一次都遵循同一种模式。诺伯特·维纳(Norbert Wiener)在 1948 年为它命名:控制论(cybernetics),词源来自希腊语 κυβερνήτης——意为“舵手”。你不再去拧阀门,你开始掌舵。

每当这种模式出现,都是因为有人造出了足够强大的传感器与执行器,使得在那个层级上可以把回路闭合。

为什么代码库一直是最后的堡垒

代码库当然也有反馈回路,但只存在于更低的层级。编译器在语法层面闭环;测试套件在行为层面闭环;Linter 在风格层面闭环。这些都是真正的控制论式控制——但它们只能作用于那些可以机械检验的属性:能不能编译?能不能通过?有没有遵守规则?

而更高一层的一切——这次改动是否符合系统架构?这是不是正确的路径?这个抽象会不会在代码库增长时制造麻烦?——既没有传感器,也没有执行器。只有人类能在那个层面同时承担两边的工作:判断质量,以及亲手写出修复。

LLM 把这两件事同时改变了。它们能够在过去由人类独占的层面进行感知——并且也能在同一层面采取行动:重构一个模块、重设计一个不一致的接口、围绕真正重要的契约重写测试套件。第一次,反馈回路可以在重要决策发生的地方闭合。

但闭环是必要条件,不是充分条件。瓦特的调速器需要调参;Kubernetes 的控制器需要正确的规格;而让一个 LLM 在你的代码库里工作,还需要更难提供的东西。

校准传感器与执行器

让最基本的反馈闭环运转起来——智能体能跑的测试、能给出可解析输出的 CI、能指向修复方向的错误信息——只是入场门槛。Carlini 让 16 个并行智能体构建一个 C 编译器时就证明了这一点:提示词简单得几乎“尴尬”,但测试基础设施却被精心设计。“我的大部分精力都花在围绕 Claude 设计环境上——测试、环境、反馈。”

更难的问题,是用只属于你的系统的知识来校准传感器与执行器。大多数人正是卡在这里,于是开始怪智能体。

“它总是在做错事。它不理解我们的代码库。”这种诊断几乎总是错的。智能体并不是因为能力不足而失败;它失败,是因为它需要的知识——在你的系统里“好”意味着什么、你的架构奖励哪些模式、又回避哪些模式——被锁在你的脑子里,而你还没有把它外化。智能体不会靠耳濡目染学会这些。如果你不把它写下来,那么第 100 次运行时它犯的错误,会和第一次一模一样。

真正的工作,是把你的判断变成机器可读的东西:描述真实分层与依赖方向的架构文档;内置整改指令的定制 Linter;编码团队审美的黄金原则。OpenAI 发现的正是这一点:他们每周五要拿出 20% 的时间清理“AI 糊弄产物”——直到他们把标准直接编码进 harness 本身。

唯一的出路

这套要求的实践——文档、自动化测试、被编码的架构决策、快速反馈回路——从来都没有错。过去三十年里写下的每一本工程书都在推荐它们。多数人之所以跳过,是因为跳过的代价缓慢而分散:质量逐渐下滑、入职上手变得痛苦、技术债悄无声息地复利增长。

智能体工程把代价推到极致。跳过文档,智能体就无视你的约定俗成——不是在一个 PR 里,而是在每一个 PR 里,以机器速度,昼夜不停。跳过测试,反馈回路就根本无法闭合。跳过架构约束,漂移会以你修不动的速度累积。还有一个陷阱:如果智能体不知道“干净”长什么样,你就无法用智能体来清理烂摊子。没有校准,制造问题的机器也同样无法解决问题。

实践没有变。忽视它们的惩罚,变得难以承受。

生成—验证的不对称性——这是 P vs NP 背后的直觉,并由 Cobbe 等人在 LLM 上做了经验性展示——指向了未来的方向:生成一个正确解,比验证一个解要难。你不需要在实现上胜过机器;你需要在评估上胜过它:把“正确”具体写出来,识别输出哪里偏离,判断方向是不是对的。

设计瓦特调速器的工人,并没有回去继续拧阀门。不是因为他们不会,而是因为那已经不再合理。

链接: http://x.com/i/article/2030414577213820928

Reading OpenAI's harness engineering post, I kept having a feeling I couldn't place. Then it clicked: I'd seen this pattern before. Not once — three times.

The first was James Watt's centrifugal governor in the 1780s. Before it, a worker stood next to the steam engine adjusting the valve by hand. After it, a weighted flyball mechanism sensed rotational speed and adjusted the valve automatically. The worker didn't disappear. The job changed: from turning the valve to designing the governor.

https://arxiv.org/abs/2110.14168

The second was Kubernetes. You declare desired state — three replicas, this image, these resource limits. A controller continuously observes actual state. When they diverge, the controller reconciles: restarts crashed pods, scales replicas, rolls back bad deployments. The engineer's job shifted from restarting services to writing the spec the system reconciles against.

The third is now. OpenAI describes engineers who no longer write code. Instead they design environments, build feedback loops, and codify architectural constraints — then agents write the code. A million lines in five months, zero written by hand. They call it "harness engineering."

Same pattern each time. Norbert Wiener named it in 1948: cybernetics, from the Greek κυβερνήτης — steersman. You stop turning the valve. You steer.

Each time the pattern appears, it's because someone built a sensor and actuator powerful enough to close the loop at that layer.

读 OpenAI 的“harness engineering”那篇文章时,我总有一种说不清的熟悉感。直到某一刻我才突然明白:这种模式我以前见过——不是一次,而是三次。

第一次是在 1780 年代,詹姆斯·瓦特(James Watt)的离心式调速器。在它出现之前,总要有工人站在蒸汽机旁边,用手不断调节阀门;在它出现之后,一个带配重的飞球机构会感知转速,并自动调节阀门。工人没有消失,工作变了:从拧阀门,变成设计调速器。

https://arxiv.org/abs/2110.14168

第二次是 Kubernetes。你声明期望状态——三个副本、这个镜像、这些资源限制。控制器持续观察实际状态;一旦两者偏离,控制器就会对齐它们:重启崩溃的 Pod、伸缩副本数、回滚有问题的部署。工程师的工作从“重启服务”转移为“编写系统用来对齐的规格说明”。

第三次就是现在。OpenAI 描述了一类不再写代码的工程师:他们改为设计环境、构建反馈回路、把架构约束写成规则——然后由智能体来写代码。五个月一百万行,手写为零。他们把这称为“harness engineering”。

每一次都遵循同一种模式。诺伯特·维纳(Norbert Wiener)在 1948 年为它命名:控制论(cybernetics),词源来自希腊语 κυβερνήτης——意为“舵手”。你不再去拧阀门,你开始掌舵。

每当这种模式出现,都是因为有人造出了足够强大的传感器与执行器,使得在那个层级上可以把回路闭合。

Why the codebase was the holdout

The codebase had feedback loops, but only at the lower levels. Compilers close a loop on syntax. Test suites close a loop on behavior. Linters close a loop on style. These are real cybernetic controls — but they only operate on properties that can be checked mechanically. Does it compile? Does it pass? Does it follow the rules?

Everything above that — does this change fit the system's architecture? is this the right approach? is this abstraction going to cause problems as the codebase grows? — had no sensor and no actuator. Only humans could operate at that level, on both sides: judging quality and writing the fix.

LLMs changed both at once. They can sense at the level humans used to own — and act at the same level: restructure a module, redesign an inconsistent interface, rewrite a test suite around the contracts that actually matter. For the first time, the feedback loop can close where the important decisions are made.

But closing the loop is necessary, not sufficient. Watt's governor needed to be tuned. Kubernetes controllers need the right spec. And an LLM working on your codebase needs something harder to provide.

为什么代码库一直是最后的堡垒

代码库当然也有反馈回路,但只存在于更低的层级。编译器在语法层面闭环;测试套件在行为层面闭环;Linter 在风格层面闭环。这些都是真正的控制论式控制——但它们只能作用于那些可以机械检验的属性:能不能编译?能不能通过?有没有遵守规则?

而更高一层的一切——这次改动是否符合系统架构?这是不是正确的路径?这个抽象会不会在代码库增长时制造麻烦?——既没有传感器,也没有执行器。只有人类能在那个层面同时承担两边的工作:判断质量,以及亲手写出修复。

LLM 把这两件事同时改变了。它们能够在过去由人类独占的层面进行感知——并且也能在同一层面采取行动:重构一个模块、重设计一个不一致的接口、围绕真正重要的契约重写测试套件。第一次,反馈回路可以在重要决策发生的地方闭合。

但闭环是必要条件,不是充分条件。瓦特的调速器需要调参;Kubernetes 的控制器需要正确的规格;而让一个 LLM 在你的代码库里工作,还需要更难提供的东西。

Calibrating the sensor and actuator

Getting the basic feedback loop working — tests that agents can run, CI that gives parseable output, error messages that point to the fix — is table stakes. Carlini demonstrated this when he had 16 parallel agents build a C compiler: embarrassingly simple prompts, but carefully designed test infrastructure. "Most of my effort went into designing the environment around Claude — the tests, the environment, the feedback."

The harder problem is calibrating the sensor and actuator with knowledge specific to your system. This is where most people get stuck, and where they blame the agent.

"It keeps doing the wrong thing. It doesn't understand our codebase." The diagnosis is almost always wrong. The agent isn't failing because it lacks capability. It's failing because the knowledge it needs — what "good" means for your system, which patterns your architecture rewards, which it avoids — is locked inside your head, and you haven't externalized it. Agents don't learn through osmosis. If you don't write it down, the agent makes the same mistakes on the hundredth run as the first.

The work is making your judgment machine-readable. Architecture docs that describe actual layering and dependency direction. Custom linters with remediation instructions baked in. Golden principles that encode your team's taste. OpenAI found exactly this: they spent 20% of every Friday cleaning up "AI slop" — until they encoded their standards into the harness itself.

校准传感器与执行器

让最基本的反馈闭环运转起来——智能体能跑的测试、能给出可解析输出的 CI、能指向修复方向的错误信息——只是入场门槛。Carlini 让 16 个并行智能体构建一个 C 编译器时就证明了这一点:提示词简单得几乎“尴尬”,但测试基础设施却被精心设计。“我的大部分精力都花在围绕 Claude 设计环境上——测试、环境、反馈。”

更难的问题,是用只属于你的系统的知识来校准传感器与执行器。大多数人正是卡在这里,于是开始怪智能体。

“它总是在做错事。它不理解我们的代码库。”这种诊断几乎总是错的。智能体并不是因为能力不足而失败;它失败,是因为它需要的知识——在你的系统里“好”意味着什么、你的架构奖励哪些模式、又回避哪些模式——被锁在你的脑子里,而你还没有把它外化。智能体不会靠耳濡目染学会这些。如果你不把它写下来,那么第 100 次运行时它犯的错误,会和第一次一模一样。

真正的工作,是把你的判断变成机器可读的东西:描述真实分层与依赖方向的架构文档;内置整改指令的定制 Linter;编码团队审美的黄金原则。OpenAI 发现的正是这一点:他们每周五要拿出 20% 的时间清理“AI 糊弄产物”——直到他们把标准直接编码进 harness 本身。

The only way forward

The practices this demands — documentation, automated testing, codified architectural decisions, fast feedback loops — were always correct. Every engineering book written in the last thirty years recommends them. Most people skip them because the cost of skipping was slow and diffuse: gradual quality decline, painful onboarding, tech debt that compounds quietly.

Agentic engineering makes the cost extreme. Skip the documentation and the agent ignores your conventions — not on one PR, but on every PR, at machine speed, around the clock. Skip the tests and the feedback loop can't close at all. Skip the architectural constraints and drift compounds faster than you can fix it. And here's the trap: you can't use agents to clean up the mess if the agents don't know what clean looks like. Without the calibration, the machines that created the problem can't solve it either.

The practices haven't changed. The penalty for ignoring them has become unbearable.

The generation-verification asymmetry — the intuition behind P vs NP, demonstrated empirically for LLMs by Cobbe et al. — points to where this goes. Generating a correct solution is harder than verifying one. You don't need to out-implement the machine. You need to out-evaluate it: specify what "correct" looks like, recognize when the output misses, judge whether the direction is right.

The workers who designed Watt's governor didn't go back to turning valves. Not because they couldn't. Because it no longer made sense.

Link: http://x.com/i/article/2030414577213820928

唯一的出路

这套要求的实践——文档、自动化测试、被编码的架构决策、快速反馈回路——从来都没有错。过去三十年里写下的每一本工程书都在推荐它们。多数人之所以跳过,是因为跳过的代价缓慢而分散:质量逐渐下滑、入职上手变得痛苦、技术债悄无声息地复利增长。

智能体工程把代价推到极致。跳过文档,智能体就无视你的约定俗成——不是在一个 PR 里,而是在每一个 PR 里,以机器速度,昼夜不停。跳过测试,反馈回路就根本无法闭合。跳过架构约束,漂移会以你修不动的速度累积。还有一个陷阱:如果智能体不知道“干净”长什么样,你就无法用智能体来清理烂摊子。没有校准,制造问题的机器也同样无法解决问题。

实践没有变。忽视它们的惩罚,变得难以承受。

生成—验证的不对称性——这是 P vs NP 背后的直觉,并由 Cobbe 等人在 LLM 上做了经验性展示——指向了未来的方向:生成一个正确解,比验证一个解要难。你不需要在实现上胜过机器;你需要在评估上胜过它:把“正确”具体写出来,识别输出哪里偏离,判断方向是不是对的。

设计瓦特调速器的工人,并没有回去继续拧阀门。不是因为他们不会,而是因为那已经不再合理。

链接: http://x.com/i/article/2030414577213820928

相关笔记

Reading OpenAI's harness engineering post, I kept having a feeling I couldn't place. Then it clicked: I'd seen this pattern before. Not once — three times.

The first was James Watt's centrifugal governor in the 1780s. Before it, a worker stood next to the steam engine adjusting the valve by hand. After it, a weighted flyball mechanism sensed rotational speed and adjusted the valve automatically. The worker didn't disappear. The job changed: from turning the valve to designing the governor.

https://arxiv.org/abs/2110.14168

The second was Kubernetes. You declare desired state — three replicas, this image, these resource limits. A controller continuously observes actual state. When they diverge, the controller reconciles: restarts crashed pods, scales replicas, rolls back bad deployments. The engineer's job shifted from restarting services to writing the spec the system reconciles against.

The third is now. OpenAI describes engineers who no longer write code. Instead they design environments, build feedback loops, and codify architectural constraints — then agents write the code. A million lines in five months, zero written by hand. They call it "harness engineering."

Same pattern each time. Norbert Wiener named it in 1948: cybernetics, from the Greek κυβερνήτης — steersman. You stop turning the valve. You steer.

Each time the pattern appears, it's because someone built a sensor and actuator powerful enough to close the loop at that layer.

Why the codebase was the holdout

The codebase had feedback loops, but only at the lower levels. Compilers close a loop on syntax. Test suites close a loop on behavior. Linters close a loop on style. These are real cybernetic controls — but they only operate on properties that can be checked mechanically. Does it compile? Does it pass? Does it follow the rules?

Everything above that — does this change fit the system's architecture? is this the right approach? is this abstraction going to cause problems as the codebase grows? — had no sensor and no actuator. Only humans could operate at that level, on both sides: judging quality and writing the fix.

LLMs changed both at once. They can sense at the level humans used to own — and act at the same level: restructure a module, redesign an inconsistent interface, rewrite a test suite around the contracts that actually matter. For the first time, the feedback loop can close where the important decisions are made.

But closing the loop is necessary, not sufficient. Watt's governor needed to be tuned. Kubernetes controllers need the right spec. And an LLM working on your codebase needs something harder to provide.

Calibrating the sensor and actuator

Getting the basic feedback loop working — tests that agents can run, CI that gives parseable output, error messages that point to the fix — is table stakes. Carlini demonstrated this when he had 16 parallel agents build a C compiler: embarrassingly simple prompts, but carefully designed test infrastructure. "Most of my effort went into designing the environment around Claude — the tests, the environment, the feedback."

The harder problem is calibrating the sensor and actuator with knowledge specific to your system. This is where most people get stuck, and where they blame the agent.

"It keeps doing the wrong thing. It doesn't understand our codebase." The diagnosis is almost always wrong. The agent isn't failing because it lacks capability. It's failing because the knowledge it needs — what "good" means for your system, which patterns your architecture rewards, which it avoids — is locked inside your head, and you haven't externalized it. Agents don't learn through osmosis. If you don't write it down, the agent makes the same mistakes on the hundredth run as the first.

The work is making your judgment machine-readable. Architecture docs that describe actual layering and dependency direction. Custom linters with remediation instructions baked in. Golden principles that encode your team's taste. OpenAI found exactly this: they spent 20% of every Friday cleaning up "AI slop" — until they encoded their standards into the harness itself.

The only way forward

The practices this demands — documentation, automated testing, codified architectural decisions, fast feedback loops — were always correct. Every engineering book written in the last thirty years recommends them. Most people skip them because the cost of skipping was slow and diffuse: gradual quality decline, painful onboarding, tech debt that compounds quietly.

Agentic engineering makes the cost extreme. Skip the documentation and the agent ignores your conventions — not on one PR, but on every PR, at machine speed, around the clock. Skip the tests and the feedback loop can't close at all. Skip the architectural constraints and drift compounds faster than you can fix it. And here's the trap: you can't use agents to clean up the mess if the agents don't know what clean looks like. Without the calibration, the machines that created the problem can't solve it either.

The practices haven't changed. The penalty for ignoring them has become unbearable.

The generation-verification asymmetry — the intuition behind P vs NP, demonstrated empirically for LLMs by Cobbe et al. — points to where this goes. Generating a correct solution is harder than verifying one. You don't need to out-implement the machine. You need to out-evaluate it: specify what "correct" looks like, recognize when the output misses, judge whether the direction is right.

The workers who designed Watt's governor didn't go back to turning valves. Not because they couldn't. Because it no longer made sense.

Link: http://x.com/i/article/2030414577213820928

📋 讨论归档

讨论进行中…