你的Agent是不是经常干到一半突然开始胡说八道?
死循环、忘目标、越聊越偏。
别急着换模型,问题大概率出在架构上。
今天这篇,帮你搞清楚三种主流Agent架构到底怎么选。

你的Agent为什么总是翻车
我见过太多人搭Agent,上来就选ReAct,然后就开始跟它"斗智斗勇"。
LangChain团队做了一个挺狠的测试:让5个主流模型跑ReAct Agent,工具从1个域加到7个域。
结果呢?GPT-4o在单域客服任务上完成率还有50%,加到7个域后直接跌到2%。没错,98%的任务都失败了。
Claude-3.5-Sonnet是少数还能稳住的,7域后还有65%的完成率。o1从71%掉到50%,o3-mini从83%掉到40%。
这说明啥?问题出在架构上,不是模型能力不够。工具一多、步骤一长,ReAct的上下文就爆炸,模型就开始"犯迷糊"。
所以,选对架构真的比换模型重要得多。
ReAct:边想边干,但容易迷路
ReAct是2022年普林斯顿和谷歌提出的,名字很直白:Reasoning(推理)+ Acting(行动)。
说白了,就是让Agent"走一步想一步"。
每一步它都要:先写一段思考,决定干啥;然后调用一个工具;看结果;再想下一步。循环往复,直到任务完成。
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
def search_tool(query: str) -> str:
"""搜索互联网信息"""
return f"搜索结果: {query}"
def calculator_tool(expression: str) -> str:
"""数学计算"""
return str(eval(expression))
model = ChatOpenAI(model="gpt-4o")
agent = create_react_agent(
model=model,
tools=[search_tool, calculator_tool],
prompt="你是一个有帮助的助手。"
)
result = agent.invoke({
"messages": [{"role": "user",
"content": "中国人口乘以2是多少?"}]
})
LangGraph一行代码就能创建一个ReAct Agent,上手确实快。
但问题也在这儿:太自由了。
你的Agent可能第3步还在搜索,第10步已经忘了原始问题是啥。工具超过10个的时候,它开始频繁选错工具。上下文一长,推理质量就断崖式下跌。
适合ReAct的场景:简单问答、单轮搜索、客服对话、探索性研究。特点是工具少(5个以内)、步骤短(3步以内)、需要灵活应变。
Plan-Execute:先想清楚再动手
Plan-Execute的思路完全不同:先让Agent把任务拆成步骤清单,再一步一步执行。
ReAct像开车不设导航,边开边看路牌。Plan-Execute像出发前先查好路线,再按导航走。
规划阶段用强模型(GPT-4o),执行阶段可以用便宜模型(GPT-4o-mini)。光这一项,成本就能省不少。
from langgraph.graph import StateGraph, START, END
from langchain_openai import ChatOpenAI
from typing import TypedDict, Annotated
import operator
class PlanState(TypedDict):
task: str
plan: list[str]
step_results: Annotated[list[str], operator.add]
planner_model = ChatOpenAI(model="gpt-4o")
executor_model = ChatOpenAI(model="gpt-4o-mini")
def planner(state: PlanState) -> dict:
"""把任务拆成步骤"""
resp = planner_model.invoke(
f"将以下任务分解为具体步骤:/n{state['task']}/n"
"输出格式:1. 步骤一/n2. 步骤二/n..."
)
steps = [s.strip() for s in resp.content.split("/n")
if s.strip()]
return {"plan": steps}
def executor(state: PlanState) -> dict:
"""执行当前步骤"""
step = state["plan"][0]
resp = executor_model.invoke(
f"执行这个步骤:{step}/n"
f"之前的执行结果:{state['step_results']}"
)
return {"step_results": [resp.content]}
graph = StateGraph(PlanState)
graph.add_node("planner", planner)
graph.add_node("executor", executor)
graph.add_edge(START, "planner")
graph.add_edge("planner", "executor")
graph.add_edge("executor", END)
app = graph.compile()
result = app.invoke({"task": "分析2024年中国AI市场规模"})
实测数据来看,复杂任务的完成率从ReAct的70%左右提升到了92%。
代价也有:首次响应慢(得等计划生成完),规划阶段Token消耗大,执行过程中遇到意外情况不会自己调整。
所以一定要加重规划机制:执行结果和预期偏差太大时,触发重新规划。
适合Plan-Execute的场景:深度研究报告、数据分析、代码生成、金融审批。特点是步骤多(5步以上)、需要中间验证、有人类审核需求。
手动编排:最不智能但最靠谱
手动编排,也叫Workflow或DAG,说白了就是你自己把流程画好,让AI按你画的路线走。
这甚至不算严格意义上的"Agent",更像是"AI增强的工作流"。
每个节点做一件事,节点之间有固定的连接关系。没有动态决策,没有循环,没有惊喜。
from langgraph.graph import StateGraph, START, END
from langchain_openai import ChatOpenAI
from typing import TypedDict
class WorkflowState(TypedDict):
topic: str
research: str
draft: str
final: str
model = ChatOpenAI(model="gpt-4o")
def research(state: WorkflowState) -> dict:
resp = model.invoke(
f"研究以下话题的关键信息:{state['topic']}"
)
return {"research": resp.content}
def draft(state: WorkflowState) -> dict:
resp = model.invoke(
f"基于研究资料写一篇草稿:/n{state['research']}"
)
return {"draft": resp.content}
def polish(state: WorkflowState) -> dict:
resp = model.invoke(
f"润色以下文章:/n{state['draft']}"
)
return {"final": resp.content}
graph = StateGraph(WorkflowState)
graph.add_node("research", research)
graph.add_node("draft", draft)
graph.add_node("polish", polish)
graph.add_edge(START, "research")
graph.add_edge("research", "draft")
graph.add_edge("draft", "polish")
graph.add_edge("polish", END)
app = graph.compile()
result = app.invoke({"topic": "AI Agent架构演进"})
听起来很不"智能"对吧?但简单任务的完成率能做到95%以上,成本只要ReAct的三分之一。
没有上下文爆炸问题,没有死循环风险,每个节点的输入输出清清楚楚。
代价也很明显:流程是死的,遇到没预见的情况就傻眼。新需求来了得改代码重新部署。
适合手动编排的场景:文档摘要、翻译、格式转换、内容发布流水线、数据ETL。特点是流程完全确定、步骤固定、追求稳定性和低成本。
三种架构正面刚
核心差异对比:

再看看不同规模下的表现:

模型能力没问题,架构选错了才是关键。
什么场景选哪种
给你一个决策逻辑:
任务流程完全确定? 直接用手动编排。文档翻译、格式转换、流水线处理,别想太多。
需要动态决策? 继续判断:
- 工具少于5个、步骤少于5步?用ReAct。简单问答、单轮搜索、客服对话,够用了。
- 工具或步骤更多?用Plan-Execute。研究报告、数据分析、代码生成,结构化执行更稳。
- 需要人工审核?Plan-Execute天然支持在步骤间插入审核点。
不确定? 从手动编排开始,不够用再升级。OpenAI官方也是这么建议的。
场景速查表:

踩坑清单
三种架构各自有各自的坑,我帮你列好了,直接抄作业。
ReAct的坑:
- 死循环。Agent反复调用同一个工具不停止。设最大迭代次数,加终止条件检查。
- 目标漂移。聊着聊着忘了原始问题。每轮思考里重述原始任务。
- 工具选错。工具一多就乱选。优化工具描述,减少相似工具。
- 上下文爆炸。长对话后性能暴跌。定期压缩历史,清理无关信息。
Plan-Execute的坑:
- 计划太宏大。Planner一拍脑袋搞了20步。限制步骤数量,引导高层规划。
- 执行太死板。遇到异常不会调整。加重规划机制,异常时触发重新规划。
- 步骤间信息丢失。Executor只看当前步骤。在状态中维护累积上下文。
- 简单任务也规划。明明一步能搞定非要拆三步。加路由层,简单任务直接执行。
手动编排的坑:
- 过度工程。简单任务也搞DAG。先评估需不需要编排,简单链式调用可能就够了。
- 错误传播。一个节点挂了全流程断。每个节点加重试和降级逻辑。
- 并行状态冲突。并行节点写同一个字段。用不可变数据结构,设计清晰的状态合并策略。
- 大规模DAG难调试。节点多了找不到问题在哪。加详细日志,用可视化工具。
真正的高手用混合架构
生产环境里,纯架构很少见。真正好用的往往是混合方案。
Adaptive Planning:高层用Plan-Execute定计划,每个步骤内部用ReAct灵活执行。兼顾了规划和灵活性。
Router + Branch:先识别意图,简单请求直接响应,标准流程走手动编排,复杂任务才上Plan-Execute或ReAct。这是OpenAI官方推荐的升级路径。
Manager Pattern:一个Manager Agent负责规划和调度,下面挂多个专业Agent。研究员负责搜索,写手负责输出,审核员负责检查。
升级路径很清晰:从手动编排开始,不够灵活就加ReAct,任务变复杂就上Plan-Execute,最后再考虑混合架构。
别把简单问题复杂化,也别把复杂问题简单化。先搞清楚你的任务到底需要多少灵活性,再选对应的架构。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
👇👇扫码免费领取全部内容👇👇

1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 2026行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

7. 资料领取:全套内容免费抱走,学 AI 不用再找第二份
不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:
👇👇扫码免费领取全部内容👇👇

415



被折叠的 条评论
为什么被折叠?



