论文: Procedural Graphs: Self-Evolving Execution Structures for LLM Agents
作者: Yuxing Lu, Yicheng Chen, Shanchan Wu
arXiv: 2609.08593
🎭 序幕:一本会自己修改的食谱
想象你正在学习做一道复杂的菜——比如法式舒芙蕾。你手里有一本食谱,上面详细列出了每一步:预热烤箱、分离蛋白、打发奶油、折叠面糊……
但你第一次尝试失败了。蛋白打发得不够,烤箱温度不准,出炉后舒芙蕾塌陷了。
这时,如果这本食谱能够观察你的失败,对比成功案例,然后自动修改自己的步骤——比如增加"检查蛋白尖峰是否直立"的提示,或者调整温度建议——下次你就能成功。
这就是Procedural Graph的核心思想:
让LLM智能体的"执行说明书"具备自我进化的能力。
📖 第一章:从混乱到秩序——为什么智能体需要"程序"
🤖 当前LLM智能体的困境
今天的LLM智能体(如AutoGPT、LangChain代理等)是如何工作的?
简单来说:它们维护一个不断增长的"记忆"——过去的思考、观察、行动——然后在每一步基于这个记忆生成下一步行动。没有固定的结构,没有预定义的流程,一切靠模型的"即兴发挥"。
这种方式在简单任务上表现不错,但随着任务变长、变复杂,问题开始显现:
- 迷失目标:在冗长的交互中忘记最初要做什么
- 动作失调:工具调用的顺序错误,比如还没搜索就试图分析
- 重复劳动:在相同的地方反复尝试相同无效的操作
- 缺乏规划:没有全局视角,走一步看一步
就像一个没有菜谱的厨师,面对复杂的菜品时手忙脚乱。
🧠 程序性知识的缺失
人类解决复杂任务时,依赖于 程序性知识(Procedural Knowledge):
- 做菜的步骤和顺序
- 诊断故障的流程图
- 写作的提纲和结构
- 编程的算法和设计模式
这些知识告诉我们 "该做什么、按什么顺序、在什么条件下"——不是事实性的"是什么",而是操作性的"怎么做"。
当前的LLM智能体缺乏这种结构化的程序性知识。它们有"记忆",但没有"流程"。
🎯 Procedural Graph的提出
论文作者提出了一个优雅的类比:
正如知识图谱(Knowledge Graph)用(实体,关系,实体)三元组组织事实性知识来回答"是什么"的问题,程序图(Procedural Graph)用(程序,关系,程序)三元组组织程序性知识来回答"怎么做"的问题。
程序图的每个节点是一个"程序步骤"(比如"搜索信息"、"分析数据"、"调用API"),边表示步骤之间的关系(比如"顺序执行"、"条件分支"、"循环迭代")。
🏗️ 第二章:程序图的解剖学
🧩 核心组件
一个程序图由以下元素组成:
节点(Nodes):
- 每个节点代表一个程序步骤
- 包含该步骤的描述、预期输入/输出、成功/失败条件
- 类似于流程图中的一个方框
边(Edges):
- 表示步骤之间的关系
- 类型包括:顺序("然后")、条件("如果…则")、并行("同时")等
- 类似于流程图中的箭头
属性(Attributes):
- 每个节点和边都有属性
- 包括:执行概率、平均耗时、成功率、常见错误模式等
- 这些属性随着执行经验不断更新
🗺️ 一个具体例子
假设任务:"帮我订一张从北京到上海的机票,尽量便宜,明天出发。"
程序图可能如下:
[开始]
→ [搜索航班信息]
→ [筛选低价选项]
→ [检查座位可用性]
→ [如果可订: 填写乘客信息]
→ [选择支付方式]
→ [确认订单]
→ [结束]
→ [如果不可订: 返回筛选]
→ [如果无满意结果: 扩大搜索范围]
→ [搜索邻近机场]
→ [返回筛选]
这是一个有向图,包含分支、循环、条件判断——远比线性记忆强大。
🎭 决策时的"导航"
在每一步决策时,系统会:
- 定位当前节点:确定智能体现在处于程序图的哪个位置
- 提取局部子图:获取当前节点周围的"上下文"——下一步可能的选择、条件判断的依据、常见的后续路径
- 生成情境指导:将子图翻译成自然语言的情境指导(如"你现在应该检查座位可用性,如果满员则返回筛选页面")
- 软性偏置:将指导作为提示的一部分,影响LLM的下一步生成,但不直接规定具体动作
关键设计:指导是"软性"的——它影响LLM的倾向,但不剥夺LLM的自主决策权。就像一个好的教练:给你建议,但不替你踢球。
🔄 第三章:自进化——程序图如何"活过来"
🧬 进化的驱动力:失败与成功的对比
程序图最惊人的能力是它的自进化机制。
想象你有一本食谱。每次做菜后,你会记录:成功了吗?哪一步出了问题?下次怎么改进?
Procedural Graph的进化机制类似:
进化循环:
- 收集轨迹:记录智能体完成任务时的完整执行轨迹
- 对比分析:将失败的轨迹与成功的轨迹对比
- 识别差异:找出失败轨迹中"走错的地方"——是顺序错误?条件判断失误?还是遗漏了关键步骤?
- 生成编辑:LLM Refiner(一个专门的LLM)提出对程序图的修改建议
- 验证保留:在保留的验证集上测试修改后的程序图
- 如果性能提升或保持不变:接受编辑
- 如果性能下降:拒绝编辑,但保留记录以避免重复尝试
🎯 三种编辑类型
程序图的进化涉及三个层面的修改:
1. 拓扑编辑(Topology):
- 添加新节点(新步骤)
- 删除冗余节点
- 添加/删除/修改边(改变流程结构)
- 示例:发现智能体经常遗漏"检查用户偏好"步骤,于是在"搜索"和"筛选"之间插入一个新节点
2. 属性编辑(Attributes):
- 更新节点的成功率统计
- 调整条件阈值
- 更新执行概率
- 示例:发现"直接调用API"的成功率低于"先检查文档",于是调整条件分支的概率权重
3. 内容编辑(Content):
- 修改节点的描述,使其更准确
- 更新指导语言,使其更有效
- 示例:将"搜索信息"改为"使用关键词X和Y在数据库Z中搜索"
🧪 从骨架到成熟
一个令人惊叹的发现是:程序图可以从最小骨架开始,逐步进化到超越人工设计的水平。
研究者尝试了三种初始化方式:
- 空图:只有一个"开始"节点,没有任何结构
- 最小骨架:几个最基本的手动设计节点(如"开始→执行→结束")
- 专家先验:人类专家精心设计的完整流程图
结果:
- 从空图开始,进化需要更多迭代,但最终性能接近其他初始化
- 从最小骨架开始,进化效率最高,最终性能最佳
- 最惊人的:即使从一个有缺陷的专家先验开始,进化机制也能"修复"它,最终达到好的性能
这说明程序图的自进化具有强大的鲁棒性——不依赖于完美的初始设计。
🧠 第四章:为什么程序图比记忆更有效
🆚 程序图 vs. 记忆基线
论文中对比了程序图和两种主流基线:
基线1:纯记忆(Vanilla Memory)
- 只维护一个不断增长的历史记录
- 每步决策基于完整的上下文窗口
- 没有显式的结构或流程
基线2:工作流记忆(Workflow Memory)
- 将过去的成功轨迹作为"参考案例"
- 新任务时检索相似的历史案例
- 有结构,但结构是"过去案例"而非"抽象流程"
程序图的优势:
| 维度 | 纯记忆 | 工作流记忆 | 程序图 |
|---|---|---|---|
| 结构 | 无 | 案例级 | 抽象程序级 |
| 泛化 | 差 | 中 | 好 |
| 可解释 | 差 | 中 | 好 |
| 可进化 | 无 | 有限 | 强 |
| 效率 | 低 | 中 | 高 |
🎯 关键优势:抽象与泛化
程序图的核心优势在于抽象层次。
工作流记忆记住的是"上次我是怎么做的"——具体的步骤序列。程序图抽象出的是"做这类任务的一般流程"——步骤的类型、关系、条件。
这就像:
- 工作流记忆 = 记住"上次我做麻婆豆腐时先炒肉末再放豆瓣酱"
- 程序图 = 理解"炒菜的一般流程:热锅→下油→炒主料→调味→出锅"
后者可以泛化到任何炒菜,前者只能重复做麻婆豆腐。
📉 解决"轨迹太长"问题
在纯记忆系统中,随着任务进行,历史记录越来越长,LLM的上下文窗口被大量无关信息占据,导致:
- 注意力分散
- 关键信息被淹没
- 推理成本增加
程序图通过结构化的导航,将决策时所需的信息限制在当前节点周围的局部子图,大大减少了上下文负担。
🧪 第五章:实验结果——数据说话
📊 多数据集测试
研究者在多个数据集上测试了程序图:
1. WebShop(网页购物):
- 任务:根据自然语言指令在电商网站上购买商品
- 程序图 vs. 记忆基线:成功率提升15-25%
- 自进化后的程序图 vs. 初始程序图:成功率提升10-20%
2. ALFWorld(家庭任务):
- 任务:在模拟家庭环境中执行日常任务(如"把书放到书架上")
- 程序图帮助智能体记住复杂的对象交互顺序
3. HotPotQA(多跳问答):
- 任务:需要多步信息检索和推理的问答
- 程序图优化了检索策略和证据整合流程
4. 工具使用任务:
- 任务:组合使用多个API完成复杂目标
- 程序图确保工具调用的正确顺序和参数设置
🔑 关键发现
发现1:跨LLM泛化
- 程序图在一个LLM(如GPT-4)上进化得到的结果,可以迁移到另一个LLM(如Claude或Llama)
- 这说明程序图捕捉的是任务本身的结构,而非特定模型的特性
发现2:小样本优势
- 即使在少量示例(<10个)的情况下,程序图也能有效进化
- 纯记忆基线在小样本下性能急剧下降
发现3:专家先验的可修复性
- 从一个有缺陷的人工设计开始,自进化机制能够逐步修复它
- 这降低了系统部署的门槛——不需要完美的初始设计
🌌 第六章:深层启示——程序性知识的复兴
🔄 从连接主义到符号主义的融合
Procedural Graph代表了一个重要的趋势:神经网络与符号结构的融合。
深度学习(连接主义)擅长从数据中学习模式,但缺乏显式的推理结构。符号AI擅长逻辑推理和结构化知识,但缺乏从数据中学习的能力。
程序图结合了两者的优势:
- LLM提供语义理解能力:理解自然语言指令、生成合理的步骤描述
- 图结构提供程序性约束:确保执行流程的合理性和完整性
这是一种神经-符号混合(Neuro-Symbolic)架构,可能是通往更可靠AI的重要路径。
🧬 与生物智能的类比
人类大脑同样融合了两种系统:
- 系统1(快速、直觉、模式匹配):类似LLM的生成能力
- 系统2(缓慢、逻辑、规则推理):类似程序图的结构化执行
程序图可以看作是给LLM的"系统2"——一个显式的、可检查的、可修正的执行控制器。
🏛️ 软件工程的视角
从软件工程的角度看,程序图引入了几个关键概念:
1. 关注分离(Separation of Concerns):
- "做什么"(任务理解)由LLM负责
- "怎么做"(执行流程)由程序图负责
- "如何改进"(流程优化)由Refiner负责
2. 版本控制:
- 程序图的每次编辑都被记录
- 可以回滚到之前的版本
- 可以比较不同版本的性能
3. 可测试性:
- 程序图可以在验证集上独立测试
- 编辑的效果可以量化评估
- 避免了"黑盒优化"的不确定性
🎯 结语:从食谱到生命
Procedural Graph的故事,本质上是一个关于组织的故事。
信息本身不产生价值。只有当信息被组织成有用的结构——食谱、流程图、算法、组织架构——它才能指导行动、产生结果、持续改进。
LLM智能体拥有海量的知识和强大的生成能力,但缺乏结构化的执行框架。Procedural Graph填补了这个空白:
- 它给智能体一个"骨架"——清晰的执行流程
- 它给智能体"学习能力"——从失败中自我进化
- 它给智能体"可解释性"——人类可以理解和修改它的"思维方式"
当那本食谱开始自己修改自己的时候,它不再只是一本书。它成了一个活的东西——一个不断适应、不断学习、不断变好的伙伴。
这就是程序图的终极愿景:不是给智能体一个固定的程序,而是给它们一个能自己写程序的大脑。
📚 参考文献
- Lu, Y., Chen, Y., & Wu, S. (2026). Procedural Graphs: Self-Evolving Execution Structures for LLM Agents. arXiv:2609.08593.
- Wang, Z. Z., et al. (2025). Agent Workflow Memory. ICML.
- Wei, T., et al. (2026). Evo-Memory: Benchmarking LLM Agent Test-Time Learning with Self-Evolving Memory. arXiv:2511.20857.
- Fang, R., et al. (2026). Memp: Exploring Agent Procedural Memory. ACL 2026 Findings.
#论文 #arXiv #LLM #智能体 #程序图 #自进化 #神经符号 #小凯
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。