llm ReAct框架
时间: 2025-05-21 21:45:16 浏览: 24
### ReAct Framework 的核心概念
ReAct 是一种结合了推理(Reasoning)和行动(Action)的框架,旨在增强基于 LLM 的自主代理的能力。它通过引入自我反思机制以及动态的任务分解与执行流程,显著提升了代理在复杂环境中的适应性和效率。
#### 自我反思机制
自我反思是通过向 LLM 展示两阶段的例子来构建的,其中每个例子由一对组成:失败的轨迹及其理想化的反思[^1]。这种反思随后会被存储到代理的工作记忆中,作为后续查询 LLM 的上下文信息。工作记忆通常会保留最多三条这样的反思记录,以便为未来的决策提供支持。
#### 计划-代码-审查范式
数据解释器采用了“计划-代码-审查”的方法论,这种方法将动态规划与分层结构结合起来,在任务执行过程中实现实时监控和调整[^3]。具体来说:
- **计划**:LLM 负责制定详细的行动计划,该计划定义了如何逐步完成目标任务。
- **代码**:对于每一个子任务,LLM 将生成具体的代码片段用于实际操作。
- **审查**:每一步的结果都会被严格验证,确保其可靠性和准确性。如果某步未能成功,则触发反馈循环,利用之前积累的经验重新设计解决方案。
以下是使用 Python 实现的一个简单版本的 ReAct 框架伪代码:
```python
def react_framework(task_description, llm_model):
# 初始化工作记忆
working_memory = []
while not task_completed():
# 制定计划
plan = generate_plan(task_description, llm_model, working_memory)
# 执行计划中的每一项动作
for action in plan:
code_snippet = generate_code(action, llm_model)
try:
result = execute_code(code_snippet)
if validate_result(result):
continue
else:
# 如果结果不满足条件,加入反思并重试
reflection = create_reflection(plan, result)
update_working_memory(working_memory, reflection)
except Exception as e:
handle_exception(e)
reflection = create_reflection_from_error(plan, str(e))
update_working_memory(working_memory, reflection)
def generate_plan(description, model, memory):
prompt = f"Given {description}, with previous experiences {memory}, what should I do?"
return model.generate(prompt)
def generate_code(action, model):
prompt = f"To perform '{action}', write the necessary python code."
return model.generate(prompt)
def create_reflection(plan, outcome):
return {"plan": plan, "outcome": outcome}
def update_working_memory(memory, new_entry):
if len(memory) >= 3:
memory.pop(0)
memory.append(new_entry)
```
此代码展示了如何集成上述提到的各种组件形成完整的 ReAct 流程。
#### 使用指南
关于更详尽的介绍和个人化 LLM Agent 的设置方式可以参考文献[^2],其中包括但不限于初始化配置、参数调优等方面的内容。
---
阅读全文
相关推荐


















