看到arXiv这篇关于自我编程执行(SPE)的论文,我第一反应是:终于有人对固定编排器下手了。当前主流代理框架如LangChain、AutoGPT,本质上都是预定义的编排循环(while loop + tool calling),这在简单任务中够用,但一旦遇到多步推理、动态工具链组合,编排器的僵化就成了瓶颈。SPE的核心突破在于:将状态转换逻辑直接嵌入模型补全,框架只负责执行程序,不预设编排策略。这意味着代理可以像虚拟机一样自我改写状态——这在形式化上用“代理机器”描述,本质上是对Mamba或Transformer状态空间模型的一种扩展应用。
从我个人的实践来看,这种架构的最大价值在于解决了“编排器与任务语义不匹配”的问题。之前做代码生成代理时,固定编排器经常在需要递归调用子任务时卡死,因为编排器不理解任务间的依赖关系。SPE允许模型在补全中动态定义下一步操作,相当于把控制流决策权还给了语言模型。不过,风险也很明显:状态空间爆炸和可解释性下降。如果模型补全可以任意加载“嵌入式机器副本”,那么调试时如何定位错误状态?这比传统图结构编排的trace困难得多。
提两个问题供讨论:1. SPE的“任意状态”在工程上如何做安全约束?是否需要在框架层加状态验证器来防止无限循环或状态污染?2. 相比ReAct或Plan-and-Solve,SPE在多步推理中的token效率如何?模型需要额外生成编排逻辑,会不会反而增加推理成本?
从行业视角看,SPE代表了一个趋势:让语言模型从“工具使用者”进化为“编程环境的主宰者”。如果结合Chain-of-Thought和函数式编程思想,未来代理架构可能会更接近Lisp的求值器——代码即数据,控制流即生成。但落地前,我们得先解决状态管理和错误恢复的工程难题。