5.1 agent 系统
本节定位:ANIMA 是 Soma Zero 这套机器人的「脑」。但「脑」本质上是一个 agent(智能体)——和 Claude Code、Codex 这些当今最强的编码 agent 是同一类东西。既然别人已经把「怎么造一个靠谱的 agent」摸索出了一整套工程经验,我们没理由从零试错。这一节就是把这些经验,翻译成给「机器人大脑」用的设计原则。
这一节怎么读:分两大部分。第一部分(AI agent)讲通用的 agent 工程纪律——主循环、把上下文当稀缺资源、五根支柱(记忆 / 接口 / 验证 / 安全 / 编排)、能力积累,以及给 ANIMA 的落地清单;这些经验主要来自 Claude Code 这类编码 agent。第二部分(搬上机器人)讲机器人特有的改造:为什么不能照搬编码 agent、主流「慢脑 + 快手」(System 2 / System 1)框架如何把深思与控制分开异步运行,以及这一切如何映射到 ANIMA。每一步都先讲「人家为什么这么做」,再讲「搬到 ANIMA 上是什么样」。
一、什么是 agent:ANIMA 与编码 agent 的同构关系
先把名词说清楚。agent(智能体)说白了就是一个程序:你给它一个目标,它自己「看一眼现状 → 想一下 → 动手调一个工具 → 再看结果 → 再想」,这样一圈一圈转,直到把活干完。中间「想」用的是大模型,「动手」用的是各种工具。
这个「一圈一圈转」的循环,就是 agent 的心脏,业界叫主循环(main loop)。这里有个反直觉但极其重要的事实:当今最强的编码 agent(如 Claude Code),它的主循环简单到只是一个 while 循环——调模型、跑工具、拿结果、再调模型,并没有什么花哨的多阶段规划器。复杂度不在循环里,而在循环周围那一圈「外围设施」(记忆、验证、安全闸门)。
那 ANIMA 呢?它也是这同一个循环,只不过把「眼」和「手」换了:编码 agent 的「眼」是读文件、ANIMA 的「眼」是相机看棋盘;编码 agent 的「手」是改代码 / 跑命令、ANIMA 的「手」是机械臂(背后是 VLA 策略);编码 agent 的「裁判」是跑单元测试、ANIMA 的「裁判」是视觉识别 + python-chess 比对。
本节核心结论:顶级 agent 强,不强在「大脑更聪明」,强在「外围工程扎实」。所以 ANIMA 不该把力气全花在「让 LLM 想得更妙」,而要花在外围——这正是 ANIMA 选「行为树 + LLM 补空」而不是「自由 ReAct」的底层理由:主流程用确定的代码(行为树)兜住,LLM 只在节点里补空。对一台会真实运动、有物理风险的机械臂,这种「能用固定流程就别放权」的克制是对的。
二、主线:上下文是稀缺资源
接下来所有讲究,都从这一句长出来,先讲透它。过去大家研究「怎么把提示词写好」(prompt engineering)。现在顶级 agent 团队把重心挪到了上下文工程(context engineering)——不是写好一句话,而是整体地管理「每一时刻喂进模型的全部信息」:系统指令、工具说明、历史对话、外部数据,全都要精打细算。
为什么?因为有个现象叫上下文腐烂(context rot):你塞进模型的 token 越多,它准确回忆其中信息的能力反而越差。根子在于大模型的注意力是「每个词和每个词两两算关系」,词一多,注意力就被稀释。所以上下文不是越多越好,而是边际递减。指导原则就一句:用能达成目标的、最小的一组高信号 token。
对 ANIMA:一局棋 80~100 步,每一步都会产生「看到了什么、期望是什么、对没对上、重试了几次」。如果一股脑全堆进 System 2 的上下文,很快就会「腐烂」——它会忘掉开局的关键约束。所以从第一天起,就要把「上下文预算」当成一等公民来管。怎么管?就是下面五根支柱里的第一根——记忆。
三、支柱一 · 记忆与状态:外部化存储
既然上下文有限,那「装不下的东西」就得有地方放。顶级 agent 有三招,外加一招「状态持久化」。
1. 压缩(compaction)——但要小心它会丢细节。 当对话快塞满了,就把前面一大段高保真地总结成一小段摘要,然后从摘要重新开始。Anthropic 的实测:压缩能把上下文砍掉约一半,但有个关键代价——「高层事实」基本保得住,「冷僻细节」几乎全丢(基准里高层 3/3 保留、冷僻 0/3 全丢)。
⚠️ 对机器人这条是红线:像「夹爪角度不得超过 100°」「某个标定外参的精确值」这种精确数字,绝不能指望压缩帮你记住——压缩恰恰最爱丢这种冷僻细节。它们必须放进下面说的「硬约束」或「外置记忆」。
2. 外置记忆 + 进度文件——光压缩不够。 顶级 agent 团队发现:哪怕压缩了,跨越很多轮之后模型还是会「找不着北」。解法是把状态写成外部文件:一个进度文件(记「干到哪了」)+ 一份事件日志(记「发生过什么」)。这样哪怕上下文被清空,一个全新的窗口读一眼文件就能立刻恢复工作。对 ANIMA,这就是一份对局进度产物:走到第几步、上一步成败、机械臂当前状态——断电、急停、CAN 掉线之后,靠它续上,而不是从开局重下。
3. 分层作用域记忆——规则按「管辖范围」叠加。 Claude Code 的记忆文件(CLAUDE.md)是分层的:全局策略 > 用户级 > 项目级 > 本地,从宽到窄,向上拼接而不是互相覆盖。而且是双轨:人手写的硬规则 + 机器自己积累的经验笔记。搬到 ANIMA 正好:全局安全约束(永远生效)> 这一局棋的指令 > 这一步的临时指令,叠加生效。
4. 状态持久化(checkpoint)——每一步都「存档」。 开源框架 LangGraph 把这件事做到了极致:流程的每一步都先从一个状态快照(checkpoint)读、再写回一个新快照。好处有三个,对机器人都值钱:① 崩溃可恢复(从断点续,不从头来);② 可中断(停在某一步等人,之后接着跑——留到「安全」一节细讲);③ 时间旅行(回到「第 17 手出错」那个存档,改一改、长出一条支线重放,原来那局不受影响)。注意:第 ③ 条只能用在仿真和逻辑层复盘,绝不能用来「重放真机动作」——真机动作不可逆,重放等于让机械臂再动一次。
四、支柱二 · 工具与接口:精简、正交、面向 agent
ANIMA 的 System 2 要「指挥」System 1,靠的是一套接口。这套接口怎么定,直接决定它好不好用。两条经验:
1. 工具要「少而正交、面向工作流」。 反面教材是给一堆零碎的低层工具(「列用户」「列日程」「建日程」);正面做法是合并成一个高层工作流工具(「帮我排个会」,内部自己找空档)。业界共识:工具太多或互相重叠,会把 agent 带偏(微软、OpenAI 都有此结论)。
2. 接口要专门为 agent 设计,而不是把「给人用的」拿来复用(ACI)。 这是开源项目 SWE-agent 的核心论点,而且有硬数据:固定同一个模型,只改接口,在 SWE-bench 上就能多解 10.7 个百分点。它的四条设计原则可以直接当 ANIMA 的接口 checklist:① 动作让 LLM 一眼能懂;② 把多步操作合并成少数高阶原语(少一次决策就少一次出错);③ 反馈要信息足够但简洁;④ 内建护栏,遏制错误扩散。
对 ANIMA:System 2 不该用「给人看的 ROS topic / MoveIt 界面」去驱动 System 1,更不该让 LLM 去拼关节角和轨迹。正确做法是定义少数几个高阶棋步原语,比如「把 e2 的子走到 e4」是一个原语,内部自动完成「定位—抓取—移动—放置—自检」。
五、支柱三 · 验证闭环:执行后必须验证
顶级 agent 最硬的一条教训:不要相信模型自己说「干完了」,要用一个独立的、端到端的验证去核实。 编码 agent 怎么做的?端到端验证胜过自查——与其只跑单元测试,不如开个浏览器像真人一样把功能走一遍;护栏闭环(SWE-agent 的 linter)——每次编辑后立刻跑语法检查,一旦发现错误就把这次编辑丢弃(坏改动从不落盘),同时把「错在哪 + 改动前后的片段」简洁地回给 agent,让它重试。
这套「执行 → 独立核验 → 不对就别让状态前进 → 简洁反馈 → 重试」,正是 ANIMA 视觉裁判的设计蓝本,而且 ANIMA 做得还更硬——它有 python-chess 提供的逻辑真值兜底,不像编码 agent 只能靠测试。映射过来:VLA 走完一手 → 视觉裁判看真实棋盘,和 python-chess 算出的「期望局面」比对;不一致 → 逻辑真值不许前进(错误绝不向后传播);反馈要紧凑可定位——回「e4 该有子却空了 / d5 多出一子(碰倒了)」这种一句话差异,而不是把整帧图像灌给 LLM;然后重试 / 触发恢复。还有一条来自 Devin:子任务在「汇报成功」之前必须先自验——这给 ANIMA「视觉裁判才是成败最终判定、python-chess 只是给期望值的盲工具」提供了独立佐证。
六、支柱四 · 安全闸门:硬安全独立于提示词
这是对 ANIMA 最重要的一节,因为机械臂动作不可逆,撞坏了就是撞坏了。
核心铁律:记忆文件、系统提示词,对模型来说都只是「参考上下文」,不是「强制配置」——模型可以选择不听。所以任何「硬安全」都不能只靠写进提示词。要真正拦住一个动作,必须有一道不经过 LLM 的、确定性的代码闸门。
顶级 agent 把这条做到了什么程度?Claude Code 用 PreToolUse hook:在工具真正执行前跑一段固定校验,模型怎么想都绕不过。Codex 更狠,直接上操作系统级隔离(macOS Seatbelt、Linux bubblewrap+seccomp、Windows 原生沙箱)——哪怕模型被攻击想干坏事,也越不过操作系统这堵墙;它还把安全拆成两层:「能力闸门」(技术上能做什么)和「审批闸门」(什么时候必须问人),两层都同意才放行,并且默认「读操作自动放行、改状态的操作要人批」「默认拒绝、只给指定工作区开口」。LangGraph 的 interrupt 提供了「审批」的优雅形态:在动作下发之前暂停,把「要做什么 + 期望结果」写进持久层等人确认,人逐个批准后再 resume。
⚠️ interrupt 还带出一条真机专属的硬约束:恢复时会「重跑被中断节点里、暂停点之前的代码」。这意味着——真正驱动硬件的那行代码,必须放在审批之后;暂停点之前只能放纯计算、读状态这种「重跑也没关系」的操作。否则一旦走审批流程,机械臂会动两次。
对 ANIMA 的落地:在 LLM 输出动作、到动作真正下发给 CAN / 机械臂之间,插一道独立的确定性安全闸门。它做两件事:① 能力校验(角度是否 ≤100°、目标是否在标定过的安全工作区和合法棋盘格内、CAN 是否被占用)——不满足直接硬拦;② 审批(不可逆动作前,按项目铁律交人确认)。默认拒绝任何关节运动,只有通过校验 + 人批准的指令才放行。 这把编码 agent 的「软提示 + 事后 git 回滚」范式,正确替换成机器人需要的「事前硬阻断 + 单步确认」。
七、支柱五 · 能力积累:单脑收口,持续改进
先说编排。Devin 的经验:要有单一编排者收口,不要让多个 agent 共享并累积同一份上下文(上下文一胀,每个子任务质量都掉)。这正好支持 ANIMA「System 2 只编排不动手」的单脑设计。而且——一套物理本体不能真并行控制同一只机械臂,下棋又是强相互依赖的串行任务(一步接一步、共享棋局),所以 ANIMA 用「串行行为树主干」是对的,不该盲目并行。
小提醒:业界曾有「多 agent 比单 agent 强 90%」的说法,但那是单次内部评测、没独立复现,而且只在「可大量并行」的任务上成立。别据此给 ANIMA 堆一堆 LLM 子 agent——ANIMA 的 System 1 是 VLA 策略,根本不是 LLM。
再说能力积累——怎么让 ANIMA「越用越聪明」,而且不用重新训练 VLA 的权重。靠两条腿:Voyager 式技能库,把反复验证成功、可复用的操作固化成可执行技能,按「自然语言描述」的向量索引,下次相似情境直接检索来用(如「e2→e4 的标准抓放序列」「把吃掉的子移到回收区」)——这是可执行的记忆;Reflexion 式口头反思,把一次失败「反思成一段文字」(如「这类残局我老是过早换子」),存进情景记忆,下次遇到相似局面载入来提醒自己——它存的是经验教训,模糊匹配,完全不动权重。
一条可操作准则:反思回答「下次该怎么想」(文字,进情景记忆,模糊召回);技能回答「这个动作怎么做」(代码,进技能库,精确调用)。失败先产生反思;当某个解法稳定成功、可复用了,再把它从「反思」晋升成「技能」。 ⚠️ 机器人技能涉及不可逆物理动作,入库前必须经视觉裁判验证 + 人类审批,不能像 Voyager 在 Minecraft 里那样自动纳新。
八、不能照搬之处:机器人与编码 agent 的四条鸿沟
把经验搬过来时,必须时刻记住这四条根本差异,否则会出事:
- 物理错误要分「可恢复」和「真不可逆」:编码 agent 靠「做错了用 git 回滚」兜底,机器人没有 Ctrl-Z——但这不等于一切物理错误都不可逆。撞倒、抓偏棋子其实是可恢复的:棋盘是已知的刚性结构、棋局状态由 python-chess 记着真值,重新摆放或重抓即可,这正是「失败检测 + 重试」能成立的前提。真正不可逆的是撞墙、撞桌沿、撞到自身结构或人、把整盘棋扫翻这类会损坏硬件或伤人的动作。→ 所以硬闸门要对准「会造成损坏 / 不可逆」的动作做事前阻断 + 单步确认;可恢复的失误交给检测后重试,不必为它牺牲流畅。
- 谁是裁判:符号工具给「期望」,眼睛给「观测」,脑来判:编码 agent 的裁判(单元测试)几乎可信、近乎真值;机器人的裁判是视觉,会看错。这里要纠正一个常见误解——python-chess 不是和视觉并列的「第二个裁判」,它是脑调用的一个工具:它只持有「这步走完棋盘应该变成什么样」(expected),却看不见物理棋盘。真正的裁判是脑:拿眼睛读到的真实棋盘(observed)去和 python-chess 的 expected 比对,一致才算成功。所以正确链路是「python-chess 出期望 → 视觉出观测 → 脑做比对判定」,而不是「两个裁判各投一票」。这个带噪声的视觉比对才是核心难点(第二部分第十二节详述)。
- 硬实时:快环不能等慢环:编码 agent 可以同步「停下来思考」,反正慢一点只是等;机器人不行——机械臂在物理世界里连续运动,控制环一旦停顿就会抖、就会偏。所以主流机器人大脑不是「想完再动」的串行,而是快慢两环异步分频并行:慢环(深思、重规划、查棋)在后台低频跑、不时刷新一个子目标,快环(连续控制)始终用「上一次的子目标」高频出动作、绝不暂停。「停下来整理上下文 / 重规划」因此是后台并发的慢环,不是动作里的一次暂停(第二部分第十一节详述)。
- 别把单次内部评测当通用规律:业界有个常被引用的说法——「多 agent 协作比单 agent 强约 90%」,但那是某家的单次内部评测、自报数据。当我们要决定 ANIMA 的脑要不要拆成多个专职子 agent(职责分离)时,能借用的只是定性结论「分工通常有好处」;至于到底拆不拆、拆成几个,要由我们自己的任务和实测来定,绝不能把「90%」当成目标或论据照搬。
这四条里,后三条都指向同一个根源——机器人的脑必须按「快慢双系统」来组织,这正是下面第二部分要展开的。
九、ANIMA 的落地优先级清单
| 优先级 | 做什么 | 来自谁 | 一句话怎么落地 |
|---|---|---|---|
| P0 安全 | 确定性安全闸门 | Codex / Claude Code / LangGraph | LLM 与真机之间插一道不经过 LLM 的闸门;能力校验 + 审批;默认拒绝 |
| P0 安全 | 能力闸门 ⟂ 审批闸门两层分离 | Codex | 「技术上能不能下发」与「要不要人批」分开;读放行 / 改审批 |
| P0 安全 | 硬件副作用放在审批之后(幂等) | LangGraph | 暂停点之前只放纯计算 / 读状态,驱动臂的代码放审批后,避免动两次 |
| P1 验证 | 视觉裁判闭环,禁止 LLM 自述成功 | SWE-agent / Devin | 不一致则逻辑真值不前进;反馈紧凑可定位(哪格错),不灌整帧图 |
| P1 记忆 | 外置进度文件 + checkpoint 事件日志 | Claude Code / LangGraph | 断电 / 急停后读文件即恢复;精确数字走硬约束,不靠压缩 |
| P1 记忆 | 分层作用域记忆(全局安全 > 任务 > 步) | Claude Code | 向上拼接不覆盖;人写硬规则 + 机器自积累经验双轨 |
| P2 接口 | 少而正交、面向工作流的高阶动作原语 | SWE-agent | 「把 e2 的子走到 e4」是一个原语,别让 LLM 拼关节角 |
| P2 编排 | 单编排者收口,串行行为树主干 | Devin | System 2 单脑;不盲目并行;System 1 是 VLA 不是 LLM |
| P2 积累 | 反思(文字)+ 技能库(代码)+ 晋升流水线 | Reflexion / Voyager | 失败先存反思,稳定可复用后晋升为技能;入库须验证 + 审批 |
| P3 工程 | 主循环极简、复杂度放外围 | Claude Code | 行为树 + LLM 补空维持现状,不上重型框架 |
| P3 调试 | time-travel 复盘(仅限仿真 / 逻辑层) | LangGraph | 回到出错那步开支线重放;绝不用于重放真机动作 |
十、双系统分层:System 1 / System 2
先给结论:2025 年以来,主流具身智能框架几乎一致地把「脑」拆成两层异步运行的系统。这套叫法借自心理学家卡尼曼的「快思考 / 慢思考」。
- System 2(慢脑):一个在互联网数据上预训练的大模型(视觉语言模型 VLM / 多模态大模型),负责看懂场景、理解语言、多步规划、估计进度与成败。它跑得慢、频率低(约 1~9 Hz,即每秒只「想」几次),但见多识广、会推理。
- System 1(快手):一个轻量的视觉运动策略(扩散 / 流匹配 / 小型 transformer),负责把慢脑给的目标实时变成连续关节动作。它跑得快、频率高(约 25~200 Hz),但不思考、只反应。
为什么非拆不可?因为「会推理的大模型」和「能实时控制的策略」对算力与延迟的要求正好相反:大模型一次前向推理动辄几十上百毫秒,配不上几十赫兹的控制节奏;而能跑到 200 Hz 的小策略又没有推理能力。把两者拆开、各跑各的频率,是工程上的必然选择。
主流框架长什么样(频率与接口对照)。下表把几个有代表性的框架放在一起——注意频率多来自厂商博客或预印本、会随版本变化,可迁移的是「分层 + 异步」这个模式,不是具体数字:
| 框架 | 慢脑 System 2 | 快手 System 1 | 两层接口 |
|---|---|---|---|
| Figure Helix(2025) | 7B VLM · 7–9 Hz | 80M 策略 · 200 Hz | 单个连续 latent 向量 |
| Google Gemini Robotics | Gemini Robotics-ER(推理脑·调工具·估成败) | Gemini Robotics VLA(执行手) | 自然语言子指令 |
| PI π0.5 / Hi Robot | VLM · 约 1 Hz(或单模型先出语言子目标) | π0 VLA · 50 Hz | 人类可读的原子语言指令 |
| NVIDIA GR00T N1.5 | VLM · 约 10 Hz | 扩散 transformer · 约 120 Hz | latent 表示 |
| DuoCore-FS(2025) | 大 VLM · 1–3 Hz | 策略 · 25–30 Hz | bridge buffer(异步缓冲) |
| Google RT-2 | 55B · 1–3 Hz(或 5B · 约 5 Hz) | —(端到端单模型,作对照) | — |
两层之间「传什么」分两大流派:传语言(Hi Robot、π0.5 让脑说一句人能读懂的「把杯子拿起来」,再让手照着做)和传潜向量(Helix 把语义压成一个连续向量、GR00T 传 latent)。对 ANIMA,我们取语言接口——因为语言接口可读、可审计,还能被 Stockfish / python-chess 这类符号工具介入;latent 是黑箱,工具插不进去。
十一、快慢环协调:异步分频
这一节直接回答前面「四条鸿沟」里的实时性问题。关键不是「先想后动」的先后,而是「两环并行、互不阻塞」。
最先进的做法(DuoCore-FS、Real-Time Chunking 等)是真正的异步:慢环在后台每隔一段时间(如每秒 1~3 次)刷新一次子目标 / 中间表示;快环每秒做几十次,每次都取「当前最新的那个子目标」继续出动作。哪怕慢环这一拍还没想完,快环也用上一次的子目标平滑地接着动,绝不停下来等。
为什么必须这样?Physical Intelligence 的 Real-Time Chunking 给了一组硬数字:在 50 Hz 控制(每步只有 20 毫秒)下,一个 30 亿参数的策略光是准备一次推理就要 46 毫秒,70 亿参数的 OpenVLA 一次推理要 321 毫秒——根本不可能在两个控制步之间算完。它的解法是「冻结 + 补全」:已经来不及改的前几个动作先锁定、照常执行,推理在后台线程里跑,新结果一出来就无缝接上,保证任何时刻都有动作可发。
所以原来「停下来整理上下文只能在动作间隙」的说法不够准确。正确的图景是:慢思考是一条一直在后台跑的低频线程,它从不打断高频控制;真正要协调的,是「快环如何始终拿到一个够用的子目标」,而不是「什么时候允许暂停」。⚠️ 还有一个重要提醒:分层本身不自带纠错——π0.5、GR00T 等论文都坦承自己没有闭环重规划,闭环必须我们在慢环里显式加(见下一节的裁判,以及第二章的重试)。
十二、期望 / 观测 / 裁判:符号工具与感知的分工
这一节展开「四条鸿沟」里的裁判问题,也是 ANIMA 最容易搭错的地方。先看业界怎么摆放符号工具:
- 在 SPCA(Sense-Plan-Code-Act)这类框架里,符号校验器(规则检查 / 经典规划器 / 仿真编译)是高层推理器调用的「可信锚点」:大模型负责提议(它会幻觉、不可靠),符号侧负责裁决合不合法。谁校验谁很清楚——干净的符号侧裁定有效性,大模型只是提议者。
- 失败判定则被拆成两道闸门:事前用符号侧做「这步合不合法 / 可不可行」的语义过滤(拦住明显错误的动作),事后用真机感知做「物理上到底成没成」的评估(对比动作前后的真实状态)。带噪声的物理观测,才是最终成败的裁判。
把这套放到下棋上,就能纠正一个常见误解:
- python-chess 是工具,持有「期望」:它知道规则、知道「e2 的兵走到 e4 后棋盘应该长什么样」,但它看不见物理棋盘,本身不能判断真机有没有放对。它对应业界的「事前符号过滤」——校验走法合法、并给出 expected。
- 相机 + 检测器是眼睛,给出「观测」:真机棋盘实际变成了什么样(observed),有噪声、会看错。
- 脑是唯一的裁判:拿 observed 和 expected 比对,一致才算成功,不一致就触发重试。这对应业界的「事后物理评估」。
所以正确链路是「python-chess 出期望 → 视觉出观测 → 脑做比对判定」的串接,而不是「视觉和 python-chess 各当一个裁判、双双确认」。逻辑真值(应该怎样)在 python-chess,物理真相(实际怎样)在眼睛,判定权在脑。这个带噪声的视觉比对是 ANIMA 的核心难点,也是「失败检测 → 重试」可靠性的隐藏天花板。
十三、经验迁移:哪些可用、哪些不可用
把第一部分的纪律逐条过一遍,标出「具身」会不会改写它。(最后这一栏是从「物理不可逆 + 硬实时 + 感知有噪」综合推出的判断,不是单篇论文的实证结论。)
| 编码 agent 的经验 | 能否迁移到 ANIMA | 为什么 / 怎么改 |
|---|---|---|
| 外置记忆 + 进度文件 | 能,直接用 | 断电 / 急停后读文件即恢复,与机器人无冲突 |
| 少而正交的高层工具 / 原语 | 能 | 「把 e2 的子走到 e4」是一个原语,别让大模型去拼关节角 |
| 确定性硬安全闸门 | 能,且更重要 | SPCA 的编译+仿真校验、事前/事后双闸门都是同一思路;机器人这里关系到硬件与人身安全 |
| 闭环验证、禁止自述成功 | 能,但裁判换成视觉 | 编码 agent 信测试,ANIMA 的「测试」是带噪视觉,要按上一节做 expected × observed 比对 |
| 同步「停下来思考」 | 不能照搬 | 快环不能停;深思必须改成后台并发的慢环(第十一节) |
| 「做错了回滚重来」 | 不能照搬 | 物理没有 Ctrl-Z;可恢复失误靠重试,不可逆 / 有损害动作靠事前硬闸门(第九节) |
| 多 agent「强 90%」这类数字 | 只取定性 | 自报单次评测;只借「职责分离通常有益」,拆不拆由自己任务定 |
十四、回到 ANIMA:脑如何指挥手
把以上拼起来,ANIMA 的形态就清楚了——它是一个「慢脑」,统领一组工具与一只「快手」:
- 脑 = ANIMA(大模型编排器)+ 一组工具:Stockfish 出招、python-chess 校验合法性并持有期望、失败检测器读视觉。脑在低频里想「下哪步、这步成没成、要不要重试」。
- 手 = VLA 策略(System 1):在高频里把脑给的「把某子走到某格」变成连续抓放动作。
- 眼 = 相机 + 检测器:给出物理棋盘的 observed,喂给脑当裁判。
- 接口 = 人类可读的语言原子指令(取自 Hi Robot / π0.5),而非 latent 黑箱——这样 Stockfish / python-chess 才能介入。
- 闭环靠自己加:业界框架(π0.5 / GR00T)多不自带纠错,所以「估成败 → 重试」要在 ANIMA 的慢环里显式实现,以 Gemini Robotics-ER 的「成功估计」为范本。
一句话:逻辑真值在 python-chess,物理真相靠眼睛,判定与编排在脑,动作在手。更完整的框架巡览与 ANIMA 架构图,见第四章 · 附录1 脑规划框架调研。
来源与可信度说明
- 全部证据来自一手资料:Anthropic / OpenAI / Cursor / Cognition 官方工程博客与文档、LangChain 官方文档,以及 SWE-agent(arXiv 2405.15793)、Reflexion(arXiv 2303.11366)、Voyager 论文与官方实现。绝大多数主张经过三票对抗式核验。
- 少数标「中等置信」的:Cursor 的检索准确率提升是厂商自报基准;「多 agent 强 90%」是单次内部评测——均只取定性结论。「反思→晋升为技能」流水线是面向 ANIMA 的工程综合,非论文原文主张。
- 时效性:资料集中在 2025 末—2026 上半年,具体数字会随版本变化,可迁移的是设计模式而非数字。完整带引用的研究底稿见仓库
research/agent-system/下三份报告。 - 第二部分(机器人框架)来源:Figure Helix(figure.ai/news/helix)、Physical Intelligence π0.5 与 Real-Time Chunking(pi.website)、DuoCore-FS(arXiv 2512.20188)、OpenHelix 综述(arXiv 2505.03912)、SPCA / Sense-Plan-Code-Act(MDPI MAKE 8(1):22, 2026),以及 Google Gemini Robotics、NVIDIA GR00T N1.5、RT-2 等公开资料;各框架的 System 1/System 2 频率经多源交叉核验,绝大多数主张经过三票对抗式核验。
- 第二部分的几点提醒:① Helix 的 7–9 / 200 Hz 来自厂商博客、且只描述 2025 年初版,后续型号未必相同;②「bridge buffer」「事前 / 事后双闸门」是各自论文的专有术语、非行业标准,文中已归属到具体来源;③「快慢真正异步」只有 DuoCore-FS / Real-Time Chunking 等近期工作做到,早期双系统多为同步、快环被慢 VLM 卡住频率;④「哪些经验不能迁移」是从「物理不可逆 + 硬实时 + 感知有噪」综合推出的判断,非单篇实证。