学习构建实用的智能体系统

arXiv cs.LG 论文

摘要

本文提出了设计和优化实用智能体LLM系统的原则性方法,引入了一个包含伪工具和固定工作流的框架,以提高模块化、成本效益和跨多种任务的准确性。

arXiv:2606.00189v1 公告类型:新 摘要:基于智能体的LLM系统的自动化设计与优化,产生了复杂的系统,其结果质量显著优于现成的智能体模式。然而,对实际部署的智能体系统的研究表明,生产系统更关注推理成本的简单性、可控性和可预测性等问题。在本文中,我们提出了设计和优化实用智能体系统的原则性方法。我们描述了一个智能体框架,允许设计者通过定义在受限上下文中递归调用LLM的“伪工具”来强制执行智能体系统的模块化。利用该框架,我们针对多种任务手工设计了智能体,并表明相对于动态规划的工作流,手工构建的固定工作流通常更便宜且更准确。然后,我们提出了针对该框架所需的智能体组件(即伪工具和固定工作流)的新型学习方法。这些学习方法通常优于手工设计的智能体。我们还利用该框架的模块化特性,应用多目标优化方法联合优化成本与响应质量,并融合多个学习系统的结果。
查看原文
查看缓存全文

缓存时间: 2026/06/02 15:40

# 构建实用智能体系统的学习

**来源:** https://arxiv.org/html/2606.00189

Aditya Kumar¹  Carnegie Mellon University  adityaku@andrew\.cmu\.edu  
Zhihan Lei¹  Carnegie Mellon University  lexl@andrew\.cmu\.edu  
Jerry Yan¹  Carnegie Mellon University  jerryy2@cs\.cmu\.edu  
Joshua W\. Momo  Carnegie Mellon University  jmomo@andrew\.cmu\.edu  
Lauhitya Reddy  Dept\. of Computer Science, Emory University  lreddy3@emory\.cmu  
Rafael Enrique Cabrera Jimenez  Carnegie Mellon University  rafaelcabrerajimenez7@gmail\.com  
Cassandra A\. Cohen  Carnegie Mellon University  ccohen2@andrew\.cmu\.edu  
Arthur Kajiyama  Carnegie Mellon University  akajiyam@andrew\.cmu\.edu  
William W\. Cohen  Carnegie Mellon University  wcohen@cmu\.edu  

###### 摘要

对基于LLM的智能体系统进行自动设计和优化,能够产生复杂的系统,显著提升相比现成智能体模式的结果质量。然而,对已部署智能体系统的研究表明,生产系统更关注简单性、可控性和推理成本的可预测性等问题。在本文中,我们提出了设计和优化*实用*智能体系统的原则性方法。我们描述了一个智能体框架,该框架通过定义“伪工具”(pseudo-tools),使设计者能够在智能体系统中强制执行模块化——这些伪工具在受限上下文上递归调用LLM。利用该框架,我们为多种任务手工设计了智能体,并展示了与动态规划的工作流相比,手工构建的固定工作流通常更便宜且更准确。然后,我们针对该框架所需的智能体组件,即伪工具和固定工作流,提出了新颖的学习方法。这些学习方法通常优于手工设计的智能体。我们还利用该框架的模块化特性,应用多目标优化方法来联合优化成本和响应质量,并融合多个学习系统的结果。

## 1 引言

¹ 同等贡献。

智能体系统的自动设计和优化是一个重要的研究领域,已有大量工作致力于优化智能体系统(Khattab 等,2024 ([https://arxiv.org/html/2606.00189#bib.bib16](https://arxiv.org/html/2606.00189#bib.bib16));Yuksekgonul 等,2024 ([https://arxiv.org/html/2606.00189#bib.bib17](https://arxiv.org/html/2606.00189#bib.bib17));Ye 等人,2024 ([https://arxiv.org/html/2606.00189#bib.bib18](https://arxiv.org/html/2606.00189#bib.bib18));Hu 等,2024 ([https://arxiv.org/html/2606.00189#bib.bib15](https://arxiv.org/html/2606.00189#bib.bib15));Zhuge 等,2024a ([https://arxiv.org/html/2606.00189#bib.bib13](https://arxiv.org/html/2606.00189#bib.bib13));Zhang 等,2024 ([https://arxiv.org/html/2606.00189#bib.bib14](https://arxiv.org/html/2606.00189#bib.bib14))),甚至包括开发自我改进的系统(Zhang 等,2026 ([https://arxiv.org/html/2606.00189#bib.bib8](https://arxiv.org/html/2606.00189#bib.bib8));Fang 等,2025 ([https://arxiv.org/html/2606.00189#bib.bib5](https://arxiv.org/html/2606.00189#bib.bib5)))。虽然这带来了结果质量的提升,但研究表明,在生产环境中,不同的关注点占主导地位,例如简单性和可预测性(Pan 等,2026 ([https://arxiv.org/html/2606.00189#bib.bib9](https://arxiv.org/html/2606.00189#bib.bib9)))。例如,观察到实际使用的智能体系统通常采用手工编写的静态工作流,而不是 ReAct 风格(Yao 等,2023 ([https://arxiv.org/html/2606.00189#bib.bib10](https://arxiv.org/html/2606.00189#bib.bib10)))的智能体循环,并且许多系统在同一工作流中对不同任务使用多个LLM。在本文中,我们开发了设计和优化智能体系统的原则性方法,重点设计适合生产环境的*实用*系统。我们认为这一目标需要一个能够使设计者在智能体系统中*强制执行模块化*的框架。我们的提议是通过构建“伪工具”来实现这一点——它们看起来像外部LLM工具,但在被调用时使用受限上下文调用另一个LLM。

**贡献。** 我们首先在同一个框架内为19个不同的任务手工设计了智能体,涵盖金融、数学、规划和健康等领域。我们验证了手工构建的固定工作流确实通常比动态规划的工作流更快、更准确。然后,我们引入了改进和/或开发这些手工构建系统组件的方法,即工作流和工作流调用的伪工具。最后,我们利用框架的模块化特性,应用多目标优化方法(Deb 等,2002 ([https://arxiv.org/html/2606.00189#bib.bib39](https://arxiv.org/html/2606.00189#bib.bib39)))来联合优化成本和响应质量。

**提出的框架。** 当LLM生成文本时,每个词元都依赖于之前生成的所有词元。当LLM在 ReAct (Yao 等,2023 ([https://arxiv.org/html/2606.00189#bib.bib10](https://arxiv.org/html/2606.00189#bib.bib10)))循环(思考、行动、重复)中“思考”或规划使用工具的行动时,情况也是如此。智能体决策和推理中高度的相互依赖性与传统软件系统形成对比,后者由模块化的软件片段组成。然而,智能体确实有能力在调用工具时限制上下文,因为工具只接收部分上下文作为输入。我们建议利用这一特性来实现推理的模块化:具体来说,我们引入了“伪工具”(ptools),它通过使用受限上下文递归调用LLM来解决子任务。从技术上讲,我们框架的核心单元是*接口*——一个带有类型标注的函数存根,以及指定预期行为的自然语言文档字符串(Python的“docstring”)。接口可以绑定到不同的可选*实现*:可能的实现包括带有任务特定提示的LLM调用;根据输入即时生成的代码;ReAct子智能体;或静态Python代码。为方便开发智能体,每个接口还有一个基于LLM的默认实现,该实现使用LLM根据输入预测函数存根的输出。接口与实现之间的绑定易于重新配置,并且一个接口的绑定可以独立于其他绑定选择而选定。由于每个接口暴露类型化的输入和输出,有效实现的空间受到足够约束以便于搜索,同时又足够丰富,能够覆盖从低成本确定性代码到灵活但昂贵的多轮智能体循环的全范围。

## 2 相关工作

**智能体架构。** 由于LLM需要某种外部框架来调用工具,并且LLM通常可以高效地按序使用,因此存在许多实现智能体系统的框架:著名的框架包括 LangChain/LangGraph、DSPy (Khattab 等,2024 ([https://arxiv.org/html/2606.00189#bib.bib16](https://arxiv.org/html/2606.00189#bib.bib16)))、Pydantic AI (Pydantic Services Inc.,2024 ([https://arxiv.org/html/2606.00189#bib.bib41](https://arxiv.org/html/2606.00189#bib.bib41)))、SmolAgents (Roucher 等,2025 ([https://arxiv.org/html/2606.00189#bib.bib42](https://arxiv.org/html/2606.00189#bib.bib42))) 以及其他(Choure and Prajapat, 2025 ([https://arxiv.org/html/2606.00189#bib.bib3](https://arxiv.org/html/2606.00189#bib.bib3)))。我们的框架有一些新颖的元素,下面将讨论,但非常轻量级²²²其核心Python代码不到1000行,并使用多个现有包作为组件:我们使用Pydantic AI的ReACT风格动态规划器、SmolAgents的Python沙箱,以及LiteLLM (BerriAI, 2023 ([https://arxiv.org/html/2606.00189#bib.bib40](https://arxiv.org/html/2606.00189#bib.bib40))) 进行LLM调用。值得注意的是,它没有对LLM调用工作流的显式表示——相反,工作流被实现为Python函数。(这有时被称为“原生智能体架构”。)

**智能体优化和工作流生成。** 智能体架构通常针对特定类型的优化而设计——例如,DSPy很好地支持提示优化。我们关注的优化受工作流优化和生成工作的启发,例如ADAS和后来的AFLOW (Hu 等,2024 ([https://arxiv.org/html/2606.00189#bib.bib15](https://arxiv.org/html/2606.00189#bib.bib15));Zhang 等,2024 ([https://arxiv.org/html/2606.00189#bib.bib14](https://arxiv.org/html/2606.00189#bib.bib14)))。例如,ADAS将工作流(与我们类似)定义为代码,并通过递增地使用由历史有用工作流数据库引导的“元智能体”来细化工作流;AFLOW将智能体表示为图,其中每个节点是一个LLM动作,边编码数据流依赖关系和数据转换。在AFLOW中,使用蒙特卡洛树搜索(MCTS)搜索智能体空间,而不是像ADAS那样进行线性搜索。GPTSwarm (Zhuge 等,2024b ([https://arxiv.org/html/2606.00189#bib.bib1](https://arxiv.org/html/2606.00189#bib.bib1))) 将智能体优化视为图优化,使用改变图拓扑的算子(例如,减少距离信息流),并结合节点级提示优化。这些系统大多专注于在单一维度上提高质量,即输出质量,并且通常开发出复杂且昂贵的工作流。我们专注于自动构建简单、高效(且有效)的工作流。

**工作流记忆与缓存。** 构建工作流的一种替代方法是保存和重用工作流。Agent Workflow Memory (Wang 等,2025b ([https://arxiv.org/html/2606.00189#bib.bib28](https://arxiv.org/html/2606.00189#bib.bib28))) 存储完整的轨迹,并在新实例上将其作为上下文指导进行检索;类似的系统包括 Agent Skill Induction (Wang 等,2025a ([https://arxiv.org/html/2606.00189#bib.bib29](https://arxiv.org/html/2606.00189#bib.bib29))) 和 ExpeL (Zhao 等,2024 ([https://arxiv.org/html/2606.00189#bib.bib30](https://arxiv.org/html/2606.00189#bib.bib30)))。这些方法重用*整个轨迹或技能*;我们则提取重复出现的*子步骤*,并将其提升为类型化的伪工具,智能体通过常规工具调用将其组合使用。

## 3 方法

### 3.1 框架

**接口和实现。** 我们所使用的智能体框架³³³https://github.com/wwcohen/secretagent 扩展了 Pydantic AI⁴⁴⁴https://pydantic.dev/docs/ai/overview/,引入了两个新概念:*接口*和*实现*。一个*接口*看起来像一个Python函数存根,由函数名、一组类型化的命名输入、一个输出类型以及函数行为的自然语言描述(Python“docstring”)组成。接口可以*绑定*到类型兼容的*实现*上,绑定的接口可以像Python函数一样被调用。该框架包含一组预定义的*实现工厂*,可用于生成各种类型的实现:普通Python函数;对LLM的单次调用,使用从接口描述自动派生的*默认提示*;使用用户定义提示模板的单次LLM调用⁵⁵⁵模板应有与接口参数对应的槽位;一个 ReAct 智能体加上一组工具;对LLM的单次调用,生成适用于特定输入的Python代码(可选使用给定的工具列表),然后在沙箱中执行该代码。还有一些特殊用途的复合实现,用于常见的智能体任务,例如,将实现与从非结构化LLM响应中提取答案的接口结合,或重试LLM调用直到验证步骤成功。

**根接口和配置。** 一个指定的*根接口*被调用以处理来自用户或基准测试用例的顶层输入。一个*任务配置*由根接口以及每个接口(包括根接口)的绑定集定义。任务配置易于更改、序列化和恢复。

**表达能力。** 该框架灵活地支持广泛的智能体行为。接口可以充当工具(当绑定到Python实现时)、递归LLM调用(伪工具)或子智能体。根接口的替代绑定也可以实现许多标准的智能体行为:例如,根接口可以绑定到一个调用工具和伪工具混合的Python函数,提供静态的、工程化的工作流;或者,通过将根接口绑定到使用同一组(伪)工具的ReAct,可以动态规划工作流。这些行为之间的许多变体和插值也可以轻松实现,如下文所述。

### 3.2 学习与优化方法

接口/实现框架允许设计者探索广泛的智能体设计空间,这将在不同性能维度(如成本、可解释性、输出质量等)上导致不同的权衡。我们的目标是支持对此空间的手动探索,并在可能的情况下自动探索该空间。其中的设计决策包括:何时引入伪工具来模块化智能体行为?给定工具集,哪种实现适合根接口——例如,行动应该是动态规划的,还是可以使用固定工作流?如何利用系统的模块化特性来提高效率或可测试性——例如,某些伪工具是否可以由更小、更便宜的LLM实现,甚至替换为零成本的Python代码?在本节中,我们考虑这些决策。

#### 3.2.1 学习伪工具工具集

一个重要的设计任务是构建伪工具来模块化智能体行为。*ptool归纳器*从记录的智能体轨迹中学习类型化的伪工具库,它本身是一个一次性LLM流水线,而不是梯度训练模型。直觉是,即使是非结构化的展开(rollout)——例如ReAct轨迹或自由形式的思维链——也隐式地将任务分解为一系列推理操作,并且重复出现的操作可以提升为命名的、可调用的子程序,供未来的智能体使用。具体来说,归纳器将基础智能体在训练实例上的记录展开集作为输入。我们支持两种轨迹模式:*ReAct*,提取每个使用工具轮次的逐步骤*思考*字段;以及*CoT*,将智能体的自由形式思维链分块为原子推理步骤。一个可选的过滤器将归纳限制在产生正确最终答案的展开上。然后,一个四阶段LLM流水线将这些思考转换为ptool存根。(1) 每个思考独立地标注一个简短的、与案例无关的动作类型(例如,“提取时间约束”、“验证嫌疑人不在场证明”)。(2) 如果结果标签集很大,一个合并调用将同义类别折叠成更小的规范集。(3) 频率超过最小计数的类别被保留为候选,并保留前K个。(4) 对于每个保留的类别,最后的LLM调用合成一个接口存根——名称、类型化签名和自然语言文档字符串,将推理模式描述为自包含的子程序。输出是一个类型化函数存根的Python模块,每个存根绑定到一个使用合成文档字符串作为提示的单LLM调用实现;该模块随后被注册为下游ReAct子智能体的动作空间。在运行时,每个归纳出的ptool简化为对其文档字符串的单次LLM调用;下游智能体从不调用归纳器或看到合成提示,因此运行时成本与同等规模的手写工具集相同。三个超参数控制流水线——最大ptool数量K、保留的最小类别计数以及仅正确标志,但在我们所有实验中它们都是固定的;详情见§4.2。

### 3.3 将伪工具蒸馏为工具

在分解问题之后,某些接口可能简单到可以用小型专业LM实现,甚至根本不需要调用LLM。特别是,给定收集的目标输入/输出示例和接口“存根”,强大的编码模型有时可以生成Python代码来实现某些接口。*代码蒸馏学习者*将单个伪工具的LLM调用替换为Python函数。给定一个接口以及从记录展开中收集的(输入,输出)对(可选地限制在产生正确最终答案的展开中),该学习者提示一个强大的代码生成LLM生成n个候选函数,在每个训练用例上执行每个函数,根据训练准确率在轮次中选择最佳的一个,并将任何失败的结果反馈给学习者。

相似文章

AHD Agent:用于自动启发式设计的代理强化学习

arXiv cs.AI

本文介绍了 AHD Agent,这是一个利用代理强化学习(Agentic Reinforcement Learning)的框架,使大型语言模型(LLMs)能够通过动态交互求解环境,自主地为组合优化问题设计启发式方法。