news 2026/5/12 22:37:16

《从 ReAct 到 LangGraph:深度解析 5 大主流智能体 (Agent) 架构(原理+实战 Demo)》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《从 ReAct 到 LangGraph:深度解析 5 大主流智能体 (Agent) 架构(原理+实战 Demo)》

前言:Agent 的本质是什么?

如果说大模型(LLM)是“大脑”,向量数据库(Vector DB)是“记忆”,那么**智能体架构(Agent Architecture)**就是大脑的“逻辑思维方式”。

在我的私有化代码 AI 平台CodeFlow AI中,我们需要模型去审查代码、写单测、甚至修复 Bug。简单的 Prompt 无法胜任这些复杂任务。今天,我们就来拆解目前业界最主流的 5 大 Agent 开发架构。


一、 架构总览:Agent 的进化路线

架构名称核心逻辑形象比喻适用场景
ReAct推理 + 行动 (循环)单打独斗的侦探简单的 API 调用、文档查询
Plan-and-Execute先计划,后执行运筹帷幄的统帅跨多个步骤的长任务
Self-Reflection执行 + 检查 + 修正追求完美的工匠代码生成、Bug 修复
Multi-Agent分工协作配合默契的球队企业级 CI/CD、复杂软件开发
LangGraph基于状态的流转图精密的工业流水线复杂商业逻辑、受控的工作流

二、 核心架构深度解析与 Demo

1. ReAct (Reasoning and Acting) —— 智能体的基石

原理:模型在每一步都会生成一段“Thought(思考)”,然后决定采取什么“Action(行动)”,观察结果(Observation)后再进入下一个思考循环。

  • Demo (LangChain 风格)

from langchain.agents import initialize_agent, Tool from langchain.llms import OpenAI # 定义工具 tools = [Tool(name="SearchCode", func=search_code_func, description="用于搜索代码库")] # 初始化 ReAct Agent agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True) agent.run("帮我找到项目中处理 JWT 登录的代码逻辑")
  • 痛点:容易在循环中迷路(Hallucination),对于步骤太多的任务效果差。


2. Plan-and-Execute (计划与执行)

原理:将任务分为两个角色。**Planner(计划者)**负责把大目标拆解成子任务清单;**Executor(执行者)**负责逐一完成清单任务。

  • 原理示意图
    用户需求 -> Planner -> [任务1, 任务2, 任务3] -> Executor(执行任务1) -> Executor(执行任务2) ...

  • 适用场景:比如“重构这个模块并同步更新所有引用”,这种需要多步配合的操作。


3. Self-Reflection (自我反思)

原理:Agent 在输出结果后,会调用一个“评价模型”来检查自己的错误,并根据错误反馈进行迭代修正。

  • Demo 实现思路

# 1. 生成代码 code = llm.generate("编写一个快速排序") # 2. 运行测试 test_result = run_test(code) # 3. 如果报错,反思并修正 if not test_result.success: feedback = f"你的代码报错了: {test_result.error}" refined_code = llm.generate(f"参考反馈修正代码: {feedback}")
  • CodeFlow AI 应用Bug Diagnosis Agent。定位错误后,先尝试给出修复方案,自测失败后再重新分析。


4. Multi-Agent (多智能体协作)

原理:模仿人类公司运作。定义不同的角色(Role),如 Coder、Reviewer、Tester。它们通过消息队列进行对话和协作。

  • 代表框架:MetaGPT, AutoGen。

  • 应用场景自动化研发流水线。Coder 写完代码,自动发消息给 Reviewer 审查,Reviewer 觉得不行就打回重写。


5. LangGraph (状态图架构) —— 行业天花板

原理:它是 LangChain 的进阶版。它将 Agent 的逻辑抽象为有向图。每个节点(Node)是一个函数,边(Edge)决定了流转逻辑(支持循环和条件分支)。

  • 为什么推荐?它解决了 Agent “不可控”的问题。你可以硬性规定:审查不通过必须回到修改节点,不能直接结束。

from langgraph.graph import StateGraph, END workflow = StateGraph(AgentState) # 定义节点 workflow.add_node("agent", call_model) workflow.add_node("action", call_tool) # 定义连线:agent 决策后,要么去 action,要么结束 workflow.add_conditional_edges( "agent", should_continue, # 判断函数 { "continue": "action", "end": END } ) # action 执行完必须回到 agent 继续思考 workflow.add_edge("action", "agent") app = workflow.compile()

三、 架构对比总结:我该选哪个?

在我的CodeFlow AI项目中,我是这样组合的:

  1. Code Review Agent

    • 架构模式:ReAct + LangGraph(状态图)。

    • 实现工具:使用LangChain封装自定义代码扫描工具,利用其 BaseTool 类实现。

  2. Test Generation Agent

    • 架构模式:Self-Reflection(自我反思)。

    • 实现工具:利用LangChain的 LLMChain 循环结构,将测试运行结果反馈给模型重新生成。

  3. 自动化流水线

    • 架构模式:Plan-and-Execute。

    • 实现工具:由Ruflo(一个开源项目)负责拆解任务(先审查、后生成文档、再跑单测),并监控每一步的执行状态。


我的项目具体选择是

1. 逻辑实现层:LangChain (核心框架)

你是基于LangChain来编写那 5 个智能体的。

  • 定位:它是 Agent 的“骨架”。

  • 具体职责

    • Prompt 管理:定义每个 Agent 的角色(审查员、测试员)。

    • 工具绑定:将 Read_Code()、Run_Pytest() 等 Python 函数封装成模型能识别的 Tool。

    • 短期记忆:通过 ConversationBufferMemory 让模型记得上一轮查到了哪个文件。

2. 工作流编排层:Ruflo (项目特色)

你在架构图中提到了Ruflo。这是你项目从“几个 Python 脚本”升级为“企业级平台”的关键。

  • 定位:Agent 的“总指挥部”。

  • 具体职责

    • 可视化编排:把 LangChain 写的 Agent 变成一个个节点,用线连起来。

    • 自动化触发:当 GitLab 产生一个 Merge Request 时,Ruflo 接收 Webhook,开始运行 Review Agent。

    • 流程控制:如果 Review Agent 发现严重漏洞,Ruflo 负责截断流程,不许执行后续的部署节点。

3. 运行环境层:Ollama + Milvus
  • Ollama:负责运行微调后的 Qwen2.5-Coder。

  • Milvus:负责存储和检索代码向量。


层次对应你的项目组件汽车类比关系描述
设计模式 (理论)ReAct/ Reflection汽车设计图告诉我们 Agent 应该怎么思考。
基础开发框架LangChain汽车零部件/组装线提供了发动机(LLM接口)、方向盘(Tools)、仪表盘(Output Parser)。
执行引擎Qwen2.5-Coder (Ollama)燃料/动力源所有的思考最终由模型输出,没有它车跑不起来。
业务编排平台Ruflo自动驾驶系统/中控台决定什么时候启动发动机,什么时候刹车,如何把多个零件组合成一个自动运行的系统。
关键点:
  • LangChain 是 ReAct 的实现载体:你用 LangChain 提供的 create_react_agent 函数,可以几行代码就实现一个 ReAct 模式的 Agent。

  • Ruflo 是 LangChain 的上层封装:LangChain 关注的是“怎么让 Agent 跑通”,而 Ruflo 关注的是“怎么让一堆 Agent 配合完成企业业务”。



四、 结语:从“对话”到“自动化”

Agent 架构的选择,决定了你的 AI 助手是只能“陪聊”的玩具,还是能真正进入生产力的工具。

目前,LangGraph代表了企业级 Agent 开发的趋势,因为它兼顾了 LLM 的灵活性和传统程序的严谨性。在接下来的 CodeFlow AI 开发中,我将重点使用 LangGraph 来编排这 5 大核心 Agent。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 14:47:06

让我失眠3个月的嵌入式项目,对C语言的认知全推翻了

凌晨两点,盯着屏幕上的代码,工程师高培第三次把修改的LED控制逻辑恢复原状。不是因为改不对,是因为不敢改——每动一行代码,就像在拆一颗定时炸弹,不知道哪个模块会因此瘫痪。那是去年接手的一个维护项目,硬…

作者头像 李华
网站建设 2026/4/17 20:06:14

ESPS USB MSC 调试全过程记录然

背景 在软件开发的漫长旅途中,"构建"这个词往往让人又爱又恨。爱的是,一键点击,代码变成产品,那是程序员最迷人的时刻;恨的是,维护那一堆乱糟糟的构建脚本,简直是噩梦。 在很多项目中…

作者头像 李华
网站建设 2026/4/17 21:43:21

Pretext:值得关注的文本排版引擎沾

一、语言特性:Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一,就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全面支…

作者头像 李华
网站建设 2026/4/16 20:10:02

一天一个Python库:propcache - 简化属性缓存,提升性能把

Qt是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本笔记将重点介绍QSpinBox数值微调组件的常用方法及灵活应用。…

作者头像 李华
网站建设 2026/4/17 18:43:59

Apache SeaTunnel .. 重磅发布!最值得关注的 Top 功能更新问

pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…

作者头像 李华