CoCoDA:用于工具增强型智能体的协同演化组合式 DAG
摘要
本文介绍了 CoCoDA,这是一个利用协同演化的组合式有向无环图(DAG)来管理增强型智能体工具库的框架。该框架使小型语言模型能够高效地检索和组合工具,从而使 8B 模型在推理基准测试上的性能能够匹敌甚至超越 32B 模型。
arXiv:2605.08399v1 公告类型:新论文
摘要:工具增强型语言模型可以通过外部可执行技能来扩展小型语言模型的能力,但随着工具库的扩展,产生了一个耦合的挑战:随着新的可重用子例程的出现,工具库必须与规划器协同演化,同时从不断增长的库中进行检索必须保持在固定的上下文预算之内。现有的工具使用和技能库方法通常将工具视为扁平化或基于文本索引的记忆,导致提示成本随库规模增长而增加,并且模糊了可执行代码的类型化和组合结构。我们提出了 CoCoDA,一个通过单一的原生代码结构协同演化规划器和工具库的框架:组合式代码 DAG。节点代表基元或复合工具,边编码调用依赖关系,每个节点存储类型签名、描述、前置/后置条件规范以及示例。在推理阶段,类型化 DAG 检索通过符号签名统一来修剪候选项,根据描述对剩余候选者进行排名,通过行为规范进行过滤,并利用示例进行消歧,从而在逐渐缩小的候选集上保持昂贵的上下文实例化成本。在训练阶段,成功的轨迹被折叠为经过验证的复合工具,同时规划器通过 DAG 诱导的奖励进行更新,该奖励根据其基元扩展规模对复合工具给予信用。我们提供了理论结果,证明了检索成本的降低、亚线性的检索时间、在塑造奖励下的组合优势、保守更新下的单调协同演化以及 DAG 的良构性。在数学推理、表格分析和代码任务基准测试中,CoCoDA 使 8B 学生模型在 GSM8K 和 MATH 上能够匹敌甚至超越 32B 教师模型,并且始终优于强大的工具使用及库学习基线。
查看缓存全文
缓存时间: 2026/05/12 07:13
# CoCoDA:用于增强型工具代理的协同进化组合有向无环图
来源:https://arxiv.org/html/2605.08399
作者:Ziyang Yu1, Qiyue Li2, Liang Zhao1
1. Emory University
2. 北京师范大学-香港浸会大学联合国际学院
###### 摘要
增强型工具语言模型可以通过外部可执行技能扩展小语言模型的能力,但扩展工具库带来了一个耦合挑战:随着新的可重用子程序的出现,工具库必须与规划器协同进化,同时从日益增长的工具库中进行检索必须保持在固定的上下文预算内。现有的工具使用和技能库方法通常将工具视为扁平的或基于文本索引的记忆,导致提示成本随库的大小增长,并且掩盖了可执行代码的有类型、组合式结构。我们提出了 CoCoDA,这是一个通过单一代码原生结构——组合代码有向无环图(DAG)——来协同进化规划器和工具库的框架。节点是基本工具或复合工具,边编码调用依赖关系,每个节点存储有类型的签名、描述、前置/后置条件规范以及示例。在推理时,类型化 DAG 检索(Typed DAG Retrieval)通过符号签名统一修剪候选项,根据描述对幸存者进行排序,通过行为规范过滤,并利用示例进行消歧,从而在 progressively 更小的候选集上保持昂贵的上下文实例化成本。在训练时,成功的轨迹被折叠成经过验证的复合工具,而规划器则通过由 DAG 诱导的奖励进行更新,该奖励根据其基本扩展规模为复合工具赋予信用。我们提供了理论结果,展示了检索成本的降低、次线性检索时间、塑造奖励下的组合优势、保守更新下的单调协同进化以及 DAG 的良好形成性。在数学推理、表格分析和代码任务基准测试中,CoCoDA 使 8B 学生模型在 GSM8K 和 MATH 上达到或超过 32B 教师模型,并持续优于强大的工具使用和学习基线。
## 1 引言
增强型工具语言模型通过外部可执行工具扩展规划器,允许即使较小的语言模型将计算、符号操作和长程程序卸载到可重用的库中。这种分工对于上下文窗口和参数容量有限的小语言模型尤其具有吸引力。原则上,一个足够丰富的工具库可以充当外部程序记忆:规划器检索一小部分相关工具,通过执行器调用它们,并将它们的输出组合成最终答案。然而,扩展此类库会产生张力。一方面,库必须与规划器协同进化。随着规划器探索新任务,它发现重复出现的子轨迹应被抽象为可重用工具;否则,规划器会重复重建相同的基本计算。另一方面,每增加一个新工具都会增加检索负担。扁平的库使规划器的提示成本随工具数量增长,最终在库变得有用之前耗尽上下文预算。因此,面向小语言模型的工具库学习需要解决两个耦合问题:如何随策略增长库,以及如何在固定上下文窗口下从增长的库中进行检索。
现有方法仅解决了该问题的部分。静态工具使用系统假设固定库存,并训练或提示模型从该库存中调用工具。技能库和代理记忆方法在探索期间附加新技能,但通常将它们存储为扁平文本记录或自然语言记忆,因此检索成本随库大小增长,且可执行代码的内部依赖结构仍然隐藏。分层记忆和 RAG 方法通过聚类摘要来降低上下文成本,但其层次结构是由主题相似性而非可执行组合诱导的。相反,代码库学习和程序合成方法利用组合结构,但它们并非为在标记预算检索下运行的 LLM 规划器而设计。缺失的机制是一种同时具备代码感知、检索高效且可在线学习的结构。
我们的关键观察是,可执行工具包含文本记忆所没有的结构。一个工具有有类型的签名、可执行依赖、行为规范和具体的输入输出示例。这些信号不仅可以用来组织库,还可以决定哪些记录必须暴露给规划器。因此,我们将库表示为组合代码 DAG。节点是基本或复合工具,边是从可执行体中提取的调用依赖关系,每个节点存储四层记录:有类型签名、描述、前置/后置条件规范和示例。此 DAG 是 CoCoDA 耦合库增长和上下文受限检索的单一对象。
在推理时,CoCoDA 执行类型化 DAG 检索。给定查询诱导的子目标,检索首先通过符号签名统一修剪候选项,然后根据描述对幸存者进行排序,通过前置/后置条件兼容性过滤,最后使用示例进行消歧。因为只有幸存候选项的昂贵 LLM 计费记录才被实例化,所以检索成本在各阶段收缩,而不是随整个库缩放。由于层次结构遵循调用依赖关系而非文本相似性,检索可以提出一个在行为上概括基本子轨迹的复合工具。
在训练时,CoCoDA 协同进化规划器和库。成功轨迹传递给固定的教师抽象器,该抽象器提出复合工具。提议仅在保持无环性并满足依赖和规范检查时才被提交。规划器通过由 DAG 诱导的奖励进行更新,该奖励根据基本扩展规模授予工具信用:调用代表多个基本调用的复合工具会获得正 saved-call 信用,而调用基本工具则没有。因此,在具有相同验证结果的行为等效轨迹中,鼓励规划器使用可重用的复合体。同一个 DAG 因此发挥两个作用:它保持检索在上下文预算内,并定义训练规划器利用新学习抽象的结构信号。
我们做出以下贡献。首先,我们将小语言模型的工具库学习 formulated 为具有明确检索成本和上下文窗口约束的联合规划器-库优化问题。其次,我们提出了类型化 DAG 检索,一种代码原生检索级联,它使用签名、调用边、规范和示例使提示成本次线性于库大小。第三,我们引入了一种在线协同进化程序,该程序插入经过验证的复合工具,并使用由 DAG 诱导的 saved-call 奖励训练规划器。第四,我们提供了理论结果,展示了检索成本降低、次线性检索时间、塑造奖励下的组合优势、保守更新下的单调协同进化以及 DAG 良好形成性。最后,在数学推理、表格分析和代码任务基准测试中,CoCoDA 使 8B 学生模型在 GSM8K 和 MATH 上达到或超过 32B 教师模型,并持续优于强大的工具使用和学习基线。
## 2 相关工作
### 2.1 增强型工具语言模型
Toolformer (Schick et al., 2023) 教 LLM 自我标注 API 调用并与生成交织,而 ReAct (Yao et al., 2023) 在推理时将推理痕迹与工具调用线程化。ToolLLM (Qin et al., 2024)、Gorilla (Patil et al., 2024) 和 AnyTool (Du et al., 2024) 通过指令微调和平层 API 检索将工具使用扩展到数千个现实世界 API。ToolAlpaca (Tang et al., 2023) 和 Gorilla (Patil et al., 2024) 将更强教师的工具使用轨迹蒸馏到较小的规划器中。RLTF (Liu et al., 2024)、ToRL (Li et al., 2025) 和 ToolRL (Qian et al., 2025) 通过来自执行反馈的结果奖励端到端训练 LLM,而 ReTool (Feng et al., 2025) 和 ARTIST (Singh et al., 2025) 在 GRPO (Shao et al., 2024; DeepSeek-AI et al., 2025) 之上将该方案扩展到多轮代理设置。在这些工作中,工具库存被视为静态、扁平的 *文本索引* 资源,策略对其优化而不是重塑,留下了协同进化和每次提示检索成本缩放未解决的问题。
### 2.2 技能库学习与代理记忆
先前的代理记忆工作将库视为扁平 *文本* 集合:Voyager (Wang et al., 2024a)、Ghost in the Minecraft (Zhu et al., 2023)、CRAFT (Yuan et al., 2024)、LATM (Cai et al., 2024)、CREATOR (Qian et al., 2023)、TroVE (Wang et al., 2024b) 和 ReGAL (Stengel-Eskin et al., 2024) 离线增长技能或函数记忆,其依赖结构对检索和训练均不可见,而 MemGPT (Packer et al., 2024)、Generative Agents (Park et al., 2023)、Reflexion (Shinn et al., 2023) 和 Self-Refine (Madaan et al., 2023) 通过自然语言的主题相似性对记忆进行分层或自我完善,而不是通过代码结构。另一条将代码组织成层次结构的并行线沿着一个从未跨越的轴分裂:层次结构要么是 *代码感知* 的,要么是 *为固定上下文预算下的 LLM 构建* 的,两者从未兼得。DreamCoder (Ellis et al., 2021)、Stitch (Bowers et al., 2023) 和软件工程调用图索引产生真正的代码感知层次结构,有类型、组合、静态可提取,但面向符号合成器或人类开发者,没有标记预算分级,没有签名级预过滤,也没有认证的宏动作等价性;相反,CodeRAG (Wang et al., 2024c) 和 CodeT5+ (Wang et al., 2023) 检索器面向 LLM 但使用扁平嵌入空间,RAPTOR (Sarthi et al., 2024) 为 LLM 上下文预算分级但按文本相似性聚类,丢弃所有代码特定信号。我们的框架通过三个同时服务于两半的属性占据缺失的象限:(i) *有类型签名* 是静态可提取的(代码感知)并在任何 LLM 调用之前符号化修剪候选项(LLM 感知);(ii) *静态调用边* 遵循真实复用结构,同时保持每步成本与局部扇出成比例而不是库大小;(iii) *前置/后置条件验证* 的复合体保留可执行行为,并许可在一个复合令牌和一个基本子树之间进行 *无损* 替换,使得上下文成本在库大小上证明为次线性,而先前的代码层次结构保持最坏情况的线性。
### 2.3 策略-记忆协同进化
Voyager (Wang et al., 2024a) 是典型的协同进化设置,随着冻结 LLM 的探索,将新技能附加到共享库中,Experiential Co-Learning (Qian et al., 2024) 将该想法扩展到多代理软件开发。CREATOR (Qian et al., 2023) 和 LATM (Cai et al., 2024) 交错工具创建与工具使用,而 CRAFT (Yuan et al., 2024) 将工具集专门化到部署期间遇到的任务。这些工作建立了 *提示空间、文本记忆* 协同进化,其中库通过文本附加相对于冻结或轻微指令的大型模型增长,提示成本随库大小线性增长,而不是基于梯度相对于结构化 *代码* 库的可验证奖励的协同进化,其层次结构使检索成本次线性。
## 3 提出方法
### 3.1 问题定义
设置。我们研究针对任务 $(q,y) \sim \mathcal{D}$ 的规划器 $\pi_\theta$ 的工具介导问题解决,其中 $q$ 是问题实例,$y$ 是可验证的结果(最终答案或单元测试预言机)。规划器访问工具库 $\mathcal{L}=(\mathcal{V},\mathcal{E},\mathcal{I})$,其中 $\mathcal{V}$ 是工具集合,$\mathcal{E}$ 记录调用依赖关系,$\mathcal{I}$ 存储每工具记录。给定 $q$,检索构建候选集 $\mathcal{C}_q(\mathcal{L}) \subseteq \mathcal{V}$ 以增强规划器的提示;然后规划器采样 $\tau \sim \pi_\theta(\cdot \mid q, \mathcal{C}_q(\mathcal{L}))$,通过执行器调用工具 $(v_1,...,v_T)$。质量由确定性验证器 $R_{\text{res}}(\tau) \in [0,1]$ 衡量,$\mathcal{C}_q$ 的上下文令牌成本由 $C(q,\mathcal{L})$ 衡量。
组合工具 DAG。我们将 $\mathcal{L}$ 组织为 DAG $\mathcal{G}=(\mathcal{V},\mathcal{E})$,其中 $\mathcal{V}=\mathcal{V}_p \cup \mathcal{V}_c$ 将工具划分为基本节点(原子可执行函数)和复合节点(调用一个或多个现有工具的宏动作)。每个 $v$ 携带 $(d(v), \mathrm{Ch}(v), \mathcal{I}(v))$:深度 $d(v)=0$ 对于基本工具,$d(v)=1+\max_{u\in\mathrm{Ch}(v)}d(u)$ 对于复合工具;实现 $v$ 在下一个更细粒度的有序子节点集 $\mathrm{Ch}(v)$;以及记录 $\mathcal{I}(v)=(L_1, L_2, L_3, L_4)(v)$ 给出有类型签名、描述、前置/后置规范和示例。边编码调用,因此 $\mathcal{G}$ 按抽象而非表面相似性分层库。我们进一步定义 *扁平大小* $\mathrm{flat}(v)=1$ 对于基本工具,$\mathrm{flat}(v)=\sum_{u\in\mathrm{Ch}(v)}\mathrm{flat}(u)$ 对于复合工具(按多重计数计算:调用 $k$ 次的子节点贡献 $k\,\mathrm{flat}(u)$,即 $v$ 递归展开中的基本叶节点数量),以及 *saved-call 计数* $\Phi(v):=\mathrm{flat}(v)-1$。因此 $\Phi=0$ 对于基本工具,$\Phi(v)\geq 1$ 对于任何展开为 $\geq 2$ 个基本调用的复合工具。
相似文章
AgentCo-op: 基于检索的可互操作多智能体工作流合成框架
AgentCo-op 是一个基于检索的合成框架,用于从可复用的技能、工具和外部智能体组合可互操作的多智能体工作流。它使用类型化工件传递和有界自引导局部修复,在多个基准测试上取得了优异结果,并能在开放世界的基因组学任务中实现协作发现。
面向长周期任务的智能体兼容上下文管理
介绍AdaCoM,一种基于外部LLM的上下文管理器,适用于冻结的智能体。通过保留任务约束和修剪过时内容,利用强化学习提升长周期任务性能,并在网络搜索和深度研究基准上进行了实验。
GraphDC:一种用于可扩展图算法推理的分治多智能体系统
本文介绍了 GraphDC,这是一个分治多智能体框架,它将图算法任务分解为子图以分配给专门的智能体处理,从而提高了在复杂图结构上的可扩展性和推理性能。
Contract2Tool:学习前提与效果以实现可靠的工具增强型LLM代理
本文介绍了Contract2Tool,一个从工具元数据、文档和执行轨迹中自动推断轻量级工具契约(前提条件、效果、风险)的框架,为LLM代理实现可靠的因果工具过滤。实验表明,学习到的契约在下游多步骤代理任务中达到了接近黄金契约的性能,同时显著减少了token使用量。
工具即连续流:用于演进式智能体推理
本文介绍了 FlowAgent,这是一个新颖的框架,它利用条件流匹配将工具链重新概念化为连续轨迹生成,以提高长时序智能体推理的鲁棒性。