精读笔记
Problem Setting
A Generative Partially Specified Finite State Machine Approach to Complex Behaviour Planning(arXiv preprint / 2026-07-20)
这篇论文实际处理的是 generative behaviour planning 的表示层问题:LLM 生成的计划如何既能被机器人执行,又保留行为系统的可解释性、可验证性和可组合性。它不是在提出新的底层控制器,也不是在解决端到端 robot reasoning,而是在重写 LLM 与符号行为系统之间的接口。
真正困难点在于,机器人行为计划同时需要满足三类约束:语言层面要容易生成,符号层面要可验证,运行时层面要能异步触发、失败恢复、局部重配置。已有 generative BT 方法解决了“文本化执行计划”问题,但 BT 的树结构、tick 传播和控制节点语义对 LLM 并不透明;传统 FSM 运行语义更直接,却缺少标准文本表示和动态加载机制。关键矛盾是:越接近机器人执行,表示越工程化、越难生成;越接近自然语言,表示越难验证和部署。
Motivation
作者的动机不是简单地说 FSM 比 BT 好,而是指出 BT 的成功很大程度来自 BehaviorTree.CPP XML 这种中间表示,而 FSM 生态缺的正是这一层。换句话说,BT 被 LLM 采用并不一定因为 BT 是最优规划表示,而是因为它已经有可生成、可解析、可执行的文本接口。
核心观察是:FSM 的事件触发语义和自然语言任务描述更接近。人类通常说“如果导航失败就去备选点”“问到名字后返回”,这天然是状态和事件边,而不是 tick-driven tree traversal。现有路线缺的是把这种优势工程化成一个 ROS2 可用的标准接口:capability 需要有语义描述,计划需要有机器可读形式,执行系统需要能把事件连接起来。
Core Idea
论文的核心思想是把生成式行为规划建模为“部分指定 FSM 图”的生成,而不是完整 BT 的生成。LLM 输出的不是任意代码,也不是完整的运行时策略,而是由 runner 节点、控制结构和事件边组成的 XML 行为图。执行系统负责解析、验证、实例化和按事件触发这些节点。
这改变了建模方式:计划不再必须是从 root 开始反复 tick 的全局树,而是一个可局部激活、可逐段加载、可由成功/失败事件推进的 directed graph。新的 inductive bias 是显式转移和局部组合。相比 BT,LLM 不需要隐式模拟 tick 语义,只需要生成局部因果关系:哪个 runner 完成后触发哪个 runner,失败时走哪条 recovery edge。这使 zero-shot 生成空间更简单,也让 validator 更容易检查结构错误。
和 prior 的本质区别在于,它不是在 BT 上做更好的 prompt engineering,而是换了中间表示的语义几何:从层级控制流转向事件图控制流。这个变化可能比具体 ROS2 模块更重要。
Method
方法中真正必要的机制有三类。
第一,文本化 FSM execution plan。它解决的是传统 FSM 必须在代码中定义状态和转移的问题。没有这层表示,LLM 无法稳定生成可执行 FSM。XML 在这里不是亮点本身,亮点是把 FSM 的状态、事件边、控制结构变成受限语言,从而把生成任务从 open-ended code generation 降成 structured plan generation。
第二,capability-grounded runner abstraction。每个 runner 对应机器人可执行能力,参数在运行时注入。它解决的是 LLM 生成计划容易引用不存在函数、错误参数或不可移植接口的问题。核心变化是生成空间被 capability catalog 限定,计划组合与机器人底层接口解耦。
第三,异步事件系统和 start/trigger separation。start 负责加载能力及依赖,trigger 负责实际执行。这解决长时程行为中“所有节点必须预先加载”的问题,也允许 inactive behaviour 保持离线。事件边承担 FSM graph 的 edge 语义,使行为执行沿 STARTED、STOPPED、SUCCESS、FAILED 等事件传播。
Sequential、Recovery、Parallel-Any、Parallel-All 控制结构本质上是为了把常见 BT control-flow pattern 映射到 FSM 图中。它们是必要的兼容层,但不是核心科学贡献;核心贡献仍是用事件图承载生成式计划。
Key Insight / Why It Works
最可能真正有效的原因是 representation alignment,而不是 LLM reasoning 突然变强。FSM 的显式事件转移把计划生成拆成一组局部约束,LLM 只需保持节点名、参数和边关系一致;BT 则要求同时维护层级嵌套、控制节点语义、返回状态传播和执行顺序。后者对 zero-shot 生成更容易出现结构性错误。
这篇论文的核心贡献更像是 better inductive bias + schema-constrained generation + capability grounding 的组合。它不是 scaling,也不是 retrieval;也没有训练新模型。所谓“generative FSM planning”主要依赖预训练 LLM 的通用代码/XML生成能力,以及一个更适合 LLM 的目标表示。
部分增益可能来自 engineering。Fabric prompt 使用 runner-plugin capability 描述,BTGenBot 的 prompt 即使被补了 recovery example,也未必具有同等语义组织质量。Fabric 的成功可能来自更清晰的 schema、更短的 dependency chain、更直接的参数空间,而不一定来自 FSM 在规划理论上的优越性。文中没有做充分 ablation 来区分这些因素。
另一个关键点是,GPSFSM 把“不确定性”处理为 partial plan loading 和事件驱动再生成,而不是显式 belief/state uncertainty modeling。因此它对 epistemic uncertainty 的处理更像系统级延迟决策,不是严格意义上的不确定性规划。这个机制在工程上有用,但不能过度解释为长期推理能力。
Relation To Prior Work
最接近的谱系是 LLM-generated symbolic behaviour representation:Code-as-Policies / SayCan 一类生成可执行代码或动作序列,LLM-BT / BTGenBot 一类生成 BT,本文则生成 FSM-style event graph。它不是端到端 VLA,也不是经典 symbolic planner,而是 neurosymbolic behaviour orchestration。
和 BTGenBot 的本质差异不是“BT vs FSM”这个标签,而是执行语义暴露给 LLM 的方式不同。BT 把控制逻辑包在树结构和 tick 机制里,FSM 把控制逻辑显式化为事件边。对于 LLM 来说,后者更接近流程图或状态转移表,因此 zero-shot 更容易。
看似新的地方中,XML 表示、capability catalog、runtime parameter injection、event callback、fallback/recovery 都不是全新思想;它们分别在 BT、ROS capability systems、FSM engines、workflow engines 中存在。实质创新是把这些拼成一个面向 generative planning 的 ROS2 FSM stack,并用 partial specified FSM 作为中间表示来挑战 BT 在该方向的默认地位。
因此,这篇工作的价值更像“重新打开 FSM 作为 LLM 行为计划 IR 的可能性”,而不是提出新的规划算法。
Dataset / Evaluation
评估覆盖较窄。主要 benchmark 是 Nav2 waypoint navigation,逐步增加 unreachable points 和 recovery points。这个设置适合测试 XML plan generation 的结构正确性,但不足以验证复杂机器人行为规划的泛化能力。任务空间基本仍是线性导航加 recovery 分支,离真正长时程、多模态、多资源约束任务还有距离。
对 BTGenBot 的对比支持一个具体 claim:在这些导航任务中,Fabric FSM 表示在 GPT 模型上 zero-shot 生成更稳。它不充分支持更大的 claim:GPSFSM 在动态环境、人机交互、长时程不确定任务中整体优于 BT。真机实验展示了 navigation + perception + speech 的 pipeline 能跑通,但没有对照、没有系统性成功率、没有失败分析,本质是 capability demonstration。
评估中还有人工判断 syntactic/semantic correctness,这在早期系统论文中可以接受,但会引入主观性。更关键的是,执行阶段的鲁棒性没有被充分量化:计划生成正确不等于真实部署可靠。文中也未充分说明 corrupted rows 的排除是否影响比较,尤其 local models 中 Fabric one-shot 出现大量直接复述 prompt example 的情况。
Limitation
方法成立依赖几个强前提:capability 描述必须准确且足够完整;runner 的语义必须相对原子、无复杂副作用;任务可以被表示为离散事件转移图;环境变化可以通过失败事件、fallback 或重新生成处理。如果这些条件不满足,GPSFSM 只是把规划难题转移到了 capability engineering 和 runtime monitoring。
scalability 上限主要在图复杂度和语义约束传播。FSM 图在节点和异常分支增多时容易爆炸;Parallel-All / Parallel-Any 只能处理简单并发完成条件,无法自然表达资源锁、时序窗口、持续条件监控、全局 safety invariants。BT 至少在层级模块化上有成熟经验,FSM 的 general graph 反而可能带来可读性和验证复杂度。
泛化证据不足。所谓 zero-shot 优势可能只是因为 Fabric XML schema 与 prompt 中的 examples/constraints 更贴合 GPT 的生成分布,而不是模型学会了更深的规划。核心能力可能主要来自数据覆盖和表示约束;所谓推理更像 constrained template composition。
增益来源不清。没有 ablation 比较 FSM vs BT 在相同 capability 描述、相同 schema 复杂度、相同 prompt budget、相同 validator 下的表现。也没有证明 event-driven execution 的资源优势或 fault tolerance 优势。文中未充分说明 partial specification 在真实长时程任务中的收益是否超过普通 hierarchical replanning。
Takeaway
- 最值得记住的第一点:在 LLM behaviour planning 中,中间表示比模型选择更关键。
- 把计划表示改成 LLM 更容易生成、系统更容易验证的形式,可能比微调小模型更直接。
- 第二点:FSM 作为 generative planning IR 被低估了。
- BT 的流行部分来自工具链和 XML 生态,而不是它必然是 LLM 最友好的控制表示。
一句话总结
这篇论文把生成式机器人行为规划从 BT-centric XML tree generation 推向 FSM-centric event graph generation,真正贡献是提出了一种更贴合 LLM 结构化生成能力的行为计划中间表示,而不是新的规划算法。
