目录
第 9 章
自我进化的优化空间与维度
自主智能体的优化是一个涵盖多个抽象层面的复杂挑战。在本节中,我们首先将提示词优化确立为基础层,其上出现了三个不同的优化分支:智能体工作流优化、工具优化以及全面的自主智能体优化。
9.1 智能体优化概述
现有基于大语言模型的智能体优化可以概念化为一个两层架构。基础层是提示词优化,专注于增强大语言模型节点的基本交互模式。在此基础上,出现了三个平行的分支:i) 工作流层面的优化,专注于多个大语言模型节点之间的协调与交互模式;ii) 工具优化,智能体通过开发和改进工具来进化,以适应新任务并利用过去的数据;以及 iii) 全面的自主智能体优化,旨在通过考虑多个维度来整体提升智能体能力。
与 AutoML 中的优化范式类似,智能体优化可以分为单目标或多目标。当代智能体优化主要围绕三个典型指标:性能、推理成本和延迟。性能衡量智能体完成指定任务的有效性,而推理成本量化了智能体运行所需的计算资源。延迟代表智能体响应和完成任务所需的时间。这些目标可能因具体的优化模式而异。例如,在提示词层面的优化中,诸如提示词长度等额外约束可能成为相关目标。这种优化目标的多方面性反映了智能体系统的复杂性以及平衡多个相互竞争需求的必要性。
9.2 提示词优化
提示词优化在大语言模型智能体优化中扮演着最关键的角色。在优化智能体时,除了模型层面的优化,特定任务或特定模型的提示词优化直接影响智能体的性能、延迟和成本。给定一个任务 T = ( Q , G t ) T=(Q,G_{t}) T=(Q,Gt),其中 Q Q Q 表示输入查询, G t G_{t} Gt 表示可选的基准真相,提示词优化的目标是生成一个特定任务的提示词 P t ∗ P_{t}^{*} Pt∗,以最大化性能:
P ∗ = arg max P ∈ P E T ∼ D [ ϕ e v a l ( ϕ e x e ( Q , P ) , T ) ] P^{*}=\underset{P\in\mathcal{P}}{\arg\operatorname*{max}}\mathbb{E}_{T\sim\mathcal{D}}[\phi_{\mathrm{eval}}(\phi_{\mathrm{exe}}(Q,P),T)] P∗=P∈PargmaxET∼D[ϕeval(ϕexe(Q,P),T)]
其中 P \mathcal{P} P 表示可能的提示词空间, ϕ e x e \phi_{\mathrm{exe}} ϕexe 表示执行函数, ϕ e v a l \phi_{\mathrm{eval}} ϕeval 表示评估函数。这种优化通常通过三个基本函数实现: ϕ o p t 、 ϕ e x e \phi_{\mathrm{opt}}、\phi_{\mathrm{exe}} ϕopt、ϕexe 和 ϕ e v a l \phi_{\mathrm{eval}} ϕeval。优化函数 ϕ o p t \phi_{\mathrm{opt}} ϕopt 根据优化信号改进现有提示词,执行函数 ϕ e x e \phi_{\mathrm{exe}} ϕexe 调用当前提示词以获取输出 O O O,评估函数 ϕ e v a l \phi_{\mathrm{eval}} ϕeval 评估当前输出以生成评估信号 S e v a l S_{\mathrm{eval}} Seval 和优化信号 S o p t S_{\mathrm{opt}} Sopt。评估信号用于选择有效的提示词,而优化信号则辅助优化函数执行优化。
9.2.1 评估函数
提示词优化的核心在于评估函数 ϕ e v a l \phi_{e v a l} ϕeval,它是推导优化信号和指导提示词进化轨迹的基石。该函数协调了评估来源、方法论和信号生成之间复杂的相互作用,建立了一个驱动持续改进的反馈循环。评估函数 ϕ e v a l \phi_{e v a l} ϕeval 将评估来源作为输入,并采用各种评估方法来生成不同类型的信号,这些信号随后指导优化过程。在这里,我们定义了来源、方法和信号类型的维度,为提示词优化奠定基础。
评估来源 评估来源主要包括大语言模型生成输出 G l l m G_{l l m} Gllm 和任务特定的基准真相 G t G_{t} Gt。现有工作如 [730, 774, 728, 775, 732, 300] 主要利用 G l l m G_{l l m} Gllm 和 G t G_{t} Gt 之间的比较作为评估来源。一些方法 [776, 721, 777] 仅使用 G l l m G_{l l m} Gllm 作为评估来源。例如,PROMST [721] 通过比较 G l l m G_{l l m} Gllm 与人工制定的规则来评估提示词的有效性;SPO [778] 则采用不同提示词输出的成对比较来确定相对有效性。
评估方法 评估方法大致可分为三类:基于基准的评估、大语言模型作为评判者 (LLM-as-a-Judge) 和人类反馈。基于基准的评估仍然是提示词优化中最流行的方法 [730, 774, 721, 732, 300]。这种方法依赖预定义的指标或规则来提供数值反馈作为评估信号。虽然它提供了一个自动化的评估过程,但其有效性最终取决于基准设计与人类偏好的一致程度。
大语言模型作为评判者 (LLM-as-a-Judge) 的引入代表了自动化评估和偏好对齐方面的一个重大进步。利用大语言模型与人类偏好的内在对齐以及精心设计的评判标准,这种方法 [589] 可以根据任务描述和提示词输出 G l l m G_{l l m} Gllm 评估任务完成质量,提供反思性的文本梯度反馈。著名的实现包括 ProteGi [779]、TextGrad [728]、Semantic Search [775] 和 Revolve [780]。此外,LLM-as-a-judge 能够通过特定的评分机制 [724] 对基准真相 G t G_{t} Gt 和输出 G l l m G_{l l m} Gllm 进行比较评估。这种方法的有效性取决于评判者提示词的设计以及底层模型与人类偏好的对齐程度。作为一种专门的扩展,智能体作为评判者 (Agent-as-aJudge) [781] 通过使用专门的智能体对复杂任务提供过程评估,同时以显著降低的评估成本保持与人类偏好的高度一致性,从而改进了这一范式。
人类反馈代表了评估过程中最高级别的智能整合。由于人类仍然是提示词有效性的最终仲裁者,直接的人类反馈可以迅速且显著地提高提示词质量。然而,这种方法带来了显著的资源开销。APOHF [777] 表明,结合人类反馈可以用最少的计算资源实现鲁棒的提示词优化,特别是在开放式任务中表现出色,例如用户指令、文本到图像生成模型的提示词优化和创意写作。然而,对人类干预的需求在某种程度上与自动化进化的目标相矛盾。
信号类型 评估方法生成的反馈表现为三种不同的形式,每种形式服务于不同的优化需求。数值反馈 [730, 774, 721, 732, 300] 通过标量指标量化性能,与规则、基准真相、人类评估和大语言模型判断兼容。虽然应用广泛,但这种方法需要大量样本以确保统计可靠性,可能忽略可能指导优化的实例特定细节。文本反馈 [728, 775, 780] 通过分析和具体建议提供详细的、实例特定的指导。这种复杂的方法需要智能参与,无论是来自人类专家还是先进的语言模型,通过明确的建议来实现提示词设计的有针对性改进。然而,其对复杂智能来源的依赖影响了其可扩展性。排名反馈 [778] 通过全面排名或成对比较建立相对质量排序。这种方法独特地规避了对绝对质量度量或预定义标准的需求,仅需要偏好判断。当绝对指标难以定义或优化主要关注相对改进时,它尤其有价值。
9.2.2 优化函数
优化函数的设计对于确定每次提示词优化迭代中生成提示词的质量至关重要。通过有效的信号指导,提示词自我进化可以实现更快的收敛。当前的优化方法主要依赖于两种类型的信号:评估信号 S e v a l S_{e v a l} Seval,用于识别最有效的现有提示词;以及优化信号 S o p t S_{o p t} Sopt,为改进提供详细指导。
通过评估信号进行优化 当使用评估信号进行优化时,过程首先基于 ϕ e v a l \phi_{e v a l} ϕeval 评估选择最有效的提示词。一些方法并非直接从过去的错误中学习,而是采用启发式探索和优化策略。SPO [778] 根据当前表现最佳提示词的输出来迭代改进提示词,利用语言模型内在的与任务需求对齐的能力。类似地,Evoprompt [723] 采用进化算法,将大语言模型作为进化算子,进行启发式的提示词组合。PromptBreeder [732] 通过比较变异提示词之间的得分变化,同时利用大语言模型的内在能力修改元提示词和提示词,进一步推进了这种方法。
通过优化信号进行优化 虽然仅基于评估信号的优化方法需要在巨大的搜索空间中通过试错进行广泛搜索才能找到最优解,但另一种方法利用明确的优化信号来指导优化方向并提高效率。现有方法展示了利用这些优化信号的各种方式。OPRO [730] 从表现优异的提示词解决方案中提取共同模式,以指导后续的优化步骤。ProTegi [779] 利用语言模型分析失败案例并预测错误原因,将这些见解用作优化指导。TextGrad [728] 进一步扩展了这种方法,将提示词反思转化为“文本梯度”,并将这种指导应用于智能体系统内的多个提示词。Revolve [780] 通过模拟二阶优化进一步增强了优化,将先前的一阶反馈机制扩展到模拟连续提示词和响应之间不断演变的关系。这使得系统能够根据先前梯度的变化进行调整,避免在次优模式中停滞,并能够在复杂任务性能方面实现更明智、长期的改进。
9.2.3 评估指标
提示词优化方法的有效性可以从多个维度进行评估。针对封闭任务的性能指标 [782, 778, 730] 是提示词固有性能最直接的指标,包括 pass@1、准确率、F1 分数和 ROUGE-L 等度量。这些指标使研究人员能够评估提示词优化过程的稳定性、有效性和收敛速度。另一个关键维度是效率指标 [778]。虽然一些提示词优化方法取得了优异的结果,但它们通常需要大量的计算资源、更大的样本量和广泛的数据集。相比之下,其他方法以较低的资源需求取得了中等的结果,突显了智能体进化中性能与效率之间的权衡。第三个维度关注评估智能体行为特定方面的定性指标:一致性 [776] 衡量多次运行输出的稳定性,公平性 [783] 评估减轻语言模型固有偏见的能力,置信度 [784, 785] 量化智能体对其预测的确定性。当这些行为方面被视为不同的目标时,提示词优化框架会提供相应的指标进行评估。
9.3 工作流优化
虽然提示词层面的优化在增强单个大语言模型能力方面显示出有希望的结果,但现代 AI 系统通常需要协调多个大语言模型组件来处理复杂任务。这需要一个更全面的优化领域——智能体工作流空间。其核心是,智能体工作流由调用大语言模型的节点组成,每个节点代表一个专门为大型系统内特定子任务设计的大语言模型组件。
尽管这种架构与多智能体系统有相似之处,但区分智能体工作流和完全自主的多智能体场景非常重要。在智能体工作流中,节点在预定的协议和优化目标下运行,而不是表现出自主决策能力。许多著名的系统,如 MetaGPT [626]、AlphaCodium [786],都可以归入这个框架。此外,智能体工作流可以作为更大型自主智能体系统中的可执行组件,因此它们的优化对于推进专门任务完成和通用智能体能力都至关重要。
遵循 GPTSwarm [651] 和 AFLOW [773] 提出的形式化方法,本节首先建立智能体工作流及其优化目标的正式定义。然后,我们检查智能体工作流的核心组件——节点和边——分析它们各自的搜索空间,并讨论文献中现有的表示方法。
9.3.1 工作流形式化
一个智能体工作流 κ \kappa κ 可以正式表示为:
K = { ( N , E ) ∣ N ∈ N , E ∈ E } \mathcal{K}=\{(N,E)|N\in\mathcal{N},E\in\mathcal{E}\} K={(N,E)∣N∈N,E∈E}
其中 N = { N ( M , τ , P , F ) ∣ M ∈ M , τ ∈ [ 0 , 1 ] , P ∈ P , F ∈ F } \mathcal{N}=\{N(M,\tau,P,F)|M\in\mathcal{M},\tau\in[0,1],P\in\mathcal{P},F\in\mathcal{F}\} N={N(M,τ,P,F)∣M∈M,τ∈[0,1],P∈P,F∈F} 代表调用大语言模型的节点集合,其中 M M M、 τ \tau τ、 P \mathcal{P} P 和 F \mathcal{F} F 分别表示可用的语言模型、温度参数、提示词空间和输出格式空间。 E E E 表示不同大语言模型调用节点之间的边。这个形式化封装了定义智能体工作流行为的结构组件和操作参数。
给定一个任务 T T T 和评估指标 L L L,工作流优化的目标是发现最优工作流 K ∗ K^{*} K∗,以最大化性能:
K ∗ = arg max K ∈ K L ( K , T ) K^{*}=\underset{K\in\mathcal{K}}{\arg\operatorname*{max}}L(K,T) K∗=K∈KargmaxL(K,T)
其中 K K K 是工作流的搜索空间, L ( K , T ) L(K,T) L(K,T) 通常衡量多个方面,包括任务完成质量、计算效率和执行延迟。这个优化目标反映了部署智能体工作流时的实际挑战,我们必须在有效性与资源约束之间取得平衡。
9.3.2 优化工作流边
边空间 E \mathcal{E} E 定义了智能体工作流的表示形式。当前方法主要采用三种不同的表示范式:基于图的、基于神经网络的和基于代码的结构。每种范式都提供了独特的优势,并对优化过程引入了特定的约束。
基于图的表示能够表达节点之间的层级、顺序和并行关系。这种方法自然地适应了复杂的分支模式,并便于工作流拓扑的可视化,使其特别适用于需要显式结构操作的场景。例如,GPTSwarm [651] 展示了基于图的工作流表示在通过拓扑感知优化协调多个大语言模型组件方面的有效性。神经网络架构提供了另一种强大的表示范式,擅长捕捉节点之间的非线性关系。Dylan [725] 表明,基于神经网络的工作流可以通过可学习的参数表现出适应性行为,使其特别适用于需要根据输入和反馈进行动态调整的场景。基于代码的表示提供了当前方法中最全面的表达能力。AFLOW [773] 和 ADAS [741] 证实,将工作流表示为可执行代码支持线性序列、条件逻辑、循环以及图和网络结构的集成。这种方法提供了对工作流执行的精确控制,并利用了大语言模型固有的代码生成能力。
边空间表示的选择显著影响搜索空间维度和适用的优化算法。[728] 仅关注提示词优化,同时保持固定的工作流拓扑,从而能够使用基于文本反馈的优化技术。相比之下,[651] 开发了强化学习算法,用于联合优化单个节点提示词和整体拓扑。[773] 利用基于代码的表示,使语言模型能够直接优化工作流,而 [787] 和 [788] 的最新进展引入了针对特定问题的拓扑优化方法。
9.3.3 优化工作流节点
节点空间 N N N 由四个影响节点行为和性能的关键维度组成。输出格式空间 F F F 通过结构化大语言模型输出来显著影响性能,像 XML 和 JSON 这样的格式能够更精确地控制响应结构。温度参数 τ \tau τ 控制输出的随机性,影响节点响应中稳定性与创造性之间的权衡。提示词空间 P P P 继承了提示词层面优化的优化域,决定了与大语言模型的核心交互模式。模型空间 M M M 代表可用的不同能力和计算成本的大语言模型。
对于单节点优化,现有研究主要集中在该空间内的特定维度。[773] 专注于提示词优化,而 [741] 将搜索空间扩展到包括提示词和温度参数。采取不同方法,[789] 固定提示词,同时探索不同节点间的模型选择。输出格式优化虽然至关重要,但仍相对未被探索 [790]。
与边空间优化相比,节点空间优化带来了独特的可扩展性挑战,因为智能体工作流中通常包含大量节点。搜索空间的维度随着每个额外节点的增加而呈乘法增长,这需要能够有效处理这种复杂性同时保持合理计算成本的高效优化策略。
9.4 工具优化
与通常以单轮方式运行的传统大语言模型用法不同,智能体配备了先进的多轮规划能力以及通过各种工具与外部世界交互的能力。这些独特的属性使得工具使用的优化成为增强智能体整体性能和适应性的关键组成部分。工具优化涉及系统地评估和改进智能体如何选择、调用和集成可用工具,以更高的效率和更低的延迟解决问题。此背景下的关键性能指标包括决策准确性、检索效率、选择精度、任务规划和风险管理。这种优化的核心是两个互补的策略:工具学习和工具创建。
9.4.1 学习使用工具
与利用冻结的基础模型的上下文学习能力的基于提示词的方法不同,基于训练的方法通过监督来优化支持大语言模型智能体的模型。借鉴发展心理学的启示,工具学习可以分为两个主要流派:从演示中学习和从反馈中学习 [714]。另一种激发大语言模型(智能体)使用工具能力的方法是使用基于提示词或上下文学习的方法来增强推理能力。
从演示中学习涉及训练支持大语言模型智能体的模型,通过模仿学习来模仿专家行为。诸如行为克隆之类的技术允许模型通过复制人类标注的工具使用动作,以监督的方式学习策略。形式上,给定一个数据集 D = { ( q i , a i ∗ ) } i = 0 N − 1 D=\{(q_{i},a_{i}^{*})\}_{i=0}^{N-1} D={(qi,ai∗)}i=0N−1,其中 q i q_{i} qi 是用户查询, a i ∗ a_{i}^{*} ai∗ 是对应的人类演示,控制器参数 θ C \theta_{C} θC 的优化如下:
θ C ∗ = arg max θ C E ( q i , a i ∗ ) ∈ D ∏ t = 0 T i p θ C ( a i , t ∗ ∣ x i , t , H i , t , q i ) \theta_{C}^{*}=\arg\operatorname*{max}_{\theta_{C}}\mathbb{E}_{(q_{i},a_{i}^{*})\in D}\prod_{t=0}^{T_{i}}p_{\theta_{C}}(a_{i,t}^{*}\mid x_{i,t},H_{i,t},q_{i}) θC∗=argθCmaxE(qi,ai∗)∈Dt=0∏TipθC(ai,t∗∣xi,t,Hi,t,qi)
其中 a i , t ∗ a_{i,t}^{*} ai,t∗ 是查询 q i q_{i} qi 在时间步 t t t 的人类标注, T i T_{i} Ti 是总时间步数。
从反馈中学习利用强化学习使模型能够根据从环境或人类反馈中获得的奖励进行调整。控制器参数 θ C \theta_{C} θC 的优化目标是:
θ C ∗ = arg max θ C E q i ∈ Q E { a i , t } t = 0 T i [ R ( { a i , t } t = 0 T i ) ] \theta_{C}^{*}=\arg\operatorname*{max}_{\theta_{C}}\mathbb{E}_{q_{i}\in Q}\mathbb{E}_{\{a_{i,t}\}_{t=0}^{T_{i}}}\left[R\left(\{a_{i,t}\}_{t=0}^{T_{i}}\right)\right] θC∗=argθCmaxEqi∈QE{ai,t}t=0Ti[R({ai,t}t=0Ti)]
其中 R R R 代表基于动作序列 { a i , t } \{a_{i,t}\} {ai,t} 的奖励函数。
将工具学习整合到优化框架中,增强了系统在不同任务和环境中泛化工具使用的能力。通过结合基于演示和基于反馈的学习,模型可以迭代地改进其工具调用策略、选择策略和执行准确性。
用于工具使用的优化推理策略 优化上述指标以提升大语言模型智能体的能力,需要结合先进的检索模型、微调的推理策略和自适应学习机制。推理策略,例如思维链 (CoT) [46]、思维树 [72] 和深度优先搜索决策树 (DFS-DT) [690],有助于关于工具使用的更复杂的决策过程。微调模型对工具的理解,包括参数解释和动作执行,能够实现更精确有效的工具交互。此外,从模型输出中学习可以实现更好的后处理和分析,进一步提高工具利用效率。
9.4.2 创建新工具
除了优化现有工具之外,基于对任务和当前工具使用的深刻理解动态创建新工具的能力 [703, 702, 772],可以显著增强大语言模型智能体框架的适应性和效率。在最近的工作中,提出了几种互补的方法。ToolMakers [702] 建立了一个闭环框架,其中工具制造智能体迭代执行三个阶段:(1)使用三个演示通过示例编程提出 Python 函数,(2)通过自动化单元测试(3 个验证样本)验证功能,并对测试用例进行自我调试,(3)将经过验证的工具与使用演示打包,用于下游任务。这个严格的过程在保持完全自动化的同时确保了可靠性。CREATOR [703] 采用四阶段生命周期:通过抽象推理创建特定任务的工具,工具调用的决策规划,生成程序的执行,以及通过迭代工具改进进行修正——强调工具多样性、抽象/具体推理的分离以及错误恢复机制。相比之下,CRAFT [772] 采用离线范式,通过 GPT-4 提示、验证和去重,将特定领域的数据提炼成可重用的原子工具(例如,物体颜色检测)。其无需训练的方法将人类可检查的代码片段与组合式问题解决方法相结合,实现了可解释的工具链,同时避免了模型微调——在将复杂任务分解为模块化步骤时尤其有效。
这些互补方法的整合提供了丰富的研究机会。混合系统可以将 CRAFT 的预制工具库与 ToolMakers 的按需生成相结合,使用功能缓存来平衡效率和适应性。未来的框架可能会实现多层工具层次结构,其中来自 CRAFT 的原始操作输入到 ToolMakers 的复合工具中,而 CREATOR 风格的修正处理边缘情况。自监督工具评估指标和跨领域泛化的进步可以进一步自动化工具生命周期。值得注意的是,工具粒度(原子与复合)和可重用性模式之间的相互作用值得系统研究——细粒度工具能够实现灵活组合,但增加了编排复杂性。随着智能体的进化,可能会出现双向的工具-任务协同适应机制,其中工具重塑任务表示,而新任务驱动工具创新,最终实现自我改进的 AI 系统。
9.4.3 工具有效性评估
下面讨论的评估指标和基准为量化智能体的工具使用能力提供了全面的基础。通过评估工具调用、选择准确性、检索效率以及复杂任务规划等方面,这些基准不仅衡量当前的性能,还为优化工具使用提供了清晰、具体的目标。这些指标在指导基于智能体系统的即时性能增强和长期战略改进方面至关重要。在以下各节中,我们首先回顾智能体工具使用基准的演变,然后整合作为进一步工具优化目标的关键评估指标。
工具评估基准 近期在 LLM-as-Agent 研究中的努力催生了各种用于评估工具使用能力的基准和框架。早期研究如 Gorilla [727] 和 API-Bank [791] 开创了大规模数据集和方法,用于测试大语言模型与外部 API 的交互,揭示了参数准确性和幻觉等问题。随后的工作如 T-Bench [792] 和 ToolBench [690] 引入了更广泛的任务套件,并强调了系统化数据生成对于工具操作的重要性。StableToolBench [793] 通过强调现实世界 API 的不稳定性,进一步扩展了这一研究方向,提出了一个虚拟 API 服务器以进行更一致的评估。与此同时,ToolAlpaca [794] 研究了在相对较小的语言模型中,通过最少的领域内训练实现通用工具使用的可行性。其他努力如 ToolEmu [795] 通过模拟沙箱环境评估了工具增强的 LM 智能体的安全性和风险方面。然后,MetaTool [796] 引入了一个新的基准,专注于大语言模型是否知道何时使用工具以及能否正确选择要使用的工具。它提供了一个名为 ToolE 的数据集,涵盖了单工具和多工具使用场景,鼓励对工具使用意识和细致工具选择的研究。ToolEyes [797] 通过检查跨大型工具库的真实世界场景和多步推理,进一步推动了评估。最后,τ-bench [798] 引入了人在回路的视角,强调了基于智能体的对话中的动态用户交互和策略合规性。总的来说,这些基准和框架突显了工具增强的大语言模型研究不断发展的格局,标志着从孤立的推理任务向全面、真实的智能体评估的转变。
工具调用指标 决定是否调用外部工具是可能显著影响系统效率和有效性的关键步骤。在许多场景中,模型必须确定其自身的推理是否足以回答查询,或者是否需要工具提供的额外外部知识(或功能)。为了形式化这个过程,我们引入一个带标签的数据集
D i n v = { ( q i , y i ) } i = 0 N − 1 , D_{\mathrm{inv}}=\{(q_{i},y_{i})\}_{i=0}^{N-1}, Dinv={(qi,yi)}i=0N−1,
其中 q i q_{i} qi 表示第 i i i 个用户查询, y i ∈ { 0 , 1 } y_{i}\in\{0,1\} yi∈{0,1} 是一个二元标签,指示是否需要调用工具( y i = 1 y_{i}=1 yi=1)或不需要( y i = 0 y_{i}=0 yi=0)。基于此数据集,模型学习一个决策函数 d ( q i ) d(q_{i}) d(qi) 定义为:
d ( q i ) = { 1 , i f P θ ( y = 1 ∣ q i ) ≥ τ , 0 , o t h e r w i s e , d(q_{i})={\left\{\begin{array}{l l}{1,}&{{\mathrm{if~}}P_{\theta}(y=1\mid q_{i})\geq\tau,}\\ {0,}&{{\mathrm{otherwise}},}\end{array}\right.} d(qi)={1,0,if Pθ(y=1∣qi)≥τ,otherwise,
其中 P θ ( y = 1 ∣ q i ) P_{\theta}(y=1\mid q_{i}) Pθ(y=1∣qi) 表示(来自参数为 θ \theta θ 的模型)预测查询 q i q_{i} qi 应调用工具的概率, τ \tau τ 是一个预定的阈值。
除了这个决策规则,还可以使用几个指标来评估模型正确决定是否调用工具的能力。例如,总体调用准确率 A i n v A_{\mathrm{inv}} Ainv 可以计算为:
A i n v = 1 N ∑ i = 0 N − 1 1 { d ( q i ) = y i } , A_{\mathrm{inv}}=\frac{1}{N}\sum_{i=0}^{N-1}\mathbf{1}\{d(q_{i})=y_{i}\}, Ainv=N1i=0∑N−11{d(qi)=yi},
其中 1 { ⋅ } \mathbf{1}\{\cdot\} 1{⋅} 是指示函数。其他指标如精确率、召回率和 F1 分数也适用。此外,如果 C i n v C_{\mathrm{inv}} Cinv 表示调用工具产生的成本, R ( q i ) R(q_{i}) R(qi) 表示正确使用工具时获得的收益或奖励,可以定义一个净收益得分:
B i n v = ∑ i = 0 N − 1 ( 1 { d ( q i ) = 1 } ⋅ R ( q i ) − C i n v ) . {\cal B}_{\mathrm{inv}}=\sum_{i=0}^{N-1}\left({\bf1}\{d(q_{i})=1\}\cdot R(q_{i})-C_{\mathrm{inv}}\right). Binv=i=0∑N−1(1{d(qi)=1}⋅R(qi)−Cinv).
这个公式不仅强调准确性,还考虑了调用外部工具的成本效益。
候选工具中的选择 一旦做出调用工具的决定,下一个挑战是从候选工具池中选择最合适的工具。设候选工具集表示为:
T = { t 1 , t 2 , … , t M } . \mathcal{T}=\{t_{1},t_{2},\dots,t_{M}\}. T={t1,t2,…,tM}.
对于给定的查询 q i q_{i} qi,假设最优工具(根据基准真相)是 t i ∗ t_{i}^{*} ti∗,模型选择了 t ^ i \hat{t}_{i} t^i。最简单的选择性能度量是工具选择准确率 A S A_{S} AS:
A S = 1 ∣ Q ∣ ∑ q i ∈ Q 1 { t ^ i = t i ∗ } . A_{S}=\frac{1}{|Q|}\sum_{q_{i}\in Q}\mathbf{1}\{\hat{t}_{i}=t_{i}^{*}\}. AS=∣Q∣1qi∈Q∑1{t^i=ti∗}.
然而,许多场景涉及按相关性对多个候选工具进行排名。在这种情况下,基于排名的指标,如平均倒数排名 (MRR) 和归一化折扣累积增益 (nDCG),提供了更细致的评估。[690] 在评估工具检索系统时使用了这两个指标。
工具检索效率和层级准确性 工具检索既涉及识别合适工具的速度,也涉及该选择的准确性。高效的检索方法可以减少延迟和计算开销,而高检索准确性确保为任务识别出最相关的工具。为了全面评估工具使用情况,我们采用了一个区分检索准确性和选择准确性的层级框架。检索准确性 ( A R ) (A_{R}) (AR) 反映了系统从存储库中检索正确工具的精确程度,通常通过精确匹配 (EM) 和 F1 分数等指标衡量,这些指标捕捉了完全匹配和部分匹配。相比之下,选择准确性 ( A S ) (A_{S}) (AS) 评估系统从一组候选者中选择最优工具的能力,同样使用类似的指标。整体工具使用意识通过准确率、召回率、精确率和 F1 分数进一步评估。
因此,整体检索效率 E R e t E_{R e t} ERet 可以表示为:
E R e t = A R × A S × A P × A U C R E_{R e t}=\frac{A_{R}\times A_{S}\times A_{P}\times A_{U}}{C_{R}} ERet=CRAR×AS×AP×AU
其中 C R C_{R} CR 是与检索相关的成本。优化策略可能涉及训练带有反馈机制的嵌入模型,以提高效率和准确性的每个层级组成部分。
为了更细致地评估工具选择,Metatool [796] 引入了正确选择率 (CSR),它量化了模型选择预期工具的查询百分比。该评估框架解决了四个方面:在相似候选者中选择正确的工具,在特定上下文场景中选择合适的工具,通过避免选择不正确或不存在的工具来确保可靠性,以及处理多工具查询。总之,这些指标和子任务为工具检索和选择的效率和精度提供了稳健的衡量标准。
复杂任务的工具规划 复杂任务通常需要按顺序应用多个工具才能达到最优解决方案。一个工具计划可以表示为一个有序序列
Π = [ t 1 , t 2 , … , t K ] , \Pi=[t_{1},t_{2},\dots,t_{K}], Π=[t1,t2,…,tK],
其中 K K K 是步骤数。此类计划的质量通常通过平衡其任务有效性(例如,通过指标 R t a s k ( Π ) ) R_{\mathrm{task}}(\Pi)) Rtask(Π)) 与计划的复杂性(或长度)来评估。这种平衡可以通过形式如下的复合规划得分来捕捉
S p l a n = α ⋅ R t a s k ( Π ) − β ⋅ K , S_{\mathrm{plan}}=\alpha\cdot R_{\mathrm{task}}(\Pi)-\beta\cdot K, Splan=α⋅Rtask(Π)−β⋅K,
其中 α \alpha α 和 β \beta β 是调整高任务性能收益与计划复杂性相关成本之间权衡的系数。当有基准真相计划 Π ∗ \Pi^{*} Π∗ 可用时,可以使用 BLEU 或 ROUGE 等相似性指标来比较预测计划 Π \Pi Π 与 Π ∗ \Pi^{*} Π∗,并可以相应地定义整体规划效率指标。
此外,最近的工作如 ToolEyes [797] 强调了工具使用中行为规划的重要性。除了选择工具和参数之外,对于大语言模型来说,简洁地总结获取的信息并战略性地规划后续步骤至关重要。在此背景下,行为规划能力从两个维度进行评估。首先,通过评估 (1) 总结当前状态的合理性,(2) 规划下一系列行动的及时性,以及 (3) 规划的多样性,计算得分 S b S_{b} Sb-validity ∈ [ 0 , 1 ] \in[0,1] ∈[0,1]。其次,通过评估 (1) 语法健全性,(2) 逻辑一致性,以及 (3) 纠正思维的能力,计算得分 S b − i n t e g r i t y ∈ [ 0 , 1 ] S_{b\mathrm{-integrity}}\in[0,1] Sb−integrity∈[0,1]。然后,复合行为规划得分确定为
S B P = S b − v a l i d i t y ⋅ S b − i n t e g r i t y , S_{B P}=S_{b\mathrm{-validity}}\cdot S_{b\mathrm{-integrity}}, SBP=Sb−validity⋅Sb−integrity,
提供了模型规划能力的整体度量。这个集成框架确保了复杂任务的工具规划不仅关注工具的选择和排序,还关注维持连贯、有效和战略上健全的规划过程。
总之,优化智能体系统内的工具性能需要一个全面的方法,平衡决策准确性、检索效率、层级选择精度、战略规划、严格的风险管理和鲁棒的工具学习机制。通过实施有针对性的优化和学习策略,可以提高工具辅助机器学习工作流的有效性和效率。
9.5 迈向自主智能体优化
除了优化智能体进化中的单个模块,如提示词、工具和工作流——这些模块容易陷入局部最优,可能损害整个智能体系统的整体性能——还有大量研究专注于优化整个智能体系统内的多个组件。这种整体性方法使大语言模型(LLM)智能体能够更全面地进化。然而,优化整个系统提出了更高的要求。算法不仅必须考虑单个组件对智能体系统的影响,还必须考虑不同组件之间复杂的相互作用。
ADAS [741] 是最具代表性的工作之一,首次正式定义了智能体系统中自动化设计的研究问题。它将多个智能体系统组件集成到进化流程中。具体来说,ADAS 引入了一个元智能体,能够在整体优化过程中迭代设计智能体系统的工作流、提示词和潜在工具。正如实验所示,自动设计的智能体系统优于最先进的手工设计基线。
此外,[726] 提出了一个用于训练语言智能体的智能体符号学习框架,其灵感来源于神经网络中使用的连接主义学习原理。通过将智能体流程类比为计算图,该框架引入了一种基于语言的反向传播和权重更新方法。它定义了一个基于提示词的损失函数,通过智能体轨迹传播语言损失,并相应地更新符号组件。该方法能够对智能体工作流进行结构化优化,并自然地扩展到多智能体系统,可以将节点视为独立的智能体,或允许多个智能体在单个节点内行动。
[799] 提出了一种优化提示词和智能体自身代码的方法,使其能够自我改进。这与自引用的概念一致,即系统可以分析和修改自身结构以提高性能。
类似地,[773]、[787]、[800] 和 [788] 专注于优化智能体系统内的工作流和提示词。特别是,[285] 引入了一种方法,训练额外的大语言模型(LLM)来生成提示词和工作流,从而实现智能体系统架构的自动化设计。
总之,优化整个智能体系统的工作流不仅仅是单个组件优化的直接聚合。相反,它需要精心设计的算法来考虑组件之间复杂的相互依赖关系。这使得系统范围的优化成为一项更具挑战性的任务,需要先进的技术来实现有效和全面的改进。