LLM Agent 反思工作流详解
大语言模型(LLM)在复杂任务中往往面临幻觉或逻辑错误的问题。为了解决这一问题,研究者提出了多种基于'反思(Reflection)'的工作流模式,通过迭代反馈和自我修正来提升输出质量。本文将深入探讨三种典型的反思优化技术:Self-Refine、CRITIC 和 Reflexion。
1. Self-Refine:自我精炼机制
Self-Refine 是一种利用单一 LLM 进行生成、改进和反馈的技术。其核心思想是让模型充当自己的批评者,通过多轮迭代优化初始输出。
工作原理
- 生成器:根据提示词生成初始响应。
- 改进器:对初始响应进行分析,识别潜在错误或不足。
- 反馈器:将改进建议作为新的输入,再次调用模型生成优化后的版本。
该方法在对话生成、数学推理和代码编写等任务上表现优异,相比传统的一步生成方法,平均性能提升约 20%。
Python 代码示例
以下是一个简化的 Self-Refine 伪代码实现逻辑,展示了如何通过循环调用 API 实现自我修正:
import openai
def self_refine(prompt, max_iterations=3):
current_output = generate_initial_response(prompt)
for i in range(max_iterations):
# 让模型评估当前输出并提供改进建议
feedback_prompt = f"请分析以下回答的优缺点,并提出改进建议:\n{current_output}"
feedback = generate_response(feedback_prompt)
# 结合反馈生成新版本
improvement_prompt = f"基于以下反馈改进回答:\n反馈:{feedback}\n原回答:{current_output}"
current_output = generate_response(improvement_prompt)
print(f"Iteration {i+1}: {current_output}")
return current_output
2. CRITIC:工具交互验证框架
CRITIC 框架允许大型语言模型通过与外部工具的交互来验证和改进输出。这种模式模拟了人类使用工具(如搜索引擎、计算器、代码解释器)来辅助决策的过程。
核心特性
- 工具验证:模型可以调用外部 API 或本地工具来验证事实准确性或执行计算。
- 持续修正:验证结果作为反馈信号,驱动模型修正错误。
- 开源支持:该框架已开源,便于集成到现有 Agent 系统中。
在自由形式问答、数学程序合成和毒性降低等任务中,CRITIC 展现了显著的性能提升。例如,在数学评估数据集上,它经常能获得最高评分,因为它能利用代码解释器精确计算,而非依赖模型的直觉估算。


