
本文来自微信公众号: 碳基智 ,作者:碳基智
上个月在学习Harness Engineering的过程中,写了一篇《Harness其实就是控制论》的学习笔记,意外地在某平台上火了。
最近在进一步学习底层经典的时候,发现好家伙,原来设计模式这玩意儿其实也跟Harness在各种维度上同源同构,果然再新潮的AI圈也终归是一整个万变不离其宗。
为了进一步拆解本文标题的思路,我用GPT优化了这组本文核心内容映射的图,最关键的发现是:
同一套控制论原理,在OOP里叫设计模式,在Agent里叫Harness

1
首先要提的一点是,一些概念在命名的时候一定是有它的原因的,但无奈英文概念在翻译到中文的时候总是会有一些本土化的动作,变得更加符合中国人的理解,但有时也会失去原来的一些望文生义的好处。
Harness,本意是马具,就是套在野马身上,让它不能到处都是草原的控制工具。
控制论的英文名,Cybernetics,源出希腊语kybernetes,意思是舵手。维纳当年定义这门学科的时候,研究的核心就是:如何让一个自身有动力但行为不确定的黑盒系统,按照人的意图运行。
给大模型套上马具,和给马套上缰绳,给船装上舵,都是同一件事。
所以,Harness的每一层设计,注意是每一层,本质上都是在构建一个控制回路。
2
理解了这个前提,咱们回过头来再看设计模式。
软件工程不同于机械、化工、电力、自动化这些工程门类,后者的共同点是:都能以“消耗能源”的方式,把人脑参与的低阶认知回路固化成物理装置,最终把人解放出来,或者说取代掉。
这也是控制论最早的工程实现路径。但软件工程恰好卡在这条路走不通的地方。
软件开发要做的事情是抽象、分解、推理、创造,这些是高阶认知,没法像调速器那样固化成一个物理回路,更不可能靠消耗能源取代人,即便这个能源的表现形式是token。
因此,软件工程门类的卡点就在于,人脑在这套生产关系里没法儿被替换。因此,从方法论的角度上讲,其实只能做一件事,那就是管理人,而不是替代人。优化堆人力的方式,但无法改变必须靠人力堆的事实。
设计模式也就是GoF这几位编程大家所做的事,23种常见的模式,解决那些被提炼出共性的软件问题。
3
设计模式表面上在讲对象怎么组织,但实际上它每一个模式的核心,其实都是一个隐含的控制回路。即便你完全没学会设计模式,习惯用自然语言编程,那些你管理的多Agent在工作的时候,也会自发地演化出设计模式的结构。
因为控制回路是复杂系统不可避免的结构,不管系统的组件是对象,还是智能体
设计模式的每一个模式,底层都藏着一个控制回路。挑三个最直观的:
Observer→反馈闭环
空调恒温器的原理:温度偏了,传感器检测到,压缩机启停修正。Observer干的就是这事:对象状态变了,通知观察者,观察者响应修正。
到了Harness这边,变成了Evaluate Loop:Agent输出了,评估器检测质量,质量不行就调整策略重来。
同一个闭环,只是从隐含在代码里变成了你必须亲手搭出来。
Strategy→稳态维持
人体的体温调节:冷了收缩血管,热了就出汗,永远维持37度。Strategy做的一样—条件变了换算法,系统始终停在最优工作点。
Harness这边叫Agent Router:用户意图变了,路由器自动把任务分给最合适的Agent。
条件感知、动态切换、维持最优,三步走完全一样。
Chain of Responsibility→层次控制
人的神经系统:脊髓管反射,脑干管呼吸心跳,大脑皮层管高级决策,底层搞不定就往上报。责任链一模一样—请求来了,第一个Handler处理不了就传给第二个。
Harness这边叫Agent Chain:轻量Agent先上,搞不定传给更强的,没有中心调度,只有逐级传递。
剩下的Mediator、Template Method、Builder、Facade、Decorator,都可以分别对应上信息集中调度、流程骨架定义、渐进式构造、接口隔离、横切增强。每一个在Harness里都有精确的镜像结构。
区别只有一个:
设计模式时代这些控制回路可以靠程序员自觉,隐含在代码里就行;到了AI这边,LLM不守契约,你必须把每一个回路显式建出来。不然AI就会坚决认错,拒不整改。
4
Harness跟设计模式的不同之处在于:
在OOP里,Observer的反馈回路藏在代码逻辑中,这意味着你要读完整段代码才能看到循环。Strategy的稳态维持是隐含的,没有人会说我在做homeostasis,只会说我在切换策略。
但在AI系统里,控制回路必须被显式地设计和实现。因为LLM本身是不可控的,你不可能靠隐式约定来保证行为。你必须:
显式地写评估器(Observer的显式版本)
显式地设Guardrails(Strategy的显式约束版本)
显式地管上下文(Mediator的显式调度版本)
显式地建中间件(Decorator的显式拦截版本)
这就是Harness这个词的精确含义:当控制从隐式变成显式,从约定变成强制,从信任对象自觉变成外部施加约束,马具就成了你需要的东西。
设计模式会说:建议你用Observer来解耦通知。
Harness则说:你必须用Evaluate Loop来保证输出质量,否则系统会失控。
一个是建议,一个是命令。这就是从设计模式到Harness的本质跃迁。
看,是不是理解了?
如涉及版权问题请联系 hezuo@huxiu.com,我们将及时核实并处理。