通过语言模型函数调用的反思式提示调优

arXiv cs.CL 论文

摘要

介绍了反思式提示调优(RPT),一种利用LLM函数调用,基于系统性错误模式迭代诊断和修改提示的框架,从而提升推理任务性能和校准能力。

arXiv:2605.21781v1 公告类型:新 摘要:大型语言模型(LLM)在执行指令和复杂推理方面能力日益增强,使得提示成为无需参数更新即可适配模型的灵活接口。然而,提示设计仍然劳动密集,且对格式、措辞和指令顺序高度敏感,这催生了自动化提示优化方法,旨在减少人工劳动的同时保持推理时的灵活性。然而,现有方法通常搜索候选提示或使用由单个示例或小批量驱动的固定批评-修正流水线,限制了其捕捉系统性错误模式并基于失败历史进行针对性编辑的能力。我们提出了反思式提示调优(RPT),这是一种利用LLM函数调用来模拟人类提示工程师迭代工作流的框架。LLM优化器调用一个诊断函数,该函数在完整的优化集上评估目标模型,总结反复出现的失败模式,并返回结构化的诊断报告。优化器利用此报告以及先前报告的累积记忆,为下一次迭代修改提示。RPT进一步通过在诊断反馈和最终提示选择中使用校准信号,支持置信度感知优化。在三个推理任务上,RPT相比初始提示提升了高达12.9个点,与最先进方法竞争力相当,并改善了置信度校准。我们的分析表明,RPT在多跳推理和数学推理上尤其有效,能够产生与诊断出的失败模式相一致的目标性提示修改,从而提升任务性能和校准。
查看原文
查看缓存全文

缓存时间: 2026/05/22 08:43

# 通过语言模型函数调用的反思性提示调优
来源:https://arxiv.org/html/2605.21781
Farima Fatahi Bayat, Moin Aminnaseri, Pouya Pezeshkpour, Estevam Hruschka Megagon Labs \{farima, moin, pouya, estevam\}@megagon\.ai

###### 摘要

大型语言模型 \(LLMs\) 在遵循指令和进行复杂推理方面能力日益增强,这使得提示(prompting)成为一种灵活的接口,可在无需更新参数的情况下适配模型。然而,提示设计仍然劳动密集且对格式、措辞和指令顺序高度敏感,这推动了自动化提示优化方法的发展,以减少人工投入并保持推理时的灵活性。然而,现有方法通常搜索提示候选项或使用由单个示例或小批量驱动的固定批评-修改流水线,这限制了它们捕捉系统性错误模式并基于失败历史进行针对性编辑的能力。我们提出反思性提示调优(Reflective Prompt Tuning,RPT),一个利用LLM函数调用来模拟人类提示工程师迭代工作流程的框架。一个LLM优化器调用诊断函数,该函数在整个优化集上评估目标模型,总结反复出现的失败模式,并返回结构化的诊断报告。优化器利用此报告以及先前报告的累积记忆,为下一次迭代修改提示。RPT进一步通过在诊断反馈和最终提示选择中使用校准信号来支持置信度感知的优化。在三个推理任务上,RPT相比初始提示提升了高达12.9个点,与最先进方法保持竞争力,并改善了置信度校准。我们的分析表明,RPT在多跳推理和数学推理上特别有效,能产生针对性的提示修改,与诊断出的失败模式一致,并带来任务性能和校准方面的提升。111我们的代码发布于:https://github.com/megagonlabs/RPT。

反思性提示调优通过语言模型函数调用

Farima Fatahi Bayat, Moin Aminnaseri, Pouya Pezeshkpour, Estevam HruschkaMegagon Labs\{farima, moin, pouya, estevam\}@megagon\.ai

## 1 引言

大型语言模型 \(LLMs\) 在遵循指令和执行复杂推理方面变得日益熟练,这使得上下文提示成为将模型行为适配到下游任务的主要机制Louet al\.\(2024 (https://arxiv.org/html/2605.21781#bib.bib36)\); Weiet al\.\(2022 (https://arxiv.org/html/2605.21781#bib.bib40)\); Kojimaet al\.\(2022 (https://arxiv.org/html/2605.21781#bib.bib39)\)。提示允许用户指定目标、约束和输出格式,而无需修改模型参数,从而实现了跨应用的快速适配Sahooet al\.\(2025 (https://arxiv.org/html/2605.21781#bib.bib37)\); Schulhoffet al\.\(2025 (https://arxiv.org/html/2605.21781#bib.bib38)\)。

尽管具有这种灵活性,提示设计仍然是一个主要瓶颈。设计有效的提示通常是一个手动的、迭代的过程,依赖于试错,并且在某些情况下需要大量专业知识\(Zamfirescu\-Pereiraet al\.,2023 (https://arxiv.org/html/2605.21781#bib.bib41); Knothet al\.,2024 (https://arxiv.org/html/2605.21781#bib.bib42)\)。此外,LLMs对看似微小的选择(如格式、措辞和指令顺序)表现出不可预测的敏感性,因此提示的有效性可能无法在不同设置中可靠泛化\(Zhuoet al\.,2024 (https://arxiv.org/html/2605.21781#bib.bib43); Sclaret al\.,2024 (https://arxiv.org/html/2605.21781#bib.bib44)\)。这些挑战推动了自动化提示优化方法的发展,这些方法旨在通过根据任务目标自动搜索、选择或修改提示,来减少手动提示工程的工作量\(Ramnathet al\.,2025 (https://arxiv.org/html/2605.21781#bib.bib45)\)。

当前最先进方法越来越倾向于使用文本反馈来指导提示优化\(Shinnet al\.,2023 (https://arxiv.org/html/2605.21781#bib.bib25); Yuksekgonulet al\.,2024 (https://arxiv.org/html/2605.21781#bib.bib24); Agrawalet al\.,2025 (https://arxiv.org/html/2605.21781#bib.bib23)\)。在这个范式中,优化器检查诸如执行轨迹、推理步骤或评估器反馈等信号,并提出提示修改建议。然而,现有方法存在若干局限性。首先,许多方法遵循固定上下文更新流水线。例如,ACE\(Zhanget al\.,2026 (https://arxiv.org/html/2605.21781#bib.bib32)\)更新一个可重用策略的辅助手册,该手册被插入到一个固定的提示模板中。虽然这可以提高稳定性,但它限制了优化器进行任意提示级修改的能力。其次,每次迭代中的更新通常由单个示例\(Zhanget al\.,2026 (https://arxiv.org/html/2605.21781#bib.bib32)\)或小批量子集\(Opsahl\-Onget al\.,2024a (https://arxiv.org/html/2605.21781#bib.bib28); Agrawalet al\.,2025 (https://arxiv.org/html/2605.21781#bib.bib23); Yuksekgonulet al\.,2024 (https://arxiv.org/html/2605.21781#bib.bib24)\)驱动,这使得优化对局部失败敏感,而非反复出现的失败。第三,大多数方法缺乏对先前诊断报告和提示修改的显式记忆,这限制了跨迭代的信用分配。最后,提示选择通常仅由任务性能驱动,将更广泛的可靠性属性排除在优化标准之外。尽管GEPA\(Agrawalet al\.,2025 (https://arxiv.org/html/2605.21781#bib.bib23)\)引入了辅助评估信号,但其提示选择仍然主要由任务性能驱动。

为了解决这些局限性,我们提出了反思性提示调优(Reflective Prompt Tuning,RPT),一个利用LLMs的函数调用能力来模拟人类提示工程师迭代工作流程的框架。现代LLMs可以调用外部函数,检查结构化输出,并基于这些调用的反馈进行推理,以指导后续决策。RPT基于这些能力,使用一个LLM作为主动提示优化器,该优化器通过一个显式的诊断函数来检查模型行为并修改提示。从种子提示开始,优化器迭代地调用诊断函数来评估目标模型,并返回结构化的诊断报告。该函数收集行为轨迹,通过诊断失败模式来批评不正确的响应,聚类这些诊断以识别反复出现的失败模式,并总结当前提示在哪些方面失效。优化器基于此报告以及先前报告和提示修改的累积记忆进行条件化,使其能够推理持续存在的失败和先前的改进尝试,而不是孤立地对待每次更新。RPT进一步通过将校准诊断纳入优化器的反馈以及用于选择最终提示的开发集标准中,来支持置信度感知的优化。

我们在三个推理任务上评估RPT,包括:使用HotPotQA\(Yanget al\.,2018 (https://arxiv.org/html/2605.21781#bib.bib46)\)进行基于文本证据的多跳推理,使用LiveBench\-Math\(Whiteet al\.,2025 (https://arxiv.org/html/2605.21781#bib.bib47)\)进行数学推理,以及使用Formula\(Wanget al\.,2025 (https://arxiv.org/html/2605.21781#bib.bib48)\)进行领域特定的数值推理。使用GPT\-4\.1作为目标模型,我们将RPT与最先进的自动化提示优化基线进行比较,包括ACE\(Zhanget al\.,2026 (https://arxiv.org/html/2605.21781#bib.bib32)\)、GEPA\(Agrawalet al\.,2025 (https://arxiv.org/html/2605.21781#bib.bib23)\)和MIPRO\(Opsahl\-Onget al\.,2024a (https://arxiv.org/html/2605.21781#bib.bib28)\)。跨任务,RPT一致地优于初始提示,在HotPotQA上实现了高达\+12.9个点的提升,在LiveBench\-Math上实现了\+12.4个点的提升,在Formula上实现了\+11.7个点的提升,同时与最先进的基线保持竞争力。我们的置信度感知实验进一步表明,将校准信号纳入诊断反馈和最终提示选择中,可以在提升任务性能的同时改善校准。最后,对优化轨迹的分析表明,RPT产生了与诊断出的失败模式相一致的有针对性的提示修改,为理解提示在迭代中为何以及如何被修改提供了见解。这些结果共同表明,工具调用的LLMs可以实现可扩展且可解释的提示优化。

参见图注图1:反思性提示调优(RPT)概述。在每次迭代中,优化器调用一个诊断函数,该函数评估当前提示在DtrainD\_\{\mathrm{train}\}上的表现,批评失败案例,聚类反复出现的失败模式,并返回结构化的报告。优化器使用该报告和先前的报告来生成下一个提示。
## 2 反思性提示调优(RPT)

我们提出反思性提示调优(Reflective Prompt Tuning, RPT),一个诊断驱动的提示优化框架。RPT自动化了提示工程师的迭代工作流程:运行提示,检查输出,识别反复出现的失败,修改提示,然后重复。LLM函数调用和对工具输出进行推理的最新进展使得LLMs能够充当提示优化器\(Schicket al\.,2023 (https://arxiv.org/html/2605.21781#bib.bib34); Gouet al\.,2024 (https://arxiv.org/html/2605.21781#bib.bib35); Yuksekgonulet al\.,2024 (https://arxiv.org/html/2605.21781#bib.bib24)\)。我们首先将提示优化形式化为选择一个能改善任务性能和置信度校准的提示(第2.1节 (https://arxiv.org/html/2605.21781#S2.SS1))。然后,我们描述RPT如何构建诊断反馈,并基于诊断出的失败进行反思性修改(第2.2节 (https://arxiv.org/html/2605.21781#S2.SS2))。RPT中使用的所有提示见附录7 (https://arxiv.org/html/2605.21781#S7)。

### 2.1 问题陈述

令fθf\_\{\theta\}为目标模型,ptp\_\{t\}为优化迭代tt时的提示。给定输入xx,模型产生

fθ\(x;pt\)=\(r,y^,c\),f\_\{\theta\}\(x;p\_\{t\}\)=\(r,\hat{y},c\),\(1\)其中rr是推理轨迹,y^\hat{y}是最终答案,cc是报告的置信度。我们假设一个优化集DtrainD\_\{\mathrm{train}\}、一个开发集DdevD\_\{\mathrm{dev}\}和一个保留测试集DtestD\_\{\mathrm{test}\}。目标是生成候选提示\{p0,...,pT\}\{p\_\{0\},\ldots,p\_\{T\}\},并使用开发集性能选择最终提示p∗p^{\*}。令

O\(p;D\)=\{μ1\(p;D\),...,μn\(p;D\)\}\mathcal{O}\(p;D\)=\{\mu\_\{1\}\(p;D\),\ldots,\mu\_\{n\}\(p;D\)\} \(2\)表示提示pp在数据集DD上的评估指标集,包括任务性能指标和置信度校准误差。我们使用一个标量选择函数Φ\Phi来组合这些指标并选择最终提示:

p∗=arg⁡maxpt∈\{p0,...,pT\}⁡Φ\(O\(pt;Ddev\)\)p^{\*}=\arg\max\_\{p\_\{t\}\in\{p\_\{0\},\ldots,p\_\{T\}\}\}\Phi\left(\mathcal{O}\(p\_\{t\};D\_\{\mathrm{dev}\}\)\right) \(3\)附录7.8 (https://arxiv.org/html/2605.21781#S7.SS8)进一步显示,提示在优化过程中往往会增长,但较长的提示并不一定带来更好的开发性能,这证明了开发集选择的必要性。在置信度感知的设置中,Φ\Phi通过奖励更高的任务分数同时惩罚错误校准(例如通过负的Brier分数项),来联合考虑任务性能和校准。选择的提示p∗p^{\*}随后在保留测试集DtestD\_\{\mathrm{test}\}上进行评估。

### 2.2 方法概述

我们将RPT形式化为一个两阶段的文本更新过程,如图1 (https://arxiv.org/html/2605.21781#S1.F1)所示。首先,RPT构建响应级反馈(第2.2.1节 (https://arxiv.org/html/2605.21781#S2.SS2.SSS1)):给定当前提示ptp\_\{t\},诊断函数评估目标模型在DtrainD\_\{\mathrm{train}\}上的输出,批评不正确的响应,识别反复出现的失败模式,并将它们与聚合指标一起总结成一个诊断报告Rt\mathcal{R}\_\{t\}。其次,RPT将此报告转化为提示级修改(第2.2.2节 (https://arxiv.org/html/2605.21781#S2.SS2.SSS2)):基于ptp\_\{t\}、Rt\mathcal{R}\_\{t\}以及先前报告的记忆,优化器推断出提示可能的不足之处,并产生下一个提示pt\+1p\_\{t+1\}。

#### 2.2.1 构建诊断反馈

诊断函数连接了目标模型行为与优化器LLM。给定当前提示ptp\_\{t\},优化器调用此函数,在整个优化集DtrainD\_\{\mathrm{train}\}上评估目标模型,并返回结构化的诊断报告Rt\mathcal{R}\_\{t\}。该报告不仅捕捉提示“表现如何”,还捕捉目标模型输出如何失败以及哪些失败在整个数据集中重复出现。

##### 行为收集与评分。

诊断函数首先使用提示ptp\_\{t\}在每个示例\(xi,yi\)∈Dtrain\(x\_\{i\},y\_\{i\}\)\in D\_\{\mathrm{train}\}上运行目标模型fθf\_\{\theta\}。对于每个示例,它记录推理轨迹rir\_\{i\}、最终答案y^i\hat{y}\_\{i\}和报告的置信度cic\_\{i\}。然后计算特定任务性能指标,以及平均置信度和用于校准的Brier分数。这些指标捕捉了总体提示质量,但未解释失败的原因。

##### 失败检测与批评。

接下来,该函数使用特定任务评估器识别失败的示例:

It=\{\(xi,yi,y^i,ri,ci\)∣i是不正确的\}\mathcal{I}\_\{t\}=\{\(x\_\{i\},y\_\{i\},\hat{y}\_\{i\},r\_\{i\},c\_\{i\}\)\mid i\text\{是不正确的\}\} \(4\)然后,对于每个失败的示例i∈Iti\in\mathcal{I}\_\{t\},一个批评LLM生成简洁的响应级诊断,说明目标模型输出相对于预期答案yiy\_\{i\}和评估标准如何失败。由于RPT将置信度作为目标模型输出的一部分引出,批评还会基于响应的正确性和质量,评估报告的置信度cic\_\{i\}是否适当。这些诊断捕捉了局部问题,例如不正确的推理、使用无依据的证据、格式错误或对错误答案过度自信。

每个失败实例可能产生最多三个诊断,以提高覆盖率并减少对单个批评的敏感性。设生成的样本级失败诊断池为:

Zt=\{zi,j∣i∈It,j≤3\}\mathcal{Z}\_\{t\}=\{z\_\{i,j\}\mid i\in\mathcal{I}\_\{t\},\;j\leq 3\} \(5\)

##### 识别反复出现的失败模式。

Zt\mathcal{Z}\_\{t\}中的诊断提供了关于个别失败的局部反馈,但提示修改受益于识别优化集中重复出现的模式。为了将响应级批评转化为数据集级的诊断反馈,RPT应用ClusterFusion\(Xuet al\.,2025 (https://arxiv.org/html/2605.21781#bib.bib8)\)到Zt\mathcal{Z}\_\{t\},将语义相似的诊断分组为反复出现的失败主题:

Ct=\{\(ak,dk,Sk\)\}k=1K,\mathcal{C}\_\{t\}=\{\(a\_\{k\},d\_\{k\},S\_\{k\}\)\}\_\{k=1\}^\{K\}, \(6\)其中aka\_\{k\}是一个简短的主题标签,dkd\_\{k\}描述了失败模式,SkS\_\{k\}包含代表性示例。这种聚合将局部批评压缩成目标模型系统性失败的紧凑摘要,帮助优化器推断提示级的不足之处并提出有针对性的修改。主题数量KK控制摘要的粒度(KK选择的详细信息见附录7.5 (https://arxiv.org/html/2605.21781#S7.SS5))。

##### 诊断报告生成。

诊断函数返回一个结构化的报告

Rt=\(pt,O\(pt;Dtrain\),Ct′\),\mathcal{R}\_\{t\}=\left(p\_\{t\},\mathcal{O}\(p\_\

相似文章

对比反思用于迭代提示优化

arXiv cs.AI

提出了一种对比反思(Contrastive Reflection)迭代提示优化框架,用于智能体信息检索工作流。该框架利用结构化轨迹识别错误锚定的行为切片,并通过教师LLM进行对比修复,在HotpotQA上实现了显著改进。