← 返回 2026-06-05

SePO:自进化提示代理——用于系统提示优化的自进化代理 SePO: Self-Evolving Prompt Agent for System Prompt Optimization

Wangcheng Tao, Han Wu, Weng-Fai Wong 📅 2026-06-03 👍 5 2026-07-13 08:36
元学习 提示优化 系统提示 自进化代理 进化搜索

SePO通过自引用设计让提示代理在优化任务提示的同时也优化自身提示

前置知识

系统提示优化

系统提示优化是指通过改进 AI 代理的系统提示词来提升其任务性能,而不需要修改底层模型权重。系统提示是模型执行任务时接收的初始指令,包含了角色定义、任务描述、输出格式约束等信息。优化过程通常涉及评估当前提示的性能,然后基于反馈生成改进版本。这个过程可以被视为一个黑盒优化问题,其中提示空间是搜索空间,评估指标是目标函数。

本文的核心主题就是系统提示优化,理解这个概念是理解 SePO 方法的基础。论文比较了多种提示优化方法,包括 Manual-CoT、TextGrad、MetaSPO 等。

自引用设计

自引用设计是指一个系统能够将自身作为操作对象,而不是仅仅操作外部对象。在 SePO 的上下文中,prompt agent 不仅优化 task agents 的系统提示,还将自己的系统提示也视为优化目标。这意味着同一个进化过程既改进任务提示,也改进提示代理自身的提示。这种设计形成了一个封闭的进化循环,而不是像传统方法那样有一个固定的人工设计组件位于优化循环之外。

这是 SePO 的核心创新点,理解自引用设计是理解 SePO 与现有方法本质区别的关键。论文的 Figure 1 直观地对比了自引用设计与传统方法的区别。

开放端进化搜索

开放端进化搜索是一种不受预设收敛条件限制的进化算法,它维护一个候选解的档案,持续生成新解并根据性能决定是否加入档案。与需要预先知道最优解位置或达到特定精度就停止的传统优化不同,开放端进化可以不断探索和积累更好的解。在 SePO 中,候选提示被组织成一个种群,通过选择、变异、评估和接受机制不断进化,archive 中的早期提示可以作为后续改进的垫脚石。

SePO 的搜索算法基于开放端进化,理解这个概念有助于理解 SePO 如何避免陷入局部最优以及如何利用 archive 机制加速收敛。

元学习

元学习是学习如何学习的机器学习范式,其目标是让模型获得跨任务的学习能力,从而能够快速适应新任务。与在单个任务上训练不同,元学习在多个任务上进行训练,学习到的不是特定任务的解决方案,而是通用的优化策略或学习算法。在提示优化的上下文中,元学习可以学习一个跨任务的共享提示或优化技能,而不是针对每个任务单独优化。

SePO 的两阶段训练(预训练 + 微调)借鉴了元学习的思想,对比方法 MetaSPO 也是一个元学习方法。理解元学习有助于理解 SePO 的跨任务泛化能力。

研究动机

现有的系统提示优化方法存在一个根本性缺陷:驱动优化的 prompt agent 本身的系统提示是人工设计且固定的,永远不会改进。例如,PromptBreeder 引入了元堆栈结构,但顶层的超变异提示是人工编写的,从未被进化;TextGrad 的文本梯度框架中,提示优化组件是固定不变的;MetaSPO 的元优化器也是人工编写的,不在元学习循环内。这种不对称优化意味着提示优化能力受限于人类工程师的设计能力,无法从累积经验中受益。具体来说,当面对多样化的任务时,固定的人工设计的 prompt agent 可能无法捕捉不同任务的最佳优化策略,导致优化效果受限。论文的实验数据也证实了这一点:Manual-CoT 在五个任务上的平均准确率为 71.89%,TextGrad 为 70.39%,MetaSPO 为 71.32%,这三种方法都无法突破人工设计的上限。

本文的目标是本文的目标是设计一个能够自我进化的提示优化框架,将 prompt agent 自身的系统提示也纳入优化范围,形成真正的自引用优化循环。具体而言,SePO 旨在让 prompt agent 通过在多个任务上的训练,获得通用的提示优化技能,然后将这个技能应用到新的目标任务上。这个目标包含两个层面:一是打破提示代理固定不变的限制,让它能够像任务代理一样被优化;二是设计一个两阶段训练流程,在预训练阶段积累通用的优化技能,在微调阶段应用到特定任务,从而实现跨任务泛化。

与已有工作不同的是,本文的独特切入角度是采用自引用设计,将 prompt agent 视为一个特殊的 task agent,其任务是改进其他 agents 的提示。这个洞察看似简单,但具有深刻的含义:它将 prompt optimization 问题从单向的优化变成了双向的互惠优化。与 PromptBreeder 的有界自引用不同,SePO 实现了真正的闭环自引用;与 MetaSPO 的元学习不同,SePO 学习的是跨任务的优化技能本身。这个切人角度的优势在于,它不需要人工设计一个专门的优化器,而是让优化器自己学习如何优化,这不仅提高了性能上限,还提高了方法的可扩展性和适应性。

核心方法

SePO 的整体思路是采用开放端进化搜索,在两个训练阶段优化两类系统提示:预训练阶段优化 prompt agent 自身的系统提示,微调阶段优化 task agent 的系统提示。直觉上,这就像教一个老师如何更好地教学生:首先让老师在多个科目上练习如何改进教学方法(预训练),然后让这个经验丰富的老师去帮助特定科目的学生(微调)。技术路线上,SePO 使用一个基于 archive 的进化算法,维护一个候选提示种群,通过评估、选择、变异、接受的迭代过程不断改进提示。关键的创新在于预训练阶段使用了自引用机制:prompt agent 的父代提示就是它当前的系统提示,它生成一个子代提示(改进版本),评估后如果更好就接受,这样 prompt agent 就在优化任务提示的同时也在改进自己。微调阶段则使用预训练得到的最佳 prompt agent 来优化目标任务。两阶段训练借鉴了深度学习的预训练-微调范式,使得预训练成本可以分摊到多个微调任务上。

SePO 的核心创新是自引用设计,即 prompt agent 将自己的系统提示视为可优化的目标,就像优化 task agents 的提示一样。具体来说,预训练阶段定义了一个 prompt task $\tilde{T} = (\tilde{D}, \tilde{S})$,其中 $\tilde{D}$ 收集了 prompt agent 的输入 $\tilde{x} = (T, A, E)$(任务、任务代理、评估结果),评分函数 $\tilde{S}$ 衡量优化后的提示是否比原提示提高了准确率。这样,优化 prompt agent 的系统提示就变成了一个形式上与优化 task agent 提示完全相同的问题:$$\tilde{p}^\star = \arg\max_{\tilde{p}} \mathbb{E}_{(T,A,E)\sim\tilde{D}}[\tilde{S}(T, A, E, \tilde{A}(\tilde{p}, \tilde{M}, \tilde{W})(T, A, E))]$$。这个数学表达本质上就是任务代理优化的公式,只是参数变成了 prompt agent 的系统提示 $\tilde{p}$。因此,同一个进化搜索算法可以同时优化两类提示,实现了真正的自引用闭环。这与现有方法形成鲜明对比:PromptBreeder 的元堆栈有固定顶层,TextGrad 的优化器是固定的,MetaSPO 的元优化器不在元学习循环内。

方法步骤详情

SePO 的完整步骤包含两个阶段,都使用相同的进化搜索算法。算法输入包括阶段(预训练或微调)、种子提示、代数 G、每代子代数 K;输出是最佳进化提示。具体步骤如下:首先初始化种群,只包含种子提示;然后对于每一代,并行生成多个子代,每个子代的生成过程是:从种群中采样一个父代提示,通过 prompt agent 生成子代提示(预训练时 prompt agent 的系统提示是当前的父代提示,微调时使用预训练得到的最优提示),计算子代提示的分数,如果子代通过准入标准,则将其加入种群;最后返回种群中分数最高的提示。预训练阶段在多任务池上运行,优化 prompt agent 的系统提示从种子到最优;微调阶段在单个目标任务上运行,优化 task agent 的系统提示从种子到最优。实现细节包括:子代评估使用失败和成功示例的混合批次(约 1 比 1 比例);预训练任务池可以是单个相关任务或多样任务混合;使用贪心启发式选择预训练任务。

技术新颖性

SePO 的技术新颖性体现在三个方面。第一,自引用设计是首次在系统提示优化中实现的真正闭环,将 prompt agent 纳入优化范围,这与 PromptBreeder 的有界自引用有本质区别。第二,两阶段训练将提示优化从单次搜索变成了可学习、可积累的技能,预训练阶段获得的优化技能可以跨任务复用,这与 MetaSPO 学习跨任务共享提示但有固定优化器的设计不同。第三,archive 机制的引入使得早期提示可以作为后续改进的垫脚石,这比简单的线性搜索或没有记忆的黑盒优化更有效,实验中去除开放端进化的变体平均下降 3.74 个百分点。此外,SePO 的跨任务泛化能力也很有新意:即使目标任务从未出现在预训练混合中(如 Sudoku),仍然能够从通用优化技能中受益,准确率从 96.95% 提升到 99.90%。这说明 SePO 学习的是优化技能本身,而不是记忆每个任务的特定提示。

Self-Referential Design in System Prompt Optimization
Figure 1: Self-Referential Design in System Prompt Optimization
Overview of SePO's Two-Stage Training Pipeline
Figure 2: Overview of SePO's Two-Stage Training Pipeline

实验结果

在五个评估任务上,SePO-Generalist 取得了最佳性能,超越了 Manual-CoT、TextGrad 和 MetaSPO 三个基线方法。具体来看,AIME'25(数学)上准确率从 57.55% 提升到 64.22%,提升 6.67 个百分点;ARC-AGI-1(抽象推理)上从 37.30% 提升到 43.39%,提升 6.09 个百分点;GPQA(研究生科学)上从 76.46% 提升到 78.18%,提升 1.72 个百分点;MBPP(代码生成)上从 91.20% 提升到 96.20%,提升 5.00 个百分点;Sudoku(逻辑谜题)上从 96.95% 提升到 99.90%,提升 2.95 个百分点。平均准确率从 71.89% 提升到 76.38%,提升 4.49 个百分点。SePO-Specialist 也在所有任务上超越 Manual-CoT,但平均比 SePO-Generalist 低 2.29 个百分点,说明多任务预训练的通用优化技能优于单任务专用技能。TextGrad 和 MetaSPO 在至少三个任务上低于 Manual-CoT,说明固定优化器的局限性。贪心任务选择器在混合规模 4 时达到最佳,准确率 72.68%,优于随机选择器的 71.14%。跨任务泛化实验显示,即使目标任务不在预训练混合中(如 Sudoku),SePO 仍能显著改进性能(99.90% vs 96.95%),说明学到的是通用优化技能而非任务特定提示。消融实验证实两个组件都必需:去除自改进平均下降 1.44 个百分点,去除开放端进化平均下降 3.74 个百分点。模型交换实验(Gemini 3.1 Flash-Lite Preview + Claude Opus 4.6)显示 SePO 的优势可以泛化到不同模型,平均提升 2.13 个百分点。

Main Results across Five Evaluation Tasks
Table 1: Main Results across Five Evaluation Tasks
Component Ablations of SePO-Generalist
Table 2: Component Ablations of SePO-Generalist
Model-Swap Robustness Across All Five Tasks
Table 3: Model-Swap Robustness Across All Five Tasks
Greedy vs. Random Task Selection
Figure 3: Greedy vs. Random Task Selection
Generalization with and without Related Pre-Training Tasks
Figure 4: Generalization with and without Related Pre-Training Tasks
查看结构化数据
任务指标本文基线提升
AIME'25 准确率 (%) 64.22 Manual-CoT: 57.55 +6.67
ARC-AGI-1 准确率 (%) 43.39 Manual-CoT: 37.30 +6.09
GPQA 准确率 (%) 78.18 Manual-CoT: 76.46 +1.72
MBPP 准确率 (%) 96.20 Manual-CoT: 91.20 +5.00
Sudoku 准确率 (%) 99.90 Manual-CoT: 96.95 +2.95
平均 准确率 (%) 76.38 Manual-CoT: 71.89 +4.49

局限与改进

作者在论文中承认 SePO 的几个局限性。首先,任务选择使用了简单的贪心启发式算法,虽然论文提到可以替换为更高级的多任务选择算法(如动态任务分组、元学习任务选择、高方差子集选择),但当前实现仍有改进空间。其次,SePO 目前只优化系统提示,不修改模型权重、工具或工作流,作者认为这些是未来可以扩展的方向。此外,我观察到一些额外的局限性:SePO 的性能依赖于预训练任务混合的质量,虽然论文显示即使目标任务不在混合中也能受益,但混合任务的多样性可能影响通用优化技能的质量。实验中使用的评估任务都是学术基准,在真实世界复杂场景下的表现还需要验证。另外,SePO 的进化搜索过程是随机的(使用 temperature 1 鼓励多样性),虽然论文报告了 5 次独立运行的平均结果,但不同运行之间可能存在方差,这对于需要稳定结果的部署场景可能是个问题。最后,SePO 的计算成本虽然可以分摊,但预训练阶段仍需要一定资源,对于资源受限的环境可能不太友好。

独立分析的弱点

SePO 的一个独立分析弱点是对种子提示的敏感性。虽然论文使用了固定的种子提示,但没有系统分析不同种子提示对最终性能的影响。如果种子提示质量很差,进化搜索可能需要更多代数才能找到好解,或者可能陷入局部最优。另一个弱点是任务顺序的影响:预训练阶段任务的处理顺序是否会影响最终学到的优化技能?论文没有分析这一点,但这是一个值得研究的问题。此外,SePO 的进化搜索参数(代数 G 等于 5、每代子代数 K 等于 2)是根据经验设置的,论文没有进行超参数敏感性分析,这些参数在不同任务上可能需要调整以获得最佳性能。针对这些弱点,改进方向包括:系统研究种子提示的影响,可能需要设计更好的初始化策略或多个种子提示的集成;分析任务顺序的影响,可能需要引入课程学习或自适应任务调度;进行超参数敏感性分析,可能需要设计自适应参数调整机制。

未来方向

作者在结论中提出了几个未来方向:将自引用设计和两阶段训练扩展到系统提示之外的其他组件,如工具、工作流和更广泛的脚手架。这意味着可以让 agent 不仅仅优化自己的提示,还优化自己的工具选择、工作流程设计等。基于论文的成果,可以延伸的未来方向包括:研究更先进的任务选择算法,将当前简单的贪心启发式替换为动态任务分组或元学习任务选择;探索不同评估反馈机制的影响,例如使用自然语言批评而非仅仅是准确率分数;将 SePO 应用到更多类型的 agent,不仅仅是语言模型 agent,还包括多模态 agent 或具身 agent;研究 SePO 与其他自改进方法的结合,例如与 Self-Refine、Reflexion 等输出级自改进方法的集成;分析 SePO 的可解释性,研究进化过程中 prompt agent 学到的优化策略是否可以被人类理解和验证;探索 SePO 在在线学习场景中的应用,让 prompt agent 在部署过程中持续改进而不是预先训练。

复现评估

SePO 的复现性评估总体上是积极的。论文提供了 GitHub 链接(https://github.com/taowangcheng/SePO),这意味着代码是开源的。实验使用的五个评估任务都是公开基准:AIME'25(高中数学奥林匹克)、ARC-AGI-1(抽象视觉推理)、GPQA(研究生科学问题)、MBPP(Python 程序合成)、Sudoku(数独谜题),这些数据集都是公开可获取的。论文详细描述了实现细节:使用 DeepSeek-V3.2 作为任务 agent,Gemini 3.1 Pro Preview 作为 prompt agent;温度设置(task agent 为 0 保证确定性,prompt agent 为 1 鼓励多样性);优化预算(TextGrad 和 SePO 都是 10 次迭代,每次 16 个示例);SePO 参数(G 等于 5 代,K 等于 2 个子代);评估重复次数(每个测试问题多次评估,报告平均准确率);随机种子(5 次独立运行)。这些详细的设置有助于复现。成本分析也提供了具体的 token 计数和费用,这有助于评估资源需求。然而,论文没有明确说明是否提供了预训练好的 prompt agent 模型或进化过程中的中间结果,这对于快速验证和进一步研究会有帮助。总体而言,从开源代码、公开数据集、详细实现描述来看,SePO 的复现难度是中等偏低的。