news 2026/3/22 18:35:35

【万字长文】大模型与智能体本质区别解析:系统级架构与模型升级的对比与应用指南!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【万字长文】大模型与智能体本质区别解析:系统级架构与模型升级的对比与应用指南!

简介

本文系统解析了大模型与智能体的本质区别,指出智能体是系统级架构而非模型升级。文章详细分析了智能体的适用场景(多步骤推理、动态决策、工具调用)与局限性(高成本、不稳定、难调试),并提供了提升智能体能力的四大关键:模型选择、提示词与记忆管理、工具体系设计和中间件优化。开发者应根据任务特征合理选择技术架构,在合适场景下发挥智能体真正价值。


前言

随着大模型技术的迅速发展,“智能体(Agent)”逐渐成为近两年讨论最热的概念之一。许多文章、工具框架、项目示例都在强调:智能体能够规划任务、调用工具、维护状态,是构建“AI 应用 2.0”不可或缺的核心能力。

但与此同时,我们也会产生一个更现实的问题:

我们真的需要智能体吗?

在实际开发中,很多任务其实并不需要智能体;而在另外一些复杂任务里,如果我们仍然只依赖单次大模型调用,则往往难以取得理想的结果。

因此,如何理解“大模型”和“智能体”的边界?什么任务适合用智能体?智能体相比大模型到底强在哪里,又有哪些天然缺陷?这些问题都是在构建 AI 系统前必须思考清楚的。

更重要的是,智能体并非一个“模型”,而是一种系统级的工程化方法论。

它由模型推理、提示词设计、工具体系、状态与记忆管理、中间件调控等多个部分共同构成。因此,想要让智能体真正发挥作用,仅仅“调用一个 create_agent()”是远远不够的;我们还需要理解每个组成部分在智能体中的角色与重要性,并掌握如何提升、优化、控制智能体的行为。

因此,本文的目的不是盲目推崇智能体,而是希望带大家系统理解:

  • 大模型和智能体分别是什么、有何关系
  • 什么情况下应该避免使用智能体
  • 什么任务天然适合智能体来执行
  • 为什么智能体会出现不稳定性、成本高、难调试
  • 如何让智能体变得更“聪明”、更稳定、可控
  • 如何利用模型、提示词、工具、中间件等组成部分系统提升智能体能力

希望通过这篇文章,你不仅能理解“智能体到底能做什么”,更能理解“什么时候该用、怎么用才最正确”。

真正强大的 AI 应用不是到处使用智能体,而是能在最正确的场景下,以恰当的方式发挥智能体的价值。

我们真的需要智能体吗?

大模型 vs 智能体

首先我们先来定义一下,什么是智能体,什么是大模型。

(1)大模型

大模型本质上是基于海量文本训练出来的概率模型,能够根据输入生成最可能的文本、代码或结构化输出。当然我们能够根据需要为大模型添加一些基本的能力,包括保存对话记录(记忆)、工具调用(bind_tools)以及结构化输出等。

在 LangChain 里,我们通常是通过设置好一个模型然后通过.invoke()的方式进行调用:

from langchain_community.chat_models import ChatTongyillm = ChatTongyi( model="qwen-max", api_key=os.environ.get("DASHSCOPE_API_KEY"))response = llm.invoke("你好,请介绍一下你自己")print(response.content)

(2)智能体

而智能体并不是一个模型,而是在大模型能力的基础上开发的系统,从而让大模型能“行动”的系统,具备规划、调用工具、执行任务的能力。

其核心能力包括:

  • 能自己做决策(Action Selection):根据当前输入/环境,决定下一步要做什么
  • 能使用工具(Tool Calling):比如能调用搜索 API、数据库等
  • 能维护状态(Memory / State):能够记住前面执行过的步骤

在 langchain 里我们使用create_agent将这些能力组合起来,然后也是通过.invoke()的方式对其进行调用:

from langchain.agents import create_agentagent = create_agent(model=llm, tools=tools, system_prompt=system_prompt, checkpointer=memory) result1 = agent.invoke({"messages": [{"role": "user", "content": "I have 2 dogs, a border collie and a scottish terrier. What is their combined weight? Could you double it?"}]}, config={"configurable": {"thread_id": "user_1"}})print(result1)

并且在新版的 LangChain V1.0 中,其内部为 Agent 配套了大量的辅助工具。其中最重要的就是中间件(前面有两节内容专门提到过),其能够让开发者可以在智能体执行的每一个关键阶段「前后挂钩」。比如在模型调用前处理输入、在工具调用后拦截输出,从而真正实现可观测、可调试、可扩展的智能体执行流程。

(3)核心差异

那通过上面的对比,其实我们可以看出,智能体和大模型是相辅相成的。只不过智能体相比大模型而言多了一些自主性,可以自主规划路径结合工具调用执行多步骤的任务

智能体不再是像大模型调用一样默认输入文本然后获取文本输出,而是能够初始规划一个蓝图,然后基于记忆以及工具调用返回的结果,进一步更新蓝图并进行下一步的任务。当然假如工具调用出现了问题,那智能体也能够有一定的纠错能力,从而帮助我们顺利完成任务。

😝一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇


智能体的缺陷

那了解完基本的概念后,我们会发现好像智能体好像是大模型的 plus 版本,大模型能做的事情智能体也能做,大模型做不了的事情,智能体可能能够解决。那是不是我们所有使用大模型的地方都需要去使用智能体呢?

其实并不是这样的,智能体由于有以下几点缺陷,其并不能完全替代大模型的使用,包括:

(1)成本更高(更多模型调用)

智能体会根据任务需要不断地:

  • 规划下一步
  • 调工具
  • 再次总结
  • 再计划
  • 继续调用

整个过程往往是循环执行,因此整体调用次数比单次大模型回答要高得多。

在实际项目里,可能会出现从一次 LLM 调用 → 十几次 LLM 调用。

对于成本敏感、请求量大的服务而言,这是一个必须提前考虑的因素。

(2)不稳定性与不可预测性更强

大模型本身就是一个概率模型,再让它负责“规划+决策+操作”,不可避免会产生:

  • 工具调用顺序不一致
  • 同样的输入,有时调用工具,有时不调用
  • 某些情况下步骤会遗漏
  • 步骤过度规划(overthinking)

尤其在复杂任务里,由于 LLM 的随机性,智能体往往会出现“意料之外的行为”。

(3)调试难度更大

相比一个普通的 chain,智能体执行路径可能是这样的:

User → LLM (规划) → 工具1 → LLM (更新计划) → 工具2 → LLM → …

如果你的任务本身就很复杂,那么调试就会更麻烦:

  • 哪一步出问题?
  • 工具输入是不是 LLM 生成错了?
  • 工具输出是不是让 LLM误解了?
  • 计划这一步是否多余?
  • 中间状态有没有污染?

这也是为什么 LangChain V1 专门增加了 Middleware、Checkpointer 等机制来提高可控性。但是这个问题仍然是非常复杂的。

(4)对提示词工程更敏感

智能体不像大模型调用那样“输入一句话就能跑”。

智能体的系统提示词要负责:

  • 规划策略
  • 工具调用规则
  • 错误处理
  • 状态更新
  • 安全边界

提示词没写好,很容易让智能体变得:

  • 过度激进
  • 一步不动
  • 无限循环
  • 调错工具
  • 错误理解任务范围

智能体的提示词属于“系统级提示词工程”,比普通 prompt 要复杂得多,也更难调。

(4)性能开销较大

每一次模型规划+工具调用,都意味着:

  • 更多网络请求
  • 更多上下文传输
  • 更长的延迟(latency)
  • 更大的状态需要保存

如果你正在构建一个需要实时响应的应用(例如智能客服、智能助手),延迟会明显增加。

什么时候不需要智能体

当我们理解了使用智能体时可能会存在的问题后,那我们就可以思考一个问题,虽然智能体的能力是很强,但是什么时候我们应该避免使用智能体?

通常在以下几种场景下可能我们用大模型会更合适一些:

(1)当任务是“固定流程”时

例如我们创建了一些固定的工作流:

  • PDF → 文本 → 清洗 → 入库
  • RAG 检索 → 构造 prompt → 调用模型
  • 解析 JSON → 提取字段 → 入数据库
  • 固定的数据清洗 pipeline

这些都属于可控性强、步骤明确的流程,写成普通函数或链条就足够了。

智能体的优势是“动态决策”,但如果流程完全固定,智能体反而是负担。相反,假如一个流程具有可变性,比如用智能客服来会回答用户问题时,由于用户问的问题是千变万化的,假如通过关键词来提取可能会出错,所以此时通过智能体来对问题进行分析,然后找到最合适的工具来解决问题才是最合适的。

(2)当问题是单轮问答时

假如我们的任务比较简单,一问一答就能够完成,比如:

  • 翻译一段文本
  • 总结一份内容
  • 生成 SQL
  • 编写示例代码
  • 解释一个错误
  • 生成教学内容

大模型直接调用更快、更便宜、更稳定。除非是有特殊的需要,不然智能体会让简单问题“复杂化”。

(3)当只需要一个工具时

当我们的使用场景确实需要使用一个工具,比如只有:

  • 一个天气 API
  • 一个数据库查询
  • 一个 PDF 解析工具
  • 一个数学计算器

此时完全可以让 LLM + bind_tools 来自动调用工具,不需要 create_agent。因为智能体的价值在于“工具组合”,不是“工具包装”。

(4)当输出要求高度可控且稳定时

很多类型的任务,比如评分、解析、分类、抽取等任务往往要求高一致性以及稳定性。而智能体的动态性会让输出更难控制,也更难复现。这时使用流程设计清晰的工作流结合大模型调用会更加合适。

什么时候需要智能体?

相反,智能体的价值主要体现在“大模型无法独立完成的复杂任务”中——尤其是那些需要多步骤、动态决策、工具调用、状态维护的场景。当任务具备以下一个或多个特征时,智能体的优势会明显体现出来。

(1)任务不止一步,需要多步骤推理与执行

如果一个任务天然需要多个环节、多个阶段才能完成,并且每一步的执行结果会影响下一步的决策,那么智能体是非常合适的。典型例子:

  • “帮我抓取某个新闻网站的信息 → 过滤 → 生成摘要 → 输出为报告”
  • “先识别用户上传的表格 → 然后补全缺失字段 → 再将其入库”
  • “先搜索论文 → 再分类 → 再用不同策略总结”

这些任务不适合硬写成固定流程,因为步骤可能会根据数据而变化。

(2)需要根据情况动态选择工具

普通大模型是“不会用工具”的,它只能根据训练语料生成文本;智能体则能自主选择工具,并根据工具的输出调整行为。

如果任务需要:

  • 天气查询 API
  • 数据库查询
  • 文件处理工具
  • Web 搜索工具
  • 数学计算库
  • 代码执行沙箱

等多个工具协作,那么智能体会比“写死工具调用的流程”更灵活。特别是当用户的意图具有不确定性时:

  • 用户可能要查天气
  • 也可能要查路线
  • 也可能要做分析
  • 也可能要写一段代码

这类任务智能体优势极大。

(3)用户输入无法提前预测,需要即时策略规划

如果用户的问题非常多变,质量不稳定、内容跨度大,大模型无法用一个固定 prompt 来处理。

例如:

  • “帮我整理这个 Excel,然后告诉我最应该优化哪一列”
  • “我需要一个旅行计划,但预算和时间你得先帮我算一下”
  • “帮我找一下这个网站的问题在哪,但要分步骤验证”

智能体可以:

  • 先分析指令
  • 决定是否需要搜索
  • 决定是否需要使用计算器
  • 决定是否需要清洗数据
  • 决定是否需要再次提问
  • 决定最终结果格式

这是普通链路很难做到的。

(4)任务需要“循环执行”直到达成某个目标

有很多的任务需要不断的循环才能完成,例如:

  • 让 AI 持续爬取多个页面,直到没有下一页为止
  • 让 AI 持续检查一个任务是否完成
  • 让 AI 自动调整参数直到模型拟合更好
  • 让 AI 反复优化代码直到通过测试

这类场景需要:

  • “观察 → 决策 → 行动 → 再观察 → 再行动”的循环
  • 状态的增量更新
  • 工具调用的链式反馈

这正是智能体的强项。

总结

通过上面的分析我们可以看到,智能体并不是大模型的升级版,而是一个“在特定场景下更有价值的系统级架构”。当任务具有多步骤、多工具、不确定性强、需要实时决策或需要维护状态等特征时,智能体能够发挥巨大作用,帮助我们构建更灵活、更强大的 AI 系统。

但与此同时,智能体也带来了更高的成本、更大的不确定性、更复杂的调试难度以及更高的提示词工程要求,因此并不适合所有任务。在流程固定、目标明确、一问一答、单工具调用、高度可控的场景中,使用普通的大模型调用往往更简单、更高效、更稳定。

因此,我们在开发时并不是要“无脑上智能体”,而是要对任务特征进行判断:

  • 若任务简单清晰 → 用 LLM / Chain 即可;
  • 若任务复杂、动态、多工具、多状态 → 智能体才是最佳选择。

换句话说,智能体更像是一套扩展大模型能力的“执行框架”,当问题本身需要“思考 + 决策 + 工具 + 状态”时,它才能真正发挥价值。真正优秀的 AI 应用不是到处使用智能体,而是能够在恰当的地方用恰当的方式解决问题。

如何提升智能体的能力

智能体的组成部分

那假如一个任务我们分析出来说就是很适合智能体,那下一个问题就是如何来提升智能体的能力呢?

其实答案就写在这张图里。影响 ReAct 类智能体最重要的就是管理智能体的输入、决定使用什么样的模型以及给予大模型的工具做得怎么样。

另外在这张图以外,还有一个很重要的因素就是如何让智能体能准确的记住过去的知识,这个也是非常重要的内容。

除此之外,在智能体运行过程中进行一些优化和调整也是非常重要的,这也是 LangChain 推出中间件的原因。如何能够让整个系统运行的更加稳定,如何能够面对不同的使用场景,这个中间件的配置和提升也是强化智能体能力的重点之一。

那中间件其实不仅仅只是获取信息修改模型这么简单,其实中间件更重要的价值是能够在基本的 ReAct 流程上添加部分的节点让其能更完善。

比如 LangChain 团队提出的 Plan-and-Execute ReAct 框架就是如此,在原本 ReAct 的基础上添加了任务列表的内容,并在每一轮进行更新。这其实也是能够让智能体的能力变得更强。这个的实现可以通过一个内置中间件 TodoListMiddleware 完成。

除此之外,还有包括加入人工审核的机制等等。这个也是可以通过内置中间件 HumanInTheLoopMiddleware 来实现。

因此在下面的内容中我们将对以上内容逐个进行讲解。

模型

智能体的核心仍然是大模型,因此提升智能体能力的第一步,就是选择更强的模型。例如,在相同生态下,Qwen-max 的综合能力通常要比 Qwen-2.5-72B 更强;更大的模型往往拥有更扎实的推理能力、更准确的工具调用判断能力以及更稳定的多步骤规划能力,从而让智能体在执行复杂任务时表现得更稳健。

但在提升模型能力时,我们不仅要关注模型的“总体水平”,还要关注一些在测评中不一定被直接体现,却对智能体表现至关重要的能力,例如:

  • 指令跟随能力(Instruction Following):决定模型是否能准确理解我们设计的系统提示词、工具使用规则和决策策略。
  • 结构化输出能力(Structured Output):影响模型是否能生成可解析的 JSON、函数参数,以及工具所需的严格格式。
  • 推理逻辑能力(Reasoning & CoT):直接决定智能体在多步骤任务、规划任务、循环任务中的稳定性与可靠性。

这些能力往往不会体现在普通的基准测试中,但在智能体执行工具调用、状态更新、规划执行等“真实任务”中却高度敏感。因此,选择模型时不仅要看“模型本身是否强”,更要看“模型是否适合承担智能体的角色”。

提示词 & 记忆

在智能体系统中,提示词的重要性远高于普通的大模型调用。提示词其实主要分为三个部分:

  • 过去的历史记录
  • 系统提示词(规则化的信息)
  • 用户提示词(提问的问题)

用户提示词其实基本没得变,因为用户提问的内容就是一句话,除非是太长的提问可以通过用大模型进行总结提取。但是过去的历史记录和系统提示词还是可以有很多的优化空间。

(1)动态调整系统提示词

比如说对于系统提示词而言,不同阶段需要模型采用不同的行为策略。因此,一个“固定不变的 system prompt”往往不足以支撑智能体的复杂判断。

那在 LangChain 里也有一个专门的中间件类型(@dynamic_prompt)去帮助我们设计逻辑动态调整系统提示词的内容。我们可以根据不同的步骤、不同的工具调用结果、不同的任务类型、不同的场景动态的调整系统提示词,从而使得在系统运行过程中能找到最优的提示词提升智能体的能力。

这种“提示词随着执行上下文实时变化”的能力,使得智能体能够更可靠地处理复杂任务,也让其具备更强的策略灵活性。

(2)管理上下文与记忆

除了动态调整提示词外,智能体的决策高度依赖上下文,因此记忆机制(Memory / Checkpointer)是另一个能力提升关键点。但记忆不是“把所有内容都塞给模型”,过多的上下文反而会降低模型判断能力,还会拖慢推理和增加成本。

要提升智能体能力,就需要解决两个核心问题:

  • 如何管理上下文?(context management)
  • 如何在众多历史信息中选出对当前步骤最有价值的片段?(relevant memory retrieval)

实践中常用的策略包括:

  • 使用摘要记忆或按规则记忆剪裁压缩冗余历史
  • 使用检索式记忆,将记忆都存放到向量数据库中,然后基于向量相似度挑选最相关片段
  • 针对工具调用历史构建结构化“执行日志”,提供给模型更清晰的输入
  • 根据步骤不同提供不同类别的记忆,如:
  • 决策阶段 → 提供任务目标、约束条件、前置步骤
  • 工具调用阶段 → 提供最近一次的工具输出
  • 反思阶段 → 提供执行错误和校验信息

良好的上下文管理策略可以确保模型“只看到最有用的内容”,从而做出更准确、更稳定的判断。

😝一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇


工具

在智能体的整体能力体系中,工具(Tools)是最关键的组成部分之一。一个智能体能完成什么任务,很大程度取决于它能调用哪些工具、如何调用工具、以及工具体系是否设计得合理。

但在实践中我们经常会误以为:“智能体做不好任务,是因为工具不够多。”

实际上,这是一个非常常见的误区。工具数量并不是第一影响因素。真正决定智能体能力的,是工具体系的规划、拆分方式、描述方式与鲁棒性。

下面我们从四个角度系统讲解如何构建一个高质量、高可控的工具体系。

(1)工具数量不等于工具能力:合理规划比堆叠更重要

很多开发者在设计智能体时喜欢“越多工具越好”,认为只要把所有能力挂上去,智能体自然就会变强。然而事实恰恰相反:

  • 工具越多,模型需要判断的选项越多
  • 工具描述越多,LLM 的决策负担越大
  • 工具越杂乱,智能体越容易产生误判、误调用

因此,大而全的工具体系反而会降低智能体的成功率。真正重要的是:**根据任务结构,规划一个清晰、有边界、低干扰的工具体系。**例如:

  • 与数据处理无关的工具不要出现在文本智能体里
  • 与地图相关的工具不应该提供给金融分析代理
  • 与系统操作相关的工具应集中在专用的子智能体中

工具的规划本质上是系统设计,而不是参数堆叠。而这种做法最高级的体现就是多智能体的系统,具体做法是:

  • 将复杂任务拆分成多个子任务
  • 每个子任务对应一个“子智能体”
  • 每个子智能体只接收它需要的那部分工具
  • 总控智能体(Supervisor)负责指派任务、协调流程

这样做的好处是:

  • 工具体系被自然“按任务”拆分
  • 每个子智能体更聚焦、更准确
  • 工具选择空间更小,LLM 决策更容易
  • 子智能体之间可以协作,从而解决更复杂的任务

这种方式不仅提升可控性,还能让整体架构更清晰、更容易扩展。

(2)工具生态的拓展:让智能体“能够做更多事”

在合理规划工具体系的基础上,引入更多专业工具能够显著提升智能体的能力边界。

目前常见的扩展方向包括:

  • RAG Agent:增强信息检索与知识库能力
  • SQL Agent:增强数据库查询、结构化数据分析能力
  • **Code Agent:**让大模型自己来写代码运行,从而自己创建工具自己来使用
  • MCP 工具(Model Context Protocol):接入外部应用的标准方式

特别是 MCP(魔搭社区 MCP 广场、高德地图、支付宝等)让智能体能够接入真实世界的 API 与本地系统,大幅增强可执行能力。

不过需要注意的是:工具扩展应该基于任务需求,而不是为了“看起来强”而盲目堆叠。

(3)工具粒度设计:拆大工具 vs 拆小工具

另一个影响智能体成功率的关键点,是工具的“粒度”。

  • 工具太大:不灵活,LLM 无法组合
  • 工具太小:调用太频繁,浪费 token,增加复杂度

在大多数场景里,更推荐采用:中等粒度 + 可组合的小工具体系。

例如不要提供一个“数据分析 + 可视化 + 写文件”的大工具,而应该拆分成:

  • parse_data
  • analyze_data
  • generate_plot
  • save_to_file

这样 LLM 可以按需组合工具,从而发挥智能体的真正价值。

(4)工具描述:决定智能体的“工具调用正确率”

工具描述(Tool Description)是智能体调用工具准确度的关键因素。

糟糕的工具描述会导致:

  • 工具选错
  • 参数构造错误
  • 反复调用失败
  • 甚至无限循环

因此必须避免模糊描述,例如:

“用于查询天气”

而应该写成清晰、可执行的格式:

“查询指定城市的实时天气。参数 city 必须为中文字符串,返回 JSON 格式,包含 temperature、humidity、wind 三个字段。”

好的工具描述应该具备:

  • 明确输入格式
  • 明确输出格式
  • 明确限制与错误条件
  • 示例(如果需要)

清晰的工具描述就是 LLM 的“使用手册”,越清晰越好。

(5)工具设计的鲁棒性:必须能处理各种情况

一个优秀的工具,不仅要“能正常工作”,还必须具备以下特性:

  • 输入规范化(自动纠错或给出友好提示)
  • 输出可解析(结构化 JSON 或固定格式)
  • 错误格式统一(不要随机 print,统一 error schema)
  • 尽量不抛异常(抛异常会直接中断智能体流程)
  • 保证工具无论成功或失败都可预测

因为智能体依赖工具反馈来决策,如果工具输出不可控,会让模型误解结果,继而做出错误判断。

(6)小结

简而言之:优秀的工具体系 = 清晰的结构 + 合理的粒度 + 高质量的描述 + 稳定的输出 + 适配任务的生态扩展。这样的工具系统,才能真正让智能体更稳定、更智能、更强大。

中间件(Middleware)

LangChain V1 中间件机制的出现,是为了让智能体具备可控、可调试、可扩展的执行流程。

中间件能够在智能体的关键环节(如模型调用前/后、工具调用前/后、结果输出前)插入自定义逻辑,让我们无需修改智能体的主流程,就能轻松扩展其能力。

在众多内置中间件中,最常用来提升智能体能力就是规划类中间件(Plan-and-Execute / Todo List)和 **人工介入类中间件(Human-in-the-Loop)。**下面就来分别进行说明。

(1)Plan-and-Execute ReAct

在智能体中,规划能力指的是:将复杂任务拆解成更小的子任务,并按顺序或循环执行,直到任务完成。

简单来说,一个具备规划能力的智能体会按照以下流程工作:

  1. 用户请求:用户提出一个自然语言任务。
  2. 任务规划:智能体将任务拆解成多个小步骤(子任务)。
  3. 任务执行:每个步骤由智能体或子智能体依次完成。
  4. 结果更新:将执行结果写入当前状态。
  5. 判断后续
  • 如果所有任务完成 → 输出最终结果;
  • 如果未完成 → 重新规划下一步。
  1. 循环执行:不断 Reason(思考)+ Act(行动),直到完成所有步骤。

这种规划能力让智能体能够处理多步骤任务,而不仅仅是“回答问题”。

在 LangChain 中,不需要自己写复杂的规划提示词或实现任务拆解逻辑,只需要使用内置的TodoListMiddleware,就能让智能体自动具备“任务规划 + 任务跟踪”的能力。

这个中间件会自动:

  • 给智能体注入一个“写入待办事项”的工具(write_todos
  • 自动引导模型拆任务、规划步骤
  • 在执行过程中持续更新 todo 列表
  • 显示任务进度(非常适合教学与调试)

示例代码如下:

from langchain.agents import create_agentfrom langchain.agents.middleware import TodoListMiddlewareagent = create_agent( model="gpt-4o", tools=[read_file, write_file, run_tests], middleware=[TodoListMiddleware()],)

这个中间键有两个参数可以自定义系统提示词和工具描述,例如:

  • system_prompt: 控制智能体如何使用待办列表
  • tool_description: 自定义写待办事项工具的描述

但一般情况下,默认提示词已经足够好用不需要额外进行调整了。这样我们就能够让模型具有一定的规划能力,能更好的根据任务的列表完成任务,避免跑偏的情况发生。

(2)Human in the Loop

除了自动规划外,LangChain 还提供了“人工把关”的能力。

在某些有风险、不可逆、影响系统安全的操作中,我们不希望模型完全自动调用工具,而是希望:

  • 人类可以“审批”某些工具调用
  • 人类可以“修改”模型准备执行的操作
  • 人类能够在关键步骤确认、拒绝或调整输入
  • 工具执行前可以暂停,等待人工确认

例如:

  • 修改文件内容
  • 删除数据
  • 调用数据库写操作
  • 执行 shell 命令
  • 进行财务指令、转账等敏感操作

在这些场景中,通过 Human-in-the-Loop 中间件,我们可以插入人工审批流程,确保安全性。

该中间件典型工作流程如下:

  1. 智能体准备调用某个危险工具
  2. 中间件拦截该调用
  3. 展示“工具名 + 参数 + 目的”
  4. 人类决定:允许、拒绝、修改
  5. 智能体继续执行或重新规划

这类中间件可以有效避免“模型误调用危险工具”的风险,是企业级智能体系统中非常重要的安全保护机制。

总结

智能体并不是大模型的替代品,而是一种在复杂任务中扩展大模型能力的系统化工程方法。它依托大模型的推理能力,同时结合工具、记忆、规划、中间件等机制,使得 AI 能够从“仅能回答”真正走向“能够行动”。但智能体并不是万能的——更高的成本、更复杂的调试、更强的随机性和更重的提示词工程,都决定了智能体不适用于所有场景。

因此,在构建 AI 应用时,关键不是盲目使用智能体,而是要判断任务本身的特征:如果流程固定、目标明确、结构简单,那么使用普通的大模型调用更加高效;反之,当任务具有多步骤、多工具协作、不确定性强或需要持续循环决策时,智能体的价值才能充分体现。

提升智能体能力的核心在于四个方面:

  • 模型决定整体推理质量;
  • 提示词与记忆决定智能体能否准确理解任务并保持稳定上下文;
  • 工具体系决定智能体能完成什么任务、能走多远;
  • 中间件决定系统能否可控、可调试、可扩展。

当我们将这些要素系统整合,智能体才能真正成为一个“高可控、高可靠、高执行力”的整体,而不仅仅是一个模型包装器。

归根到底,智能体是“在合适的问题中被正确使用”时才真正强大。真正优秀的 AI 系统不是为了使用智能体而使用智能体,而是能够在正确的场景中,用最恰当的方法解决问题——这也是未来 AI 应用从“模型时代”走向“系统时代”的关键所在。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段:从大模型系统设计入手,讲解大模型的主要方法;

第二阶段:在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段:大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段:大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段:大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段:以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段:以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求:大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能,学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力:大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

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

16、文档编写工具与 XML 的使用指南

文档编写工具与 XML 的使用指南 1. 基础文档编写工具 1.1 纯文本文件的使用 在文档编写中,最小的实体是纯文本文件。只要文件包含的信息不过多,采用简单的结构就足够了。这里不需要使用 XML,通过标题、段落、缩进以及条目间留出足够的空间,就可以对信息进行结构化处理。…

作者头像 李华
网站建设 2026/3/21 14:55:54

21、Unix/Linux 系统安全与网络监控指南

Unix/Linux 系统安全与网络监控指南 1. 文件传输安全 在 Unix/Linux 系统中,文件传输是常见操作。当地址中省略用户名部分时,系统会使用当前用户名。若要保留文件的权限和所有权,可使用 -p 选项;若要复制目录树,则使用 -r (递归)选项。例如: erikk@unixhost>…

作者头像 李华
网站建设 2026/3/13 23:43:28

如何使用VSCode开发Arduino项目

安装必要插件在VSCode中安装官方扩展"PlatformIO IDE"或"Arduino"。PlatformIO功能更全面,支持多平台开发;Arduino扩展更轻量,适合简单项目。配置开发环境PlatformIO方式: 安装完成后,左侧工具栏会…

作者头像 李华
网站建设 2026/3/12 20:28:48

端到端测试优化:Cypress并行执行提速300%

在持续交付成为主流的今天,端到端测试作为确保软件质量的关键环节,其执行效率直接关系到产品迭代速度。传统的线性测试模式在面对复杂业务场景时往往成为瓶颈,而Cypress作为现代Web测试框架,通过并行化改造实现300%的效率跃升&…

作者头像 李华