当前位置: 首页 > news >正文

Agent 是什么——LLM 只是“嘴”,Agent 才有“手”

Agent 是什么——LLM 只是"嘴",Agent 才有"手"

这是「Agent 工程化」系列的第一篇。本系列从概念讲到生产落地,每篇都能独立阅读。
这篇我们用最朴素的方式把"Agent 到底是什么"讲清楚,不需要任何前置知识。

标签:#AI智能体 #Agent工程化 #大语言模型 #LLM #人工智能 #AI开发 #ReAct #LangChain #AI应用 #技术博客


从一个真实场景说起

先看一句话需求:

“帮我订一张下周五上海飞北京的机票,要早班机。”

把它分别丢给三种"AI",看看它们各自的表现。

第一种:普通 LLM(比如打开 ChatGPT 直接聊)

LLM 很聪明,它会告诉你:“建议选早上 8 点前的航班,比如东航 MU5101,07:00 起飞。” 它甚至能帮你列出推荐清单、避坑指南。

但然后呢?没有了。它不会真的去订。因为它只是个"聊天大脑"——只会输出文字,没有手、没有腿,碰不到真实的订票系统。

第二种:RAG 应用(比如一个"懂行"的旅游知识助手)

它比普通 LLM 强一点:可以接入最新的航班信息、机场攻略,回答里带着来源,看起来更可靠。

但同样是只动嘴不动手。你问它"哪班最早",它答得头头是道;你说"帮我下单",它只能摊手。

第三种:Agent(一个真正的 AI 旅行助手)

它收到这句话后,会自己展开一连串动作:

  1. 调"查航班"工具:下周五上海→北京有哪些早班机?
  2. 对比几个候选航班的价格和时间
  3. 调"下单"工具帮你订票
  4. 返回订单号:“已订好,东航 MU5101,07:00 起飞”

中间不用你操心,它自己决定下一步干什么、什么时候结束。

这三种 AI 的区别在哪?

普通 LLM / RAG 回答的是"知道",Agent 干的是"做到"。
差距不在"懂不懂",在"能不能动手"。


Agent 到底是什么

一句话定义:

Agent = LLM(大脑)+ 工具(手脚)+ 自主决策循环(灵魂)

拆开看:

  • LLM(大脑):负责理解你说的话、推理、做决策。但它有个天生的限制——只会输出文字,碰不到真实世界。
  • 工具(手脚):查航班、查天气、下单、发消息……把 LLM 的"想法"变成对外界的"行动"。这是 Agent 和聊天机器人的分水岭。
  • 自主决策循环(灵魂):思考 → 行动 → 观察结果 → 再思考。任务没完成就继续循环,直到做完为止。

这里多说一句:工具并不神秘。它就是一个普通的函数或 API,比如search_flight(出发城市, 到达城市, 日期)返回航班列表,book_ticket(航班号, 人数)返回订单号。你天天写的那种。Agent 做的事情,就是"让 LLM 来决定在什么时候、用什么样的参数,去调用这些函数"。

用一张表看普通 LLM 和 Agent 的区别:

普通 LLMAgent
输入一句话一个目标
过程一次推理就回答多步推理 + 反复调用工具
输出一段文字完成任务的最终结果(订单号、诊断结论……)
能力边界只有训练时见过的知识训练知识 + 实时查数据 + 动手操作

还有个常被问的问题:Agent 和 RAG 是什么关系?

  • RAG(检索增强生成)解决的是"带资料回答":LLM 回答前先查资料库,引用着说。
  • Agent 解决的是"动手解决问题":调工具、做动作。

两者不冲突,经常一起用。一个 AI 旅行助手,既需要 RAG 去查"退改签政策"这类文档,也需要工具去真正下单。后面系列会展开讲。


Agent 的"自主性"是分级的

很多人以为 Agent 等于"全自动",其实"自主"是有梯度的。业界通常分 L0-L5:

级别名称例子(旅行助手)
L0无自主纯聊天,只会回答"北京几点有早班机"
L1工具调用会调"查天气"工具,但只做这一件事
L2链式调用查完机票,接着查酒店,按固定顺序走
L3条件分支看价格:贵的走"推荐经济舱"分支,便宜的走"直接订"分支
L4自主规划自己把"订机票+订酒店+排行程"拆成计划再执行
L5多 Agent 协作机票助手、酒店助手、行程助手分工合作

现实是:大多数产品停留在 L1/L2。越往上越强大,也越需要工程化手段兜底(后面系列会讲)。下次看到"自主智能体"这种词,先问一句:它到 L 几了?


Agent 的核心架构:就一个循环

无论多复杂的 Agent,核心骨架都是同一个循环:

没完成

完成

用户提出目标

思考下一步

调用工具

观察结果

任务完成?

输出最终结果

用伪代码看更直白:

while任务未完成:llm 输出{思考,要调用的工具,参数}执行工具调用 把结果放回对话历史 判断任务是否完成

回到订机票的例子,这个循环大概长这样:

轮次思考(thought)行动(action)观察(observation)
1得先查下周五有哪些航班查航班(上海→北京, 下周五)3 个早班机候选
2挑最早的,看下价格和余票查票价(东航MU5101)经济舱 ¥890,有票
3信息齐了,直接下单下单(东航MU5101, 1人)订单号 TD2026XXXX
4完成了,告诉用户结束

就这么简单。所谓 Agent,本质就是"让 LLM 在一个循环里反复思考、动手、看结果"。第二篇我们会手写一个最小可运行的 Agent(50 行代码),到时候你会发现它真的就只有一个 while 循环。


但生产环境的 Agent,没那么简单

上面的循环能跑通 Demo,但离"好用"还很远。我拆了 6 个实际问题——它们正好是本系列的骨架:

  1. 怎么防止 Agent 乱来?万一它把"下单"工具连点十次,或者花光你的预算还在循环——需要护栏(第 9 篇)
  2. 怎么知道它干了什么、花了多少钱?每次调工具、每次消耗 token,都要记账和可观测(第 9、10 篇)
  3. 聊着聊着就"失忆"了?上下文窗口装不下太多内容——需要上下文管理(第 4 篇)
  4. 怎么让它记住上次聊过的事?今天说的,明天还认得——需要记忆系统 Memory(第 5 篇)
  5. 怎么让它懂"退改签政策"?这些不在训练数据里——需要RAG 知识库(第 6 篇)
  6. 复杂行程一个循环搞不定?规划 5 日游要拆步骤、能并行——需要编排模式与多 Agent(第 8 篇)

三个常见误区

误区一:Agent = 调大模型 API

不少人觉得"我接了大模型接口,我就在做 Agent 了"。不是的。只做"你说一句,它答一句",那是聊天机器人;有了工具、有了循环,能真正动手完成任务,才叫 Agent。

误区二:Agent 必须用 LangChain 这类框架

框架只是实现方式之一。50 行手写代码也能跑一个像样的 Agent,而且能让你真正理解原理。用框架不等于懂 Agent(第 2 篇会现场演示手写版)。

误区三:Agent 是万能的

它有幻觉,可能一本正经胡说;上下文窗口有限,聊太多会"失忆";给它的工具如果没护栏,它可能真的给你乱下单。越能干的 Agent,越需要工程化手段兜底——这是整个系列最想传达的一件事。


下篇预告

下一篇我们不再讲概念,直接动手:用 50 行 Python 手写一个最小可运行的 ReAct Agent。

它只有一个 while 循环 + 几个简单的"工具",却能自己完成这个任务:

“帮我看看北京明天天气,下雨的话提醒我带伞。”

到时候你会发现,它跑起来的每一步,都能对上今天讲的循环:

轮次思考行动观察
1先查北京明天的天气查天气(北京, 明天)小雨,18-22℃
2要下雨,提醒用户带伞结束

框架只是包装,循环才是原理——下一篇我们亲手把它写出来。

本系列路线(从 0 到 1):Agent 是什么 → 手写最小 ReAct → Function Calling 与工具设计 → 上下文管理 → Memory 记忆系统 → RAG 知识库 → Skill 自学习 → 编排模式与多 Agent → 给 Agent 装护栏 → 生产部署与可观测 → 评测与回归

http://www.cnnetsun.cn/news/3791606.html

相关文章:

  • Spring Boot整合XXL-Job:从零到一构建分布式任务调度系统
  • 血压预测数据集全解析:从MIMIC、UCI到PPG信号处理实战
  • C#工业上位机驱动开发:从TCP通信到运动控制板卡集成实战
  • 零基础入门CTF:Web、Misc、Crypto实战指南与MoeCTF2025通关攻略
  • Nginx user指令警告解析:进程模型、权限配置与安全实践
  • SQL-LABS_Less18-20实战攻略
  • AI+PlatformIO+ST-Link:STM32驱动HC-SR04的现代开发实践
  • 用Google Search Console数据做内容审计:找出网站上哪些页面在“吃白饭“
  • Unity Input System 2024跨平台开发指南:核心概念、实战配置与性能优化
  • ai--------实验
  • C/C++:预处理详解
  • 开源机械臂LeRobot SO-101与GR00T模型在Jetson AGX Thor上的部署实践
  • PKCS#7/CMS数字签名详解:从原理到实战排查指南
  • SQL注入实战:从原理到靶场通关的完整修炼指南
  • Mojo:专为AI而生的“Python++”,能否真正挑战CUDA与C++的统治地位?
  • Vision Pro核心场景解析:从空间计算到躺姿使用的舒适性优化
  • MIT与Apache许可证详解:如何为开源项目选择合适协议
  • 树莓派Zero W极简系统构建:从Alpine Linux到定制化Package E
  • Python模块:包package的概念与__init__.py文件
  • 阵列信号处理核心原理与工程实践:从波束形成到DOA估计
  • Java学习day02
  • 电控与数字电源职业选择指南:技术栈、前景与薪资对比
  • Python批量处理良率数据:自动生成缺陷分析报表
  • 基于改进电流解耦与电位平衡的 T 型三电平逆变器低电压穿越研究(Simulink仿真实现)
  • 从零搭建高性能《我的世界》BedWars服务器:核心原理、配置优化与工程实践
  • 图像边缘检测实战:Sobel、Prewitt与Canny算法原理与应用对比
  • 构建跨平台动漫应用:Mikan Project 完整开发指南 [特殊字符]
  • ScanTailor Advanced终极指南:5分钟掌握专业文档扫描处理
  • 16-Pod 身份与认证机制
  • DRAM内存寻址与容量计算全解析:从芯片颗粒到内存条标签