React范式:思考与行动的循环

范式名称 核心思想 类比理解 核心工作流程 典型应用场景
ReAct范式 **推理(Reasoning)行动(Action)**交替进行,通过外部反馈(Observation)来指导下一步决策。 人类解题 :拿到一道数学题,先思考 (推理)解题步骤,然后动笔计算(行动),检查结果(观察),再根据结果决定是继续下一步还是修正错误。 Thought -> Act -> Observe 循环 需要与外部环境(如数据库、API、工具)交互的复杂任务,例如:数据分析、智能客服、自动运维。
Plan-and-Solve (或 Plan-and-Execute) 先规划,后执行。一次性制定完整的步骤计划,然后按计划逐步执行,通常缺乏执行中的动态调整。 建造房子 :建筑师先画出全套设计图纸 (规划),施工队再严格按照图纸施工(执行)。如果图纸有误或遇到意外,整个工程可能受阻。 Plan -> Step1 -> Step2 -> ... -> Result 目标明确、步骤清晰、环境稳定的任务,例如:按照固定模板生成报告、执行预设的数据处理流水线。
Reflection (或 Self-Reflection) 行动后反思。在执行完一个或一系列行动后,对结果进行批判性评估,发现问题并生成改进方案,然后重新执行。 学生写作文 :写完初稿后,通读一遍 (观察结果),反思 哪里逻辑不通、语句不顺(推理),然后修改文章(新的行动)。 Act -> Observe -> Critique -> Reflect -> (Re)Act 对输出质量要求高、需要迭代优化的任务,例如:代码调试、文章润色、方案设计评审。
Multi-Agent 多角色协作。多个具备不同角色和能力的智能体通过通信协议(如A2A)进行分工合作,共同完成复杂任务。 医院会诊 :内科、外科、影像科等多位专家 (多个Agent)各自检查病人,然后开会讨论(通信),共同制定治疗方案(协作决策)。 AgentA -> (Communicate) -> AgentB -> (Cooperate) -> Result 涉及多领域知识、需要分工或辩论的复杂任务,例如:复杂项目评估、辩论赛模拟、集成多源数据的决策系统。

核心循环拆解:以ReAct为例

ReAct范式的核心是一个循环迭代的过程,其标准步骤可用以下伪代码表示:

python 复制代码
# ReAct 核心循环伪代码
def react_agent(initial_question):
    # 初始化
    context = initial_question
    max_steps = 10
    for step in range(max_steps):
        # 1. Thought(推理):分析当前情况,决定下一步做什么
        thought = llm_reason(context, available_tools) # 
        print(f"Thought {step}: {thought}")

        # 2. Act(行动):执行决策,通常是调用一个工具或API
        action, action_input = parse_thought_to_action(thought) # 
        print(f"Act {step}: 调用工具【{action}】,输入:{action_input}")
        # 假设我们有一个工具调用函数
        if action in available_tools:
            observation = available_tools[action](action_input) # 
        else:
            observation = "错误:未知工具。"

        # 3. Observe(观察):获取行动结果,作为下一次推理的输入
        print(f"Observe {step}: {observation}")
        context += f"
行动结果:{observation}"

        # 检查任务是否完成
        if is_task_complete(observation, initial_question):
            final_answer = llm_generate_final_answer(context)
            print(f"最终答案:{final_answer}")
            return final_answer

    return "任务未能在最大步数内完成。"

# 示例:可用工具字典
available_tools = {
    "search_web": search_function,
    "calculate": calculator_function,
    "lookup_database": db_query_function, # 
}

范式间的关系与演进

这四种范式并非互斥,而是常常在高级的**智能体工作流(Agentic Workflows)**中被组合使用,形成更强大的问题解决能力 。

  1. 基础单元ReAct 是构建智能体最基础的"原子"循环,它赋予了智能体与环境交互和动态决策的能力 。
  2. 增强与组合
    • Plan-and-Execute + ReAct:可以先制定一个高层计划(Plan),然后在执行每个步骤时使用ReAct循环来处理其中的不确定性 。这就像项目经理制定了季度目标(规划),但每个工程师在完成具体模块时仍需灵活解决技术难题(推理-行动)。
    • ReAct + Reflection :在每次或每几次Act-Observe后,加入一个Reflection步骤,评估当前进展和质量,从而纠正错误或优化后续策略 。这就像学生在解题过程中,每做两步就回头检查一下计算和逻辑。
  3. 复杂系统Multi-Agent 是更高层次的架构范式,其中的每个智能体(Agent)内部可能采用ReAct、Plan或Reflection等范式。它们通过A2A(Agent-to-Agent)通信协议进行结构化信息交换与协作,共同完成超大型任务 。

通俗示例:如何用这些范式点外卖

假设任务是:"帮我订一份适合感冒患者吃的、清淡的午餐,预算50元以内。"

  • 只用 Plan-and-Solve

    text 复制代码
    规划:1. 打开外卖APP。2. 搜索"粥"。3. 按价格排序。4. 选择第一个。5. 下单。
    执行:严格按上述步骤执行。风险:可能选到一份"皮蛋瘦肉粥",虽然清淡但皮蛋对感冒未必好,规划时未考虑"食材适应性"。
  • 使用 ReAct

    text 复制代码
    思考:用户感冒了,需要清淡、易消化的食物。粥或清汤面比较合适。先看看附近有什么店。
    行动:调用【搜索外卖商家】工具,关键词"粥 面 清淡"。
    观察:返回A店的"青菜粥"20元,B店的"鸡汤面"35元,C店的"海鲜粥"45元。
    思考:海鲜是发物,感冒时可能不宜食用。鸡汤面听起来不错,有营养。检查一下用户评价。
    行动:调用【查看商家评价】工具,商家B。
    观察:评价显示鸡汤面较油腻。
    思考:评价说油腻,那可能不适合。青菜粥最安全。在预算内。决定下单A店的青菜粥。
    行动:调用【下单】工具,商品"青菜粥"。

    (这个过程展示了ReAct如何根据观察到的信息动态调整决策)

  • 加入 Reflection

    在ReAct流程下单后,可以增加一个反思步骤:"我刚刚推荐了青菜粥,虽然安全但营养单一。是否应该再建议用户搭配一份蒸蛋?或者询问用户是否有其他口味偏好?" 这可以优化本次建议,或为下次服务积累经验 。

  • 使用 Multi-Agent

    • 营养专家Agent:分析感冒饮食需求,推荐"粥类、清汤面、蒸蛋"。
    • 美食侦探Agent:负责搜索和筛选符合要求、评价好的外卖商家。
    • 预算管家Agent:确保总价在50元以内,并计算优惠。
    • 三个Agent通过通信(A2A)交换信息(营养清单、商家列表、价格),共同协商出最优解------比如"青菜粥+蒸蛋"的组合 。

总结来说,ReAct 是让AI学会"边想边做"的核心范式;Plan-and-Solve 提供了宏观蓝图;Reflection 赋予了其"复盘优化"的能力;而Multi-Agent则是构建分工协作的AI团队的架构思想。在实际的AI智能体系统中,这些范式像积木一样被灵活组合,以应对不同复杂度的现实世界任务。


参考来源

相关推荐
向量引擎11 小时前
告别多源向量API适配噩梦:一套通用中转层的设计与实践
人工智能·gpt·aigc·agi·api调用
十正11 小时前
Claude code源码精读之上下文压缩
ai·aigc·agent·claude code
向量引擎12 小时前
向量引擎API中转站深度测评:如何实现低成本、高并发的向量检索
人工智能·gpt·aigc·api·ai编程
向量引擎15 小时前
当搜索开始替人整理答案:我重新理解了向量检索和 API 中间层
人工智能·gpt·aigc·ai编程·ai写作·key·agi
久曲健的测试窝15 小时前
从跑分到实战:2026大模型质量评测技术栈全景拆解与选型参考
人工智能·ai·aigc
AI专业测评20 小时前
【无标题】
人工智能·aigc·ai写作·测评·网文
青山如墨雨如画1 天前
【Claude】Win11系统VSCode下的Claude使用方法
vscode·aigc·claude·vibe coding·authropic
青山如墨雨如画1 天前
【Claude】Win11电脑下VSCode环境中Claude+Deepseek的报错及解决方法记录日志
vscode·aigc·claude·authropic
SEO_juper1 天前
JavaScript 渲染:AI 智能体无法读取,直接影响收录
开发语言·前端·javascript·aigc·seo·跨境电商·geo