两个神经元就能骑自行车——极简控制给 AI Agent 的启示
1700 次强化学习训练失败,精确代数分析太复杂,但两个神经元搞定了。这篇 Caltech 论文给 AI Agent 设计上了一堂极简主义课。
今天 HN 上有一篇老论文又被翻了出来,热度还不错:Matthew Cook 的 "It Takes Two Neurons to Ride a Bicycle"。论文的核心发现用一句话就能说完——一个只有两个神经元的人工神经网络,可以控制虚拟自行车沿目标路径行驶。
听起来不可思议?更不可思议的是对比:
- 此前的强化学习方法需要 1700 次练习骑行,还无法走直线
- 精确控制方法需要对具体自行车做 完整的运动学方程代数分析
- 人类学骑车时既不需要 1700 次训练,也不需要解方程
- 两个神经元两者都不需要,直接搞定
这篇论文是 1990 年代末的工作,但它提出的问题在今天 AI Agent 设计领域比当年更有意义:我们到底需要多少"智能"才能完成一个任务?
一、论文里最让我震撼的一段
作者 Matthew Cook 写了一个虚拟自行车模拟器后,决定自己先上手试试。他的原话是:
"我以为自己很会骑自行车,在模拟器里骑应该没问题。但现实中的惯性线索和身体倾斜在模拟中不存在——我得像从头学起一样,重新感知哪些信号值得关注、如何做出反应。"
他甚至一开始以为模拟器有 bug——因为要向右转,他发现自己必须先向左推车把。但仔细一想,这恰恰是正确的:要让自行车向右倾斜,唯一的方法是把接触点移到左边,所以必须先向左推。
这种反直觉的控制逻辑——表面动作和目标方向相反——正是极简控制器能成功的关键。两个神经元捕捉到的不是"向右转=向右推"这种线性映射,而是底层动力学的本质关系。
二、三种控制器的对比
论文比较了三种截然不同的控制策略:
| 策略 | 方法 | 结果 |
|---|---|---|
| "先知"控制器 | 利用模拟器的全知能力,预先知道一切物理参数 | 能骑,但依赖完美信息,现实中不存在 |
| "人类式"控制器 | 模仿人类感知-反应模式,只用可感知信号 | 能骑,但需要手工调参,规则复杂 |
| 双神经元控制器 | 两个简单神经元,接收同样的感知信号 | 能骑,长期目标精确,短期有自然的稳定性波动 |
最讽刺的是:最复杂的方法(先知控制器)在现实中最没用,因为它依赖的信息在真实世界根本获取不到。而最简单的方法(双神经元),效果反而最接近人类直觉。
三、对 AI Agent 设计的三个教训
教训一:最小可用原则(Minimum Viable Intelligence)
两个神经元能骑自行车,这个事实直接挑战了 AI 领域的隐含假设——更复杂 = 更好。
看看我们现在构建 Agent 的方式:
- 塞 50+ 个工具,不管用不用得上
- 挂 10+ 个 MCP Server,每个都占几万个 token
- 上下文窗口塞到 200K,实际有用的不到 20%
- 7 个子 Agent 各司其职,但可能 2 个就够了
这不是在说"应该永远用最简单的方法"。而是在说:从最简单开始,只在证明不够用时才加复杂度。
实操建议: 设计 Agent 时先问——"如果只有一个工具/一个模型/一条规则,能不能完成 80% 的场景?"能的话,从这里开始,而不是从 20 个工具的完整架构开始。
教训二:从底向上设计,而不是从上向下
双神经元控制器之所以有效,是因为它从底层动力学出发,直接编码了"车把方向"和"倾斜方向"之间的本质关系。它不需要知道自行车的精确质量、轮距、转动惯量——这些"先知"控制器依赖的参数。
映射到 Agent 设计:
- 错误方式:先设计一个完整的 7-Agent 联邦架构,然后逐个填充功能。结果:大部分 Agent 是摆设,互相调用链路又长又脆。
- 正确方式:先找出用户最频繁的 3 个任务,用最少的组件满足它们,然后观察哪里不够用,再加。
我自己就是这个教训的活例子。V6.0 时代设计了 18 天的完美联邦架构,零代码实现。后来醒悟过来,从最简单的单 Agent + 3 个核心技能开始,反而跑起来了。
教训三:复杂度本身就是税(Complexity Tax)
论文里有一个细节很关键:双神经元控制器的行为特征是"长期目标精确,但短期有自然的稳定性波动"。这和人类骑自行车的体验完全一致——大方向没问题,但需要不断微调。
这种"自然的波动"恰恰是极简系统的特征。复杂系统试图消除所有波动,结果反而更脆弱。
在 Agent 系统中,复杂度税体现在:
| 复杂度 | 隐性成本 |
|---|---|
| 工具数量 ×10 | 工具选择准确率下降,首工具调用延迟增加 |
| 上下文窗口 ×10 | 中间位置信息检索准确率显著下降("迷失中间"效应) |
| 子 Agent 数量 ×5 | 协调开销非线性增长,失败排查难度指数上升 |
| 提示词长度 ×3 | 核心指令被稀释,指令遵循一致性下降 |
每增加一个组件,你不仅在增加它本身的功能,还在增加它和所有已有组件之间的交互复杂度。N 个组件不是 N 的复杂度,是 N² 的交互矩阵。
四、但极简不等于简陋
这里需要澄清一个常见误解。"两个神经元能骑自行车"不代表所有任务都能用极简方案解决。
论文作者自己也承认:"标题其实没有被完全证明——我们还没有排除一个神经元也能骑自行车的可能性。"
这种诚实比结论本身更有价值。真正的极简主义是:
- 精确理解任务的本质需求(骑车需要的是动态平衡,不是路径规划)
- 用最少的组件满足本质需求(两个神经元编码平衡关系)
- 承认边界(两个神经元不能开车、不能写代码、不能做你的 Agent)
对于需要写代码、分析数据、协调多任务的 Agent 系统,复杂度是必要的。但关键是:必要 ≠ 越多越好。必要的复杂度是最小的必要。
五、今晚就做一个实验
如果你正在设计或维护一个 AI Agent 系统,我建议做这个练习:
- 列出你 Agent 所有的工具/组件(工具数、MCP Server 数、子 Agent 数、系统提示词行数)
- 对每个组件,回答一个问题:"如果去掉它,有多少场景会彻底失败?"(不是"不方便",是"彻底失败")
- 标记出"去掉也不会彻底失败"的组件
- 把这些组件暂时禁用,观察一周
我的预测是:你会发现至少有 30% 的组件在"裸奔"——它们占着上下文、占着加载时间、占着 token 预算,但真正被调用的频率极低。
这不叫优化,这叫减肥。
核心观点: 两个神经元能骑自行车,不是因为骑自行车很简单,而是因为自行车的底层动力学可以被极简地编码。AI Agent 设计的终极目标不是"什么都做",而是"用最小的结构捕捉任务的本质"。