Mon - Fri: 10am - 5pm
+86 138-**** ****
Home- Blog- Blog Details
当AI智能体已能调用工具、使用技能并存储记忆,一个更深层的问题随之浮现:这些能力如何在任务执行中协同配合?又如何从过往经验中提炼出可重复利用的知识?
能查到机票价格,不代表知道查询后该停止操作;能保存笔记,也不意味着会在下次决策前主动回顾。智能体还需处理操作之间的顺序、条件和衔接关系。
来自谷歌(Google)、美国佐治亚理工学院(Georgia Institute of Technology)和北京大学(Peking University)的研究人员,针对这一问题提出了Procedural Graphs(PG,程序图),将工具调用、技能步骤、内部推理与任务状态组织成带条件的连接,为智能体提供“下一步该做什么”的依据。
从智能体执行支持系统(Agent harness)的角度看,PG提供了一种将tools、skills、memory等组件连成网络的方式,描述这些能力在什么条件下使用、如何衔接,以及哪些错误需要避免。
执行任务时,智能体会读取当前步骤附近的子图,生成针对当前情境的指导;离线阶段,系统根据执行轨迹提出修改图的方案,经独立验证后决定是否保留。
经验由此成为可读取、检查和修订的程序关系,图的更新也无需重新训练模型权重。
从独立组件到程序关系,一张图连接什么?
Tools、Skills和Memory各有其功能。工具提供查询、计算或提交等具体操作,技能封装可重复使用的做法,记忆则保留任务信息与历史经验。在执行过程中,智能体还需判断:何时读取记忆,哪项技能需要调用哪个工具,得到结果后又该保存什么。
PG将这些衔接关系显式写成“过程—关系—过程”三元组。
节点可以是一项技能、一个工具函数、一次内部推理,也可以是一个任务状态。连接两个节点的有向边,描述从当前步骤转向后续步骤的关系,并包含三个字段:适用条件(condition)、执行建议(guidance)和需要避免的问题(pitfalls)。
例如,“预测现金流”可以连接到“申请融资”。这条边的条件是预计现金支撑时间低于安全缓冲;建议是提前申请,为资金到账留出时间;需要避免的问题,则是在已有申请尚未完成时重复发起。
同一个工具动作,由此获得了更完整的使用上下文:为什么现在调用,调用前需要满足什么条件,以及什么情况下应当等待。
知识图谱通常用“实体—关系—实体”组织事实,帮助系统回答“是什么”“在哪里”。程序图关注的是另一类知识:做什么、按什么顺序做,以及在什么条件下做。
记忆的使用也可以进入这套结构。论文附录中的财务Agent提供了一个具体例子:演化出的图先连接现金检查、现金流预测、保存笔记(save_note)和市场数据检查;随后,又把回读笔记(recall_notes)接到每月开始的位置,让上个月保存的关键信息能在新一轮决策前被取回。
在这里,工具负责查询与计算,笔记保存跨月信息,PG则描述何时写入、何时读取,以及读写操作怎样接上后续决策。工具调用和记忆读写因此成为同一张程序网中的步骤。
PG本身也承载着程序性记忆:经过任务验证的行动方式,被保存在模型权重之外的图结构中。需要修改一条条件或补充一个检查步骤时,研究者可以直接改图,再检验它对执行结果的影响。
在线指导,根据执行位置读取局部子图
把程序关系组织成图之后,还需要决定每一步读取哪些内容。
整张图包含完整信息,也可能带入大量与当前任务无关的分支。独立检索几条语义相似的建议,则可能遗漏步骤之间的联系。例如,只取回“提交”的指导,却没有取回前面的“检查答案”,Agent就可能缺少判断何时可以提交的依据。
PG将在线指导组织为三个连续操作。
定位当前步骤。 系统根据最近执行的动作匹配图中的节点,确定Agent当前所处的位置。
提取相连的局部结构。 默认读取沿出边两跳以内的子图,即从当前位置出发、最多经过两次连接可到达的步骤。匹配不到节点时,回退到整张图。
生成当前情境下的指导。 指导模型结合局部子图、用户任务和近期执行记录,生成下一步建议,加入执行模型的提示词。最终动作仍由执行模型选择。
在论文实验中,指导模型与执行模型采用同一种基础LLM。执行单个任务时,图保持固定。
一次机票查询展示了这类指导如何影响任务的结束时机。在BFCL工具调用测试中,用户只想了解经济舱票价。无图基线查到了220美元的报价,却继续认证身份、操作银行卡并尝试订票;失败后,它还修改预算限制,再次完成预订。
同样使用Gemini 3.5 Flash,PG指导下的Agent在报出220美元后结束当前回合,等待用户的新指令。这个案例体现了程序知识的一项作用:帮助Agent判断,已有操作是否已经满足当前请求。
离线演化,从执行反馈中修订程序图
程序图的效果取决于其中保存了什么。手工写出的流程看起来合理,实际执行时也可能带来问题。
论文在MultiChallenge上进行了图构建实验。这一实验使用Gemini 3.5 Flash,包含56个测试样本:无图基线成功率为87.50%,加入手工专家图后降至58.93%,让模型静态更新一次后为53.57%。
这组结果说明,对程序关系的修改需要经过任务检验。PG为此设计了一个离线循环:执行任务、分析轨迹、提出修改、验证候选图。
系统先在一批训练任务上运行当前保留的图,再由修订模型对照高分与低分轨迹,查找反复出现的错误或可以复用的步骤。修改可以增加缺失的节点与连接,删除容易引起失败的路径,也可以重写边上的条件、建议和注意事项。
候选图先通过结构检查,再在独立验证集上运行。只有测得的验证分数不低于当前保留图,系统才采用这次修改;分数持平也可以保留。被拒绝的方案及其结果会留下记录,供后续修订参考。
这些变化发生在离线批次之间。因此,执行中的Agent读取的是当前版本的程序知识,新的经验经过验证后再进入后续版本。
在上述MultiChallenge构建实验中,从58.93%的专家图出发,迭代演化后的成功率达到92.86%,比专家初始化提高33.93个百分点,也超过了87.50%的无图基线。
论文附录中的一个验证样本要求Agent讲笑话,同时延续此前“只用被动语态”的约束。但第二代候选图指导下的Agent偏离了任务,转而回答环境附带的评价问题——模型是否一直使用被动语态,回复以“没有一直使用被动语态”开头。
第三代候选图删除了直接结束的连接,并改写“提取约束→结束”的指导,要求不要直接回答评价问题。这次Agent经过提取约束步骤后给出了笑话,该验证样本的成功标记从0变为1。
这一案例让“经验更新”有了具体的观察对象:哪条连接被删除,哪段指导被改写,以及后续执行出现了什么变化。
研究者还尝试从最小图结构开始演化。在HotpotQA构建实验中,这种方式得到的PG取得78.79的答案F1,高于无图基线的71.21,说明程序结构也可以从执行反馈中逐步建立。
任务评估,工具调用与长期决策中的表现
论文评估覆盖多跳问答、多轮指令遵循、专业任务、交互式环境、工具调用和长期财务决策。各方法使用相同的ReAct执行框架,比较不同的经验存储与复用方式。
在工具调用基准BFCL v3上,Gemini 3.5 Flash使用PG后的准确率为67.00%,该组最强基线为58.00%。在专业任务GDPval与要求遵守业务规则的τ-bench上,Gemini 3.1 Pro也获得了提升。
长期任务进一步考察动作之间的时间关系。在EnterpriseArena中,Agent管理一家模拟企业,连续作出最多132个月的财务决策,需要应对现金流变化、资金到账延迟与经济冲击。
融资申请发出后,资金需要一至六个月才能到账。如果等现金即将耗尽时才申请,企业可能无法度过等待期。轨迹分析显示,PG指导下的Agent更早检查现金流、预测资金缺口,并在相对稳定的月份发起融资申请。
每种配置均进行了50次测试模拟。与无图基线相比,Gemini 3.1 Pro完成整个模拟周期的存活率从6.0%提高到34.0%;Claude Sonnet 4.6从44.0%提高到58.0%。
这类任务中的程序知识,需要把当前操作与延迟出现的结果联系起来。前文的记忆读写流程也服务于这种连续决策:保存上个月的关键信息,在新一轮行动前取回,并结合当前状态继续判断。
局部指导的收益与成本
局部子图是否比整张图更适合当前决策,论文通过消融实验进行了比较。
在使用Gemini 3.5 Flash的ALFWorld固定测试子集上,基于整张图生成指导时,成功率为54.48%;使用同一张图、改为局部子图指导后,成功率达到81.53%。每个样本的平均Token消耗从96,360降至28,064,比全图生成式指导减少约70.9%。
这一结果支持了按执行位置读取相关程序关系的设计。不过,局部指导仍有额外开销:同一实验的无图基线平均使用18,055个Token,低于局部子图指导。离线运行与候选图验证也需要计算资源。
不同任务的收益同样存在差异。在主表HotpotQA问答实验中,PG相对各模型最强基线的差距介于下降0.90与提高1.30个百分点之间,小于前述几项任务。程序图在跨模型、跨工具接口复用时能保留多少效果,仍需进一步研究。
从一次执行到下一次行动
从harness的角度看,PG让tools、skills、memory之间的配合关系成为可以检查和改进的对象。补充一步检查、修改一项条件,或调整一次记忆读取的时机,都可以落实到具体的节点与连接。
这些修改经过离线验证,被采纳的方案进入后续版本的程序图。一次执行留下的经验,由此有机会成为下一次行动的依据。PG探索的,正是如何让这张连接各类能力的程序网在执行反馈中逐步改进。
October, 2016
October, 2018