别再怪LLM“笨”了!是你没给它“大脑”!ReAct与Reflexion,让AI学会“自我反省”!

架构简析| 一种Generative Agents 斯坦福《Generative Agents: Interactive Simulacra of Human Behavior》论文解读。 阅读详情

在人工智能领域,特别是大语言模型(LLM)的应用中,尽管模型在许多任务上表现出色,但在处理复杂任务时仍存在明显局限性。大型语言模型在处理需要多步骤推理、实时信息获取和动态决策的任务时,常常面临以下挑战:

  • 事实幻觉:模型可能生成看似合理但不准确的信息;
  • 缺乏实时信息:模型训练数据截止后的新信息无法获取;
  • 规划能力不足:面对复杂任务时难以分解和制定有效策略;
  • 错误传播:单个错误推理可能导致整个任务失败;

为了解决这些问题,研究人员提出了多种提示技术框架,其中ReAct(Reasoning + Acting)和Reflexion(Self-Reflection)作为两个关键创新,通过将推理、行动和反思机制融入模型行为中,显著提升了LLM在知识密集型、决策型和编程任务上的表现。

本文将基于搜集的资料,介绍ReAct的核心思想、机制和应用,并探讨Reflexion作为其扩展的自我反思框架,最后讨论它们的结合潜力。

ReAct框架:推理与行动的协同

一、ReAct的核心思想

ReAct框架由Yao等人于2022年提出,其名称源于"Reasoning"(推理)和"Acting"(行动)的结合。该框架的核心灵感来源于人类决策过程:我们不只是被动思考,而是通过思考制定计划、执行行动、观察结果,并据此调整策略。ReAct将这一过程应用到LLM中,使模型能够动态处理复杂任务。

  • 推理(Reasoning):模型生成内部思考轨迹,例如"我需要先做什么,再做什么",类似于链式思考(Chain-of-Thought, CoT)。这有助于分解任务、制定计划和处理异常。
  • 行动(Acting):模型生成可执行的操作,例如"搜索[关键词]“或"计算[表达式]”,以调用外部工具(如搜索引擎或计算器)获取实时信息。

通过"思考 → 行动 → 观察 → 再思考"的循环,ReAct使LLM能够融入外部知识,避免纯内部推理的局限性。

二、ReAct解决的问题

传统方法存在明显短板:

  • 链式思考(CoT):无法与外部世界互动,容易导致事实幻觉(Fact Hallucination)和错误传播。
  • 仅行动(Act-Only):缺乏规划能力,在多步骤任务中表现不佳。

ReAct通过行动步骤验证信息、减少幻觉,并通过推理步骤分解复杂问题。在知识密集型任务(如问答和事实验证)中,ReAct优于Act-Only,并与CoT结合时效果最佳。在决策型任务(如文字游戏)中,它显著提升性能,尽管与人类专家仍有差距。

三、ReAct的运作机制

ReAct依赖于特殊的提示方法:

  1. 从训练集选取案例,改写成"思考-行动-观察"(Thought-Action-Observation)的轨迹。

  2. 将这些轨迹作为少样本示例输入LLM。

  3. LLM模仿格式,生成自己的循环直到得出答案。

示例:

任务: 清洗一个非常油腻的平底锅

模型生成的 ReAct 轨迹(模拟):

思考 1:平底锅很油腻,我需要有效的清洗方法,可能涉及去油剂。
行动 1:搜索[清洗非常油腻平底锅的方法]
观察 1:推荐使用热水的、洗洁精和小苏打;先浸泡,然后擦洗。
思考 2:我有方法,现在执行步骤。
行动 2:执行[用热水浸泡锅子;添加洗洁精和小苏打;用海绵擦洗;冲洗干净]
观察 2:锅子清洁。
思考 3:如果仍有残留,重复擦洗。
行动 3:结束[锅子已清洗干净]

实践应用

ReAct框架在多个领域都有广泛的应用场景,以下是一些典型的使用场景和实践示例:

1. 知识密集型问答

在需要准确事实信息的任务中,ReAct能够通过外部工具获取最新信息,避免模型幻觉。

# 知识密集型问答示例
agent.run("2024年诺贝尔物理学奖得主是谁?他们的主要贡献是什么?")
2. 复杂决策任务

在需要多步骤规划和决策的任务中,ReAct能够制定策略并动态调整。

# 旅行规划示例
agent.run("为一个三口之家规划一个周末从北京到天津的亲子旅行,预算3000元")
3. 数据分析与计算

结合计算器等工具,ReAct能够执行复杂的数值计算和数据分析任务。

# 数据分析示例
agent.run("计算2023年公司各季度销售额增长率,并预测2024年第一季度销售额")
4. 客户服务

在客户服务场景中,ReAct能够根据用户问题检索相关信息并提供解决方案。

# 客户服务示例
agent.run("用户报告无法登录账户,错误代码为AUTH-001,请提供解决方案")
5. 编程辅助

在编程任务中,ReAct能够通过搜索文档、执行代码片段来辅助开发,以爱码仕ai编程工具使用为例,ReAct框架被用于智能代码生成、错误诊断与修复、技术选型建议等场景。

# 爱码仕中的ReAct应用示例
agent.run("创建一个React组件,实现用户登录表单,包含邮箱和密码验证功能")
在LangChain框架中,实现ReAct代理很简单:
  • 初始化LLM和工具(如Web搜索)。
  • 使用initialize_agent创建代理。
实例代码:
# 更新或安装必要的库
# !pip install --upgrade openai
# !pip install --upgrade langchain
# !pip install --upgrade python-dotenv
# !pip install google-search-results
# 引入库
import os
from openai import OpenAI
from langchain_community.agent_toolkits.load_tools import load_tools
from langchain.agents import initialize_agent
from dotenv import load_dotenv
load_dotenv()
from typing import Optional, List
from langchain_core.language_models.llms import LLM
from langchain.tools import BaseTool
class CustomLLM(LLM):
api_key: str
client: Optional[OpenAI] = None
def __init__(self, api_key: str, **kwargs):
# 初始化OpenAI客户端,使用阿里云通义千问API
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
super().__init__(api_key=api_key, client=client, **kwargs)
@property
def _llm_type(self) -> str:
return"qwen3-max"
def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str:
# 添加ReAct格式的系统提示
system_prompt = """你是一个严格遵循ReAct模式的AI助手。
核心规则 - 必须严格遵守:
1. 每次回复只能包含一个Thought和一个Action
2. 格式必须完全按照以下模式,不能有任何偏差:
Thought: [你的思考过程]
Action: [工具名称]
Action Input: [工具输入]
3. 绝对不能在一次回复中包含多个Thought或Action
4. 绝对不能直接给出Final Answer,除非前面有"Thought: I now know the final answer"
5. 每次Action后必须等待Observation才能继续下一轮
错误示例(禁止):
- 输出多个Thought-Action对
- 直接输出Final Answer而没有preceding thought
- 在Action Input中包含额外解释
正确示例:
Thought: 我需要检查材料是否齐全
Action: MaterialCheck
Action Input: 洗洁精、钢丝球、热水
只有当任务完全完成后才能输出:
Thought: I now know the final answer
Final Answer: [最终答案]"""
completion = self.client.chat.completions.create(
# 使用通义千问plus模型
model="qwen-plus",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": prompt}
],
temperature=0.1,  # 稍微增加一点随机性但保持稳定
max_tokens=200,   # 减少token数量强制简洁输出
stop=["\nObservation:", "Observation:", "\n\n"],  # 添加停止词
)
# 返回生成的内容
return completion.choices[0].message.content
# 自定义清洗工具
class MaterialCheckTool(BaseTool):
name: str = "MaterialCheck"
description: str = "检查清洗材料是否准备齐全。输入材料列表,返回检查结果。"
def _run(self, materials: str) -> str:
return f"已检查材料:{materials}。所有材料准备就绪,可以开始清洗。"
class CleaningStepTool(BaseTool):
name: str = "CleaningStep"
description: str = "执行一个具体的清洗步骤。输入步骤描述,返回执行结果。"
def _run(self, step: str) -> str:
return f"已完成步骤:{step}。步骤执行成功,可以继续下一步。"
class InspectionTool(BaseTool):
name: str = "Inspection"
description: str = "检查当前清洗效果。输入检查内容,返回检查结果。"
def _run(self, inspection: str) -> str:
return f"检查结果:{inspection}。清洗效果良好,建议继续或完成清洗。"
llm = CustomLLM(api_key=os.getenv("DASHSCOPE_API_KEY"))
# 创建自定义工具实例
material_check = MaterialCheckTool()
cleaning_step = CleaningStepTool()
inspection = InspectionTool()
# 组合所有工具
math_tools = load_tools(["llm-math"], llm=llm)
custom_tools = [material_check, cleaning_step, inspection]
tools = math_tools + custom_tools
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True, handle_parsing_errors=True)
agent.run("任务:清洗一个非常油腻的平底锅")
输出类似于:
> python3 react.py
> Entering new AgentExecutor chain...
Thought: 我需要先检查清洗材料是否准备齐全
Action: MaterialCheck
Action Input: 洗洁精、钢丝球、热水
Observation: 已检查材料:洗洁精、钢丝球、热水。所有材料准备就绪,可以开始清洗。
Thought:Thought: 材料已准备齐全,现在可以开始执行清洗步骤。
Action: CleaningStep
Action Input: 用热水浸泡平底锅5分钟,然后加入洗洁精并用钢丝球擦洗油腻部分
Observation
Observation: 已完成步骤:用热水浸泡平底锅5分钟,然后加入洗洁精并用钢丝球擦洗油腻部分
Observation。步骤执行成功,可以继续下一步。
Thought:Thought: 我需要检查当前的清洗效果,确保油腻已被清除。
Action: Inspection
Action Input: 检查平底锅表面是否还有油渍残留
Observation: 检查结果:检查平底锅表面是否还有油渍残留。清洗效果良好,建议继续或完成清洗。
Thought:Thought: 清洗效果良好,没有油渍残留,清洗任务已完成。
Final Answer: 平底锅已成功清洗,表面无油渍残留,清洗任务完成。
> Finished chain.

Reflexion:ReAct的自我反思扩展

四、Reflexion的核心思想

Reflexion是一个强化学习框架,由Shinn等人提出,它通过生成语言反馈(口头强化)帮助智能体从错误中学习,而非传统标量奖励。Reflexion模仿人类反思过程,让模型在尝试后获得具体改进建议,如"上次搜索范围太宽,下次更具体"。

五、Reflexion的三大组件

Reflexion构建在ReAct基础上,添加评估和反思机制,形成闭环:

  • 参与者(Actor):基于ReAct或CoT生成行动轨迹。
  • 评估者(Evaluator):对轨迹打分,判断成功或失败。
  • 自我反思(Self-Reflection):核心组件,生成语言反馈并存入长期记忆,指导下次行动。

工作流程:行动 → 评估 → 反思 → 迭代。通过滑动窗口记忆,Reflexion保留反思内容,实现持续优化。

示例:

任务: 清洗一个非常油腻的平底锅

Reflexion 通过行动、评估、反思和迭代来优化响应。假设初始尝试失败,然后通过反思改进。

初始行动轨迹(Actor 生成,基于 ReAct):
思考 1:平底锅很油腻,需要简单清洗。
行动 1:执行[用冷水冲洗锅子;擦干]
观察 1:锅子仍有油渍。
评估(Evaluator): 失败 - 锅子未完全清洁。
反思(Self-Reflection): 上次尝试使用冷水无效,因为油渍需要热分解。下次应该搜索有效方法,包括热水的、洗洁精和小苏打,并详细列出步骤。存储到记忆:优先考虑热处理和去油剂。
迭代行动轨迹(Actor 使用记忆改进):
思考 1:根据记忆,使用热水和去油剂。
行动 1:搜索[清洗油腻平底锅的详细步骤]
观察 1:步骤:1. 用热水浸泡;2. 添加洗洁精和小苏打;3. 用海绵擦洗顽固污渍;4. 冲洗并检查;5. 如有残留,重复。
思考 2:现在有详细步骤,可以执行。
行动 2:执行[上述步骤]
观察 2:锅子完全清洁。
评估(Evaluator): 成功。

最终输出: 详细步骤包括热水浸泡、添加洗洁精和小苏打、擦洗、冲洗和检查。

六、适用场景与局限性

Reflexion适合需要试错学习的任务,如决策、推理和编程。它计算效率高,无需模型微调,提供详细反馈和高可解释性。但局限包括依赖评估准确性、简单记忆机制,以及在非确定性编程任务中的挑战。

ReAct与Reflexion的比较与结合

ReAct聚焦于即时推理-行动循环,适合实时任务;Reflexion扩展为学习闭环,强调从失败中迭代,适用于需要优化的场景。两者结合(如在Reflexion中使用ReAct作为Actor)可发挥最大潜力:ReAct提供基础机制,Reflexion添加反思层,提升长期性能。

在提示技术中,这种结合减少了幻觉、提高了准确性,并增强了模型的自适应能力。

详细区别分析

虽然 ReAct 和 Reflexion 在示例中看起来相似(如两者都涉及思考-行动循环),但它们在机制和应用上存在关键差异:

结合优势

在实践中,Reflexion 可以将 ReAct 作为其 Actor 组件,实现两者无缝结合:

  • ReAct 提供基础的动态推理机制;
  • Reflexion 添加评估、反思和记忆层;
  • 结合后形成完整的"感知-行动-评估-学习"闭环;

总之,ReAct 提供基础的动态推理,而 Reflexion 通过添加评估、反思和记忆,将其提升为自适应学习系统。

性能比较

实验结果表明,Reflexion 在多种任务上都取得了显著的性能提升,与 ReAct 和其他方法相比:

  • 决策任务 (AlfWorld):性能显著优于 ReAct,几乎解决了所有测试任务。

Reflexion Heuristic (启发式评估):本质上是一种简单、高效的硬编码逻辑(预先定义了一套成功或失败的规则,类似工程判断,快、便宜、黑白分明,但死板、僵化)

Reflexion GPT:使用一个强大的大语言模型(如 GPT-4)作为评估者(灵活智能、通用性强,但是贵)

  • 推理任务 (HotPotQA):在几个学习步骤内,其性能就显著优于标准的 CoT 方法。

  • 编程任务 (HumanEval 等):在 Python 和 Rust 代码生成任务上,通常优于之前的 SOTA (State-of-the-Art) 方法。

资料来源

Reflexion:Language Agents with Verbal Reinforcement Learning

https://arxiv.org/pdf/2303.11366

总结与未来方向

ReAct和Reflexion作为提示技术中的重要创新,为大语言模型在复杂任务中的应用提供了有效解决方案:

主要贡献

  1. ReAct框架通过将推理和行动相结合,使模型能够与外部环境交互,获取实时信息,有效减少了模型幻觉问题。

  2. Reflexion框架在ReAct基础上增加了评估和反思机制,形成了完整的"感知-行动-评估-学习"闭环,使模型能够从错误中学习并持续优化。

  3. 两者的结合充分发挥了各自优势,既保证了即时响应能力,又具备了长期学习和优化的潜力。

应用前景

随着大语言模型技术的不断发展,ReAct和Reflexion将在以下领域发挥更大作用:

  • 智能助手:构建更智能的个人和企业助手,能够处理复杂的多步骤任务;
  • 自动编程:辅助开发者进行代码编写、调试和优化;
  • 科学研究:协助研究人员进行文献检索、数据分析和假设验证;
  • 教育培训:提供个性化的学习路径规划和知识答疑;

未来发展方向

  1. 记忆机制优化:开发更智能的记忆管理机制,包括记忆的存储、检索和遗忘策略;

  2. 评估器改进:设计更准确、更高效的评估器,减少误判对学习过程的影响;

  3. 多模态集成:将ReAct和Reflexion与视觉、语音等多模态能力结合,扩展应用范围;

  4. 个性化适应:根据用户偏好和历史交互记录,动态调整策略和行为模式;

  5. 可解释性增强:进一步提高模型决策过程的透明度,增强用户信任;

通过持续的研究和优化,ReAct和Reflexion有望成为构建下一代智能系统的核心技术,推动人工智能在更多领域的深度应用。


如何高效转型Al大模型领域?

作为一名在一线互联网行业奋斗多年的老兵,我深知持续学习和进步的重要性,尤其是在复杂且深入的Al大模型开发领域。为什么精准学习如此关键?

  • 系统的技术路线图:帮助你从入门到精通,明确所需掌握的知识点。
  • 高效有序的学习路径:避免无效学习,节省时间,提升效率。
  • 完整的知识体系:建立系统的知识框架,为职业发展打下坚实基础。

AI大模型从业者的核心竞争力

  • 持续学习能力:Al技术日新月异,保持学习是关键。
  • 跨领域思维:Al大模型需要结合业务场景,具备跨领域思考能力的从业者更受欢迎。
  • 解决问题的能力:AI大模型的应用需要解决实际问题,你的编程经验将大放异彩。

以前总有人问我说:老师能不能帮我预测预测将来的风口在哪里?

现在没什么可说了,一定是Al;我们国家已经提出来:算力即国力!

未来已来,大模型在未来必然走向人类的生活中,无论你是前端,后端还是数据分析,都可以在这个领域上来,我还是那句话,在大语言AI模型时代,只要你有想法,你就有结果!只要你愿意去学习,你就能卷动的过别人!

现在,你需要的只是一份清晰的转型计划和一群志同道合的伙伴。作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

Agent之推理模式:Reflection、Reflexion、LATs 反思的定义:LangChain博客的介绍说是一种用来提供Agent质量和成功率的。归根结底,核心还是prompt的设计。用额外的计算来获得更好的输出质量,这点有点像CoT和ToT的设计。但与之不同的是,CoT和ToT是和LLM单轮的交互,而Reflection一般是和LLM多轮的交互(封装在Agent框架当中),尽管看起来和人类的交互是单轮的。 阅读详情

相关推荐

【AI技术】主流Agent思想研究——Cot+ReAct+Reflexion

从24年初开始的时候,吴恩达(Andrew Ng)、Harrison Chase(LangChain创始人)等人开始在红杉资本AI论坛等公开场合,提倡Agent、workflow、flow engineering等概念,整个Agent和大模型结合的范式在2024年逐渐由学界研究转到终端应用的实际开发与实践上,大量的软件架构(Langchain、LlamaIndex、MetaGPT)等逐渐建设整个agent 生态吴恩达观点:2024年,目前通过Reflection(反思)和外部工具的调用,是比较成熟的技巧;通

AI_Gump的博客 3578

LLM agentic模式之reflection:SELF-REFINE、Reflexion、CRITIC

LLM agentic论文《Self-Refine: Iterative Refinement with Self-Feedback》 《Reflexion: Language Agents with Verbal Reinforcement Learning》《CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing》

beingstrong的博客 8279

Reflexion对ReAct的改进

ReAct是“语言智能体与环境交互的基础框架”,核心解决“如何通过思考-行动循环完成单次任务”;而Reflexion是“在ReAct基础上,通过新增‘自我反思模块’和‘双记忆机制’,赋予智能体‘跨试错学习能力’的增强框架”,核心解决“如何让智能体从过往失败中积累经验,持续提升复杂任务的成功率”。Reflexion = ReAct的“推理-行动”核心 + 自我反思(错误分析) + 长期记忆(经验存储) + 多源反馈融合。

weixin_63681863的博客 1066

AI Agent自我反思机制:Reflexion框架原理与工程实践

在AI Agent开发领域,大语言模型(LLM)在复杂任务中常面临重复犯错、经验难以复用等挑战。为解决这些问题,研究者提出了基于语言强化学习的反思机制,其核心原理是通过自然语言分析失败轨迹,生成改进策略,使Agent具备从错误中学习的能力。这一技术通过“行动-评估-反思-规划”的循环,显著提升了任务成功率,尤其在编程调试、复杂决策等场景中展现出重要价值。其中,自我反思和错误重复是Reflexion框架解决的关键问题,它让Agent能够持续优化决策过程,而无需增加模型参数。这种机制为构建更可靠、更智能的自主系

aoe41606的博客 431

AI Agent 方法以及应用

一个以LLM为核心控制器的一个代理系统,比如AutoGPT、GPT-Engineer和BabyAGI。核心是意图理解与文本生成,如果能让LLM学会使用工具,那么LLM本身的能力也将大大拓展。规划(Planning)子目标和分解:代理将大型任务分解为更小、易于管理的子目标,从而实现复杂任务的高效处理。反思和提炼:代理可以对过去的行为进行自我批评和自我反思,从错误中吸取教训,并为未来的步骤改进它们,从而提高最终结果的质量。1.1 任务分解。

学无止境 3824

AI术语三层解码法:从基础构件到系统集成的工程化认知地图

AI术语不是孤立概念,而是嵌套在真实系统中的技术节点。理解一个术语,需先厘清其所属层级:基础构件层解决‘能否运行’(如Transformer、LoRA、Quantization),能力封装层决定‘结果是否可靠’(如RAG、Agent、Chain-of-Thought),系统集成层保障‘价值能否落地’(如MLOps、Feedback Loop、Responsible AI)。这种分层逻辑源于对37个AI项目故障根因的归纳——90%的线上问题并非模型缺陷,而是术语被误置于错误层级所致。例如,盲目引入MoE却忽略

anchang7456的博客 827

AI Agent设计模式大揭秘:ReAct、Reflection、LATS,其实比你想象的简单!

本文系统梳理了AI Agent的主流设计模式,聚焦于ReAct(推理与行动)这一核心范式及其衍生架构。ReAct通过"思想-行动-观察"的闭环循环实现任务执行,将LLM从内容生成器提升为任务执行器。文章还介绍了Plan&Execute、ReWOO、LLMCompiler等优化方案,以及Reflexion、LATS等增强类架构,分析各自优缺点及适用场景。作者强调,保持获取真实环境反馈的能力是避免模型幻觉的关键,而不同设计模式在灵活性、执行效率和成本控制方面各有侧重。全文为开发者提供

WANGJUNAIJIAO的博客 1344

OpenAI 的 AI 安全负责人:LLM 支持的自主代理 LLM Powered Autonomous Agents

AI助手可以将用户输入解析为多个任务:[{“task”:task,“id”,task_id,“dep”:dependency_task_ids,“args”:{“text”:text,“image”:URL,“audio “:网址,“视频”:网址}}]。一个有趣的观察结果是,虽然基于 LLM 的评估得出的结论是 GPT-4 和 ChemCrow 的表现几乎相当,但专家针对解决方案的完成度和化学正确性进行的人工评估表明,ChemCrow 的性能大幅优于 GPT-4。您必须首先以直截了当的方式回答用户的请求。

AI天才研究院 2613

大模型面经之Agent介绍

LLM Agent 中模型自我反省通常指的是模型对自身输出或行为的评估和调整过程。

2301_82275412的博客 1089

大模型提示词-提示技巧三(方向刺激性提示、ReAct提示与Reflexion) -(专题2)

将CoT提示和工具以交替的方式结合在一起,已被证明是一种强大且稳健的方法,用于解决许多LLM任务。这些方法通常需要手工设计特定任务的演示,并精心编排模型生成与工具使用的交替过程。Paranjape等人(2023年)提出了一种新框架,利用冻结的LLM自动生成作为程序的中间推理步骤。ART鼓励模型从示例中泛化,分解新任务,并在适当的地方使用工具,采用零-shot方式。此外,ART是可扩展的,因为它还使人类能够通过简单地更新任务和工具库来修正推理步骤中的错误或添加新工具。

282

WVP-GB28181-Pro配置避坑指南:从零到上线全流程详解(含ZLM自动同步技巧)

本文详细解析了WVP-GB28181-Pro视频平台的配置流程,特别针对国标视频平台部署中的常见陷阱,如stream-ip/sdp-ip配置错误、ZLM自动同步问题及端口冲突等,提供了实用的解决方案和优化建议,帮助开发者快速实现从零到上线的全流程部署。

weixin_30836759的博客 93

《大模型落地全攻略!9 张图拆解「工程化设计」核心模式,从 0 到 1 落地不再踩坑》

在大模型落地过程中,企业常面临场景适配性不足、执行能力受限等问题。Agent技术通过整合大模型能力、赋予自主决策逻辑和行动执行模块,成为解决这些问题的关键。本文深入剖析了Agent落地的九大核心架构,包括ReAct、PE、ReWOO、LLMCompiler、Storm、Basic Reflection、Reflexion、LATS和Self-Discover。这些架构分别侧重于规划、反思和并行执行,通过智能交互和自主决策,有效提升大模型在实际应用中的表现。

王不二的AI之路 949

手把手移植st7701s驱动:MT6763+安卓8.0屏幕适配保姆级教程

本文详细介绍了在MT6763平台上移植ST7701S驱动的完整流程,涵盖从LK层到Kernel层的适配方案,特别针对安卓8.0系统的特殊要求。通过MIPI转RGB屏幕适配的实战教程,帮助开发者解决常见显示问题,包括无显示、色彩异常和屏幕错位等,并提供高级调试技巧如彩条测试模式和闪屏解决方案。

weixin_29186249的博客 158

大模型提示词工程分类

预训练、微调和提示词工程是大型语言模型(LLM)生成质量优化的三种关键手段,各自具有不同的特点和优势。预训练是 LLM 发展的基石,通过在大规模无标注语料库上进行自监督学习,赋予模型通用的语言理解和生成能力。这种自然语言的通用知识为后续的微调和提示词工程奠定了坚实基础。微调则是利用有标注的任务数据,对预训练模型进行进一步调整和优化,使其更好地适应特定的下游任务。微调的优势在于可以充分利用监督信号,提高模型在特定领域的生成质量。 但同时也存在过度微调导致过拟合、灾难性遗忘等潜在风险。与之不同,提示词工程无需对

weixin_45311418的博客 179

用GraphPad Prism直出单细胞亚群堆叠柱状图

用GraphPad Prism直出单细胞亚群堆叠柱状图

fivehuge的博客 4197

iOS In-App Purchase 自动续订订阅完整实现指南

本文摘要: 自动续订订阅是iOS应用变现的核心模式,适用于流媒体、云存储等持续服务场景。文章系统讲解了从配置到实现的完整流程:首先对比各类订阅模式特点,解析订阅生命周期和关键术语;然后详细说明App Store Connect中的订阅组创建、产品配置和服务器通知设置;最后展示客户端StoreKit实现方案,包括产品标识符定义、订阅管理器封装和支付队列观察机制。全文提供可落地的代码示例和技术细节,帮助开发者掌握自动续订订阅的全链路实现。

Sheffi 1764

Self-Reflection缓解LLM幻觉(Hallucination)问题

自从Chat-GPT发布以来,国内外的LLM的军备竞赛正在如火如荼的进行。LLM的综合能力在不断的提升,提升速度也在增加,LLM表现的一些问题也在凸显出来,其中一个比较严重的问题就是“幻觉问题”,Hallucination。大模型生成的内容听起来有道理,但是实际却是不切实际、没有意义的。

CCSco4355 1564

多租户Saas架构设计分析(基础篇)

本篇先给大家介绍一下相关的概念和常见问题。 实践篇链接:https://blog.csdn.net/haponchang/article/details/104246317 SaaS简介 SaaS是Software-as-a-Service(软件即服务)的简称,“软件即服务”?是不是有点拗口?其实你就理解成为“按需租用别人提供的软件服务”就可以了,它是一种软件交付模式。...

haponchang的博客 1万+

收藏必备|LLM四大主流交互模式详解(CoT/ReAct/ReWOO/Reflexion),小白程序员必看

通过对 Reflexion、ReAct、ReWOO、CoT 这四种 LLM 交互模式的全面分析,我们可以看到大语言模型交互技术正处于快速发展和深刻变革的关键时期。从 2022 年 CoT 的诞生到 2023 年 Reflexion 的出现,短短两年时间里,LLM 交互模式经历了从简单推理到复杂反思、从封闭计算到开放交互、从单一模态到多模态融合的跨越式发展。CoT以其简单高效在逻辑推理领域占据重要地位;ReAct通过推理与行动的结合成为处理复杂交互任务的首选;ReWOO。

2301_76168381的博客 501

置顶必读(2) |《YOLOv8实战:从入门到深度优化》总目录导航 & 学习路线指南(持续更新中)

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 28万+

【笔记】1.1 拉伸力-伸长(延伸)曲线和应力-应变曲线

过了B点后,由于颈缩导致的截面半径迅速减小,导致真应力迅速上升,切线斜率明显提高。假设试样原长为ε,在力的作用下伸长了dε,那么根据应变的定义,瞬时的应变为dε/ε,总的应变为瞬时应变的累计,假设在瞬时的条件下,试样受载荷变化量为 ΔF ,变化的截面积为 ΔA ,而且ΔA→0,那么瞬时的。由于原始的截面积和原始的标距长度为常数,故得到的曲线长相和拉伸力-伸长(延伸)曲线没啥区别。因为用的都是原始的截面积和原始的标距长度,故称为公称应力和公称应变。如果拉伸力→应力,伸长长度→应变,就会得到应力-应变曲线。

m0_73676887的博客 5276

【2025年必看】大模型智能体(LLM Agent)学习笔记:大佬爆肝整理,精华尽在其中!

大模型对应的英文是Large Language Model(LLM),即大语言模型,简称大模型。技术层面讲,大模型是一种基于深度学习技术的机器学习模型。为什么叫大模型呢?它是相对于小模型而言的。传统的机器学习算法一般是解决某个特定领域的问题(例如文本分类),使用的训练数据集规模较小,参数也比较少。而大模型一般是基于互联网上的海量数据训练而成的,模型参数可达数十亿至数万亿。这些参数就像大脑中的神经元连接,数量越多,模型能学习和掌握的细节就越丰富,解决问题的能力也就越强。

m0_65555479的博客 1807

unitree-G1外接 USB 麦克风完整配置指南

首先,将type-c麦克风插入G1机器人的USB口后,记录下USB麦克风的卡号(card)和设备号(device),通常显示为 card 1: Device [USB Audio Device]

m0_47999117的博客 601

AI Agent 主流的设计模式(ReAct,Reflection,LATS)其实没有很复杂

小白也能快速看懂的 AI Agent 主流的设计模式🐶。 在进一步深入研究 Claude Code 之前,有必要在快速梳理下 Agent 的设计模式。因为我发现 Claude Code 的原理比 React 稍微灵活点。 本文可以解答一下问题: 说到 AI Agent 的设计模式,不知道大家知道有几种? 看似牛哄哄的设计模式,是如何被发现的?又是如何被使用的? 我们开发智能体一定需要借助框架吗?

2401_84204207的博客 1273

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

自我反思(Reflexion):让大模型学会“反思自己”的提示技术

摘要:Reflexion是一种提升大语言模型表现的新技术,通过"尝试-反思-改进"的迭代机制优化输出质量。其流程包括初始生成、自我评估错误、反思总结、策略调整和重复迭代,可应用于代码生成、科学推理等场景。与ReAct、ART等方法相比,Reflexion独特之处在于引导模型审视自身决策。相关研究显示该方法能显著提升模型表现,GitHub已有开源实现。这项技术体现了AI从被动应答向主动问题求解的演进趋势。(150字)

hello! 1494

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

震惊!大模型编程开发新革命:ReAct+Reflexion框架,小白也能秒变AI大神,告别AI“一本正经地胡说八道“

文章介绍大语言模型在复杂任务中的局限性及解决方案。ReAct框架结合推理与行动,使模型能与外部环境交互,减少幻觉;Reflexion在此基础上增加评估和反思机制,形成"感知-行动-评估-学习"闭环,让模型从错误中学习。两者结合显著提升LLM在知识密集型、决策型和编程任务上的表现,为构建更智能AI系统提供核心技术。

老皮的博客 829

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 颠覆认知!3B小模型也能做多模态Agent?Skywork R1V4-Lite实测,效果炸裂!
下一篇: 你的AI还在“张口就来”?RAG整体流程全揭秘,让每个回答都有根有据!
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2840原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值