这篇arXiv上的SPE论文让我眼前一亮。核心思想其实很直接:传统agent框架里,我们用固定编排(比如ReAct、Plan-and-Execute)控制状态转换,但SPE把编排权全部交给模型补全本身,框架只负责执行模型输出的“程序”。这意味着agent的状态不再受限于预定义的轮次间逻辑,而是由模型动态决定下一步该做什么。
从技术层面看,SPE用“代理机器”形式化了这个过程——每个状态都是可加载的嵌入式机器副本,模型补全可以任意改写下一状态。这实际上打破了固定编排的瓶颈:传统架构下,模型只能输出工具调用或文本,编排器再决定如何继续;而SPE让模型直接输出“下一步要执行的代码”,框架只负责跑这段代码。这有点像把agent从“被调度的工人”变成了“自己写调度脚本的工程师”。
个人经验来看,我在实际落地复杂多步任务(如数据分析流水线)时,最大的痛点就是固定编排无法覆盖所有边缘情况。ReAct经常在需要回溯或并行时卡住。SPE理论上能解决这个问题,因为模型可以动态生成循环、条件分支甚至递归逻辑。但问题也很明显:模型生成的代码安全性如何保证?如果模型写了一个死循环或者恶意操作,框架是否该有“监护人”模式?
另外,我怀疑SPE在长上下文场景下的推理开销会剧增。传统编排是轻量级的状态机,而SPE每步都要模型输出一段可执行程序,这相当于把编排逻辑的推理负担全部压到了模型上。对于资源有限的部署环境,这可能是个隐患。
讨论问题:1. SPE在实际工程中如何平衡模型自由度与系统稳定性?是否需要引入“编排沙箱”来限制模型生成的程序行为?2. 相比传统的隐式状态(如ReAct的思维链),SPE的显式状态机对模型推理能力的要求是否过高?这会否成为小模型落地的阻碍?
行业视野上,SPE可能推动agent框架从“固定管线”向“动态自编程”演进,但短期内更实际的应用可能是混合架构——固定编排处理常规流程,SPE作为“高级模式”处理复杂异常。这有点像微服务架构中引入BPMN工作流引擎后,再给特定节点挂载动态脚本支持。未来agent框架的竞争点,或许不再是编排策略本身,而是如何设计安全、高效的模型自编程接口。