ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

从LLM到Agent:AI从“会说”到“会做”的必然进阶与工程实践

从LLM到Agent:AI从“会说”到“会做”的必然进阶与工程实践 去年有个朋友跟我聊AI他说了一个挺有意思的观察ChatGPT刚火那阵大家天天跟它聊天问它各种问题觉得这东西真神了。但新鲜劲一过问题就来了——“聊天”解决不了实际问题让它写周报可以让它把周报发了不行让它去订个会议室更是不可能。他问我这东西离真正“干活”还有多远我的回答是ChatGPT这类产品解决的是“LLM大语言模型会说”的问题而下一步所有AI产品要解决的都是“Agent智能体会做”的问题。从LLM到Agent不是某家公司灵机一动想出来的新概念而是整个AI行业在成本和需求双重压力下必然会走到的一站。这篇文章我就想把这个“必然性”讲透LLM和Agent到底差在哪为什么执行时代绕不开以及现在作为开发者或普通用户怎么赶上这趟车。1. LLM是嘴Agent是手先搞清楚这俩到底差在哪1.1 聊天对话本质上是在办公室真正做事却要跑出办公室先给一个最直白的类比。LLM就像一个知识渊博的顾问你问他任何问题他都能给你一套逻辑通顺、措辞得体的回答。但顾问有个特点他只对“说话”负责不对“结果”负责。你问他怎么开一家咖啡店他能给你列出选址、设备、供应链、人员管理几十条建议但下一个动作——帮你查一下附近哪个铺面在出租、帮你联系供应商问报价、帮你在工商系统里提交材料——他就完全做不了。这就是LLM的真实能力边界。它的本质是一个基于海量文本训练出来的概率模型输入一段文字输出下一段最合理的文字。所有的知识、推理、创作最终都落在“生成文本”这一个动作上。你可以让它生成一段Python代码但运行代码、看报错、改bug、再运行这一整个闭环它做不了除非外面套一层东西帮它执行。而这“外面套的一层东西”就是Agent。1.2 Agent在LLM外面多包了什么我看了下目前社区里对Agent的讨论大家比较公认的结构是Agent LLM大脑 工具手脚 记忆经验 规划策略 执行闭环干活的流程。LLM负责理解用户意图、做决策推理、生成计划。工具Tool Use/Function Calling这是Agent和纯LLM最本质的分水岭。Agent通过调用API、执行代码、操作浏览器、读写文件等方式真正去改变世界。记忆短期记忆保证多轮对话的上下文连续长期记忆通常靠向量数据库RAG增强让Agent能记住用户偏好和历史经验。规划把一个复杂任务拆解成多个步骤每一步调用合适的工具根据中间结果调整下一步方案。执行闭环Agent跑起来不是一条路走到底而是“执行—观察结果—再决策—再执行”的循环直到任务完成或主动放弃。你可以这样理解LLM是那个只会嘴上说“你应该怎么怎么做”的顾问Agent则是顾问配了一个手脚麻利的助理。顾问动嘴助理动手。没有助理顾问的建议永远停留在PPT层面有了助理建议才能真正变成结果。这也是为什么我说LLM是“嘴”Agent是“手”。过去两年大家疯狂卷模型的对话能力、写作能力、推理能力本质上是在把“嘴”磨得越来越利。但随着应用场景深入所有人都会撞到同一堵墙光会说不解决营收问题不解决效率问题不解决那个“谁来帮我把文件处理完”的问题。于是行业集体转向给LLM装“手”。1.3 一个很容易被忽略的细节执行层才是用户能感知的部分很多人问那我不关心底层是LLM还是Agent我只关心用起来有什么区别。这里有一个实际体感上的差别用户对纯LLM的宽容度很高它对一个任务“说得不好”你顶多觉得它不够聪明但用户对Agent的容忍度非常低因为Agent的任务是“做完”做一半、做错了、做偏了用户会有非常直接的挫败感——“让你发邮件你居然把附件发错了人”。这也是为什么Agent开发比单纯的LLM应用开发更强调工程化。模型能力下降一点Agent可以通过好一点的规划来弥补但工程链路不扎实Agent连“稳定地做成一件小事”都保证不了。我见过不少团队用同一个LLM做应用有的做得像智能助手有的做得像人工智障差别全在Agent这一层也就是执行层的设计。2. 一定会走向执行时代的三个底层原因2.1 成本结构决定了“只说不动”没有商业未来很多人讨论技术趋势喜欢聊理想、聊可能性但我这个人比较务实先看钱从哪来。过去两年各大厂商卷LLM卷的是什么是上下文长度、是推理能力、是跑分。这些能力确实在提升但企业客户那边算的账是另一本我买了你的API到底帮我省了几个人力或者多赚了多少钱如果AI只是停留在“聊天”层面它是成本中心不是利润中心。企业HR不会为了“员工和AI聊天聊得开心”买单。但当AI升级成Agent能自己查库存、自己生成采购单、自己跟进审批流这就变成了直接替代人工操作的生产力工具。我身边真实发生的案例一个做跨境电商的朋友之前每天要花3个小时处理客服邮件后来用Agent搭了一个自动回复自动创建售后工单的小系统现在每天只需要花20分钟检查Agent处理不了的异常单。他说了句特别真实的话模型再聪明如果最后还是要我手动复制粘贴到后台系统里那对我没有意义。这个需求一出来你就知道执行时代是必然的。2.2 用户对“完成”的容忍度在快速下降从互联网产品的演进史能看到一条非常清晰的路径从信息检索搜索到信息生成LLM对话再到任务执行Agent。用户的心智模式变化很快。最开始大家用搜索引擎搜出一堆链接自己点开、自己读、自己总结后来用ChatGPT直接给出答案省掉了自己读网页的环节但很快大家就会不满意——答案虽然有了但“做完”还差十万八千里。我让AI帮我做个PPT它给我一份大纲我觉得很好但能不能直接生成PPT文件能不能配好版式能不能导出发给我这种心理几乎是一种本能既然AI能理解我要什么为什么不能顺便帮我把事情办了当用户一旦产生了“帮我办”的预期纯文本输出就再也回不去了。Agent正是顺着这个用户预期演进出来的产物。2.3 Agent是LLM能力的杠杆放大器最后一个原因我是从技术效率角度看的。单次LLM调用哪怕再强产出的也只是信息。但信息本身是不产生直接价值的行动才产生价值。Agent让LLM产出的计划和文本通过工具调用直接作用于真实世界——发邮件、改代码、调接口、操作Excel、控制设备。打个比方一个人口才再好一天能说服多少人是有极限的但如果他的指令能驱动一条自动化流水线那影响的就是整个工厂的产能。Agent就是那个把“一个人的智慧”放大成“一条流水线执行力”的杠杆。这也是为什么今天各大厂都在推自己的Agent框架、Agent平台——因为这个杠杆太猛了。谁掌握了Agent的编排层谁就掌握了LLM能力通往真实场景的入口。你可以说是商业竞争驱动了Agent爆发但我更愿意说是技术成熟度和市场需求同时到达了临界点Agent作为最高效的“能力放大器”自然会成为行业重心。3. Agent开发框架里真正决定体验的四个组件聊完趋势我来点实操层面的东西。现在网上一搜“Agent开发”能搜出一堆框架看得人眼花缭乱。但说实话不管框架怎么换底层要处理的组件就那几样把它们理解了换什么框架都只是API不同而已。3.1 Tool Use接入外部世界的那只手Agent第一次“破圈”脱离聊天框靠的就是Tool Use也叫Function Calling。原理不复杂LLM在生成回复时除了输出文本还可以输出一个“调用工具”的意图比如识别出用户想查天气就会生成一个get_weather(city北京)的函数调用Agent框架接住这个意图执行真正的API请求把结果塞回给LLMLLM再组织成自然语言回复用户。这个循环看起来简单但它是Agent所有能力的地基。我举个具体的例子订咖啡用户说“帮我订一杯冰美式送到公司前台”。Agent里的LLM先识别意图调search_menu()找到“冰美式”。再调check_price()和check_delivery_zone()确认能否配送。让用户确认订单调create_order()。成功后调get_order_status()反馈给用户。每一步都是一个小工具调用LLM负责“决定调哪个、按什么顺序调”Agent框架负责“真正把工具跑起来”。所以你的Agent好不好用一半看LLM聪明不聪明另一半看你接的工具顺不顺手、返回的数据结构规不规范。Tool Use设计里最容易翻车的点工具的参数说明写得不够清楚。LLM是靠工具描述来理解“这个工具能干什么”的如果你把一个工具描述写得模棱两可模型就会在多个工具之间犹豫不决或者传了错误的参数。我的建议是每个工具的描述里一定要写清楚这个工具是干什么的、每个参数的类型和含义、常见错误条件下的返回值。把工具当API文档写模型的表现会明显上一个台阶。3.2 Memory短期和长期记忆决定Agent聪明不聪明没有记忆的Agent就像金鱼用户上一句说“我要去上海出差”下一句问“那帮我看看那边的酒店”它完全忘了上海这回事这种体验是不可能被接受的。Memory分两层短期记忆就是对话历史直接塞进上下文窗口。现在主流LLM上下文都很大短会话没问题但长会话要处理裁剪和摘要不然上下文一长成本和延迟都会飙升。长期记忆保存跨会话的用户偏好和关键事实。通常的做法是把用户信息向量化存进向量数据库新对话开始前做一次语义检索把相关的历史记忆捞出来拼进Prompt。这就是RAG增强LLM的典型用法。在你需要给Agent做长期记忆的时候不要一上来就整高深的向量检索。我见过很多项目其实只需要用JSON文件存几个用户偏好字段就够用了结果非要上向量数据库运维成本翻了好几倍。先想清楚你的Agent到底需要记住什么、记住多久、遗忘策略是什么再去选存储方案。记忆不是越多越好记了一堆垃圾信息反而会干扰Agent的判断。3.3 Planning与反思从“一步到位”到“多步拆解”早期很多LLM应用是一个Prompt搞定用户说一句模型回一段。但真实任务往往是多步骤的用户说“帮我整理这周所有客户的跟进记录做成周报发到邮箱”这中间至少涉及读取CRM、筛选记录、归纳总结、生成文档、调邮件API发送五个步骤。一步到位地让LLM生成一个周报内容不难难的是它得自己知道该先去取数、再整理、再发邮件。这时候就需要Planning。主流的做法有两种ReAct模式推理行动循环和Plan-and-Execute模式先定计划再逐步执行。ReActAgent边想边干每走一步都根据当前观察结果来决定下一步。优点是灵活、能应对突发变化缺点是慢Token消耗大。Plan-and-ExecuteAgent先把完整计划列出来然后按计划逐条执行执行完再评价结果。优点是效率高、可控缺点是中间如果出现变数整个计划可能要推倒重来。实际项目里我建议先快速试ReAct跑通了再考虑做优化。因为ReAct实现起来最简单每个主流的Agent框架都内置了支持Plan-and-Execute听着高级但计划拆得不好后面每一步都在还债。另外一定要给Agent设计“反思”环节。执行完一个任务之后让它自己评价一下结果质量哪里没做好、下次怎么改进。很多团队忽略这步导致Agent每次都在同一个地方犯错。加上一个简单的自我反思Prompt错误率肉眼可见地下降。3.4 编排层把Agent从单人操作变成团队协作单个Agent搞定简单任务没问题但复杂工作流往往需要多个Agent协作——一个负责理解需求一个负责执行查询一个负责质量检查。这种多Agent协作的调度逻辑就是编排层Orchestration。我看到热搜里有人搜“harness和agent区别”这里可以顺带说一下。Harness在AI Agent语境下通常指“让Agent跑起来的控制框架”包含执行环境、工具调用、状态管理、错误处理这些底层能力而Agent本身更偏重“决策与行动的逻辑”。打个比方Agent是司机Harness是车和方向盘二者配合才能把用户送到目的地。编排层的核心难点是任务拆分和结果汇总。任务拆得太细Agent之间通信开销大拆得太粗单个Agent干不了。我的经验是先让用户自然表达意图通过LLM判断任务复杂度简单任务单Agent直接跑复杂任务才走多Agent流水线。不是为了“多Agent”而多Agent那纯属增加复杂度。我见过最实用的多Agent协作模式是“主管专员”模式主管Agent负责理解用户需求、做规划、把关最终输出专员Agent各管一块专业领域比如一个专门调数据库、一个专门做文档排版、一个专门检查合规风险。主管把任务分下去拿到结果再统一整合。这种结构在客户服务、内容生产、数据分析等场景落地特别顺。4. 现在想上手Agent最顺的几条路我知道光聊原理读着读着就容易困。这一节上点能直接动手的东西。无论你是程序员还是非技术背景现在都有对应的路径能跑起来自己的Agent不必等“时机成熟”再入场。4.1 开发者路径从Codex CLI到Agent框架如果你是开发者上手成本其实很低。2025年有一个很明显的趋势Agent开发能力正在下沉到命令行。比如当今很火的Codex CLI这类工具就是把你本地代码库当作Agent的上下文然后让LLM直接规划并执行代码改动、跑测试、修bug等于给LLM装了一双操作你电脑的手。我自己试过用Codex类的CLI工具处理一个内部脚本的重构。给它一个命令说“把这个脚本从Python 2语法升级到Python 3并保证测试通过”它会自己列出改动计划、逐文件修改、跑测试遇到测试挂了还会自己回滚重试。整个过程像一个远程结对编程的同事。这种工具的底层就是Agent只是它把Agent封装成了开发者最熟悉的命令行交互模式。再往上一步就是用Agent框架构建更复杂的应用。目前社区里比较流行的包括LangChain、LlamaIndex、AutoGen、CrewAI等等。以LangChain为例内置了各种工具集成、记忆管理、Agent构建模块官方文档也养得很壮新手照着文档搭一个最简单的“上网搜索生成摘要”的Agent半小时就能跑通。我的建议是不要一开始就追求用最花哨的框架。先用最朴素的代码把Agent的逻辑写明白——定义工具、循环调用LLM、处理工具返回、判断是否结束。等你亲手写过一遍这个循环你对Agent的理解会超过那些只会套框架的人一大截。4.2 非开发者路径Dify这类可视化编排平台如果你不会写代码也不用慌。像Dify这类可视化Agent编排平台已经做到了“拖拖拽拽就能搭Agent”。在使用Dify的时候核心流程大概是先接一个大模型的API比如GPT系列或国产开源模型然后配置工具节点比如HTTP请求、数据库查询、知识库检索再设置对话流程的走向什么条件走哪个分支最后发布成一个对话界面或API接口。我看到热搜里有人在问“dify里的llm怎么设置”这里说一下我常用的配置顺序模型选择先看你要跑的任务类型简单问答用小参数模型延迟低、成本低复杂推理或工具调用密集的任务选能力更强的大参数模型。System Prompt设计这是最容易被低估的一步。把Agent的角色、能力、行为边界、遇到异常情况怎么处理都写在System Prompt里。Prompt写不清楚后边怎么调都别扭。工具调试每个工具接进来之后先单独测试一遍确认返回数据正常再串进工作流。很多人上来就把五个工具全接好一跑就报错根本分不清是哪个环节出的问题。输出设置需要模型输出结构化内容时让模型输出JSON后续节点好做解析和分支判断。对于非开发者的最简建议是先用免费的公共Agent应用各种AI助理、AI编程助手体验Agent的交互节奏然后在Dify这类平台上用“搭积木”的方式做一个小型自动化比如“每日自动整理行业新闻生成摘要推送到飞书/钉钉”。跑通一个小循环你才能真正体会到Agent的能力边界在哪而不是停留在看文章的空想层面。4.3 一个最简Agent Demo的拆解从输入到输出我用伪代码的形式描述一个最经典的Agent循环方便你理解无论用哪个框架底子都是这套逻辑function run_agent(user_input, tools, memory_store): messages memory_store.load(user_input) # 加载历史记忆 while True: response llm.chat(messages, toolstools) # 让模型决策可能包含工具调用意图 if response.tool_calls: for tool_call in response.tool_calls: result execute_tool(tool_call) # 执行工具调用 messages.append(tool_result(tool_call, result)) # 把结果塞回上下文 else: return response.text # 模型认为任务完成输出最终回答核心要义就一句话LLM决定框架执行结果回填循环往复。你把这个循环吃透了其他所有花哨的框架都是在给它加缓存、加记忆、加并发、加容错。我第一次在项目里亲手实现这个循环的时候最大的感慨是——Agent没有想象中那么神秘它就是一个“带工具的while循环”。但恰恰是这么简单的一个循环让AI产品第一次从“回答问题”迈向了“完成任务”。这个转变的意义怎么强调都不过分。5. Agent落地时常见的几个大坑讲完了怎么做我再讲讲哪些地方容易翻车。Agent开发比传统软件工程更容易掉坑因为Agent的行为是概率性的不是你写一行逻辑它就固定执行那行逻辑。5.1 工具权限边界模糊会让Agent“越权”这是所有Agent项目里最危险的问题。传统软件每个接口有严格的权限校验但Agent是动态决定调用哪个工具的如果你不限制工具的权限范围它可能拿着你的生产库权限去做危险操作。解决思路有两个层面最小权限原则给Agent的工具只开放本次任务所需的最小权限。比如做数据分析的Agent只给只读数据库账户绝对不给drop表的权限。让Agent发邮件就只开通草稿箱权限发送前先要人工确认。操作确认机制高风险操作发送、删除、修改必须加一道人工确认卡口。我认识一个做电商自动化团队给Agent加了“订单创建前找管理员审批”的流程虽然多了一步但把事故率降到了几乎为零。这也是所谓“屏幕上的一层保护垫”——你可以让Agent飞快地干活但碰到关键步骤必须要有一个“人进来点头”的环节。执行力和安全性之间永远要做权衡。5.2 幻觉在“持有执行权”时会被放大纯LLM的幻觉顶多让你读到一段胡编的答案一笑而过。但Agent的幻觉会让工具去执行一个瞎编的计划后果可能很严重。比如Agent在查询库存时幻觉出了一个不存在的SKU编号然后拿着这个编号去下采购单整条供应链就被污染了。我踩过一次很深的坑一个自动生成报告的Agent在引用客户名称时把两个名字相似的客户搞混了。因为这个错误出现在中间环节后期人工检查只看了汇总数据没有回查原始数据导致错误报告发出去。后来我们加了双重校验一开始工具返回的数据要做schema校验模型生成的关键字段也要跟源数据做交叉比对不一致就重新生成。所以你在设计Agent时一定要在关键步骤上做强制校验而不是全盘信任模型的输出。模型说得再自信工具返回的数据才是“地面真相”。坚持“工具先行、文本复盘”的原则能让Agent的可靠性上一个台阶。5.3 可观测性不足导致排查困难传统软件bug是确定性的出错了按日志逐行查Agent出错是概率性的这次错在这下次错在那没有日志你根本不知道它到底基于什么上下文做的决策。这就引出Agent工程化的一个重要命题可观测性。跑Agent的时候一定要记录完整链路包括每一步LLM的输入输出、工具调用的参数和返回值、决策分支的触发条件。市面上有一些专门的Agent观测平台也可以用LangSmith等工具做追踪。我自己的习惯是即使是最小的Agent Demo也先把日志打全。每轮循环都输出当前消息数、模型选择、调用了哪个工具、工具返回了什么、模型下一步决定是什么。有了这些日志出了任何问题你能很快定位到是上下文丢了、工具返回异常、还是模型跑偏了。没有日志的Agent项目排查问题的体验跟大海捞针一样。5.4 “每个人都会用”背后的新门槛问题拆解能力回到题目本身为什么每个人最终都会使用Agent我觉得不只是因为Agent技术会成熟更因为Agent的交互方式天然更接近人的协作方式。你不需要学编程不需要学API你只需要会说一句“帮我把这件事办了”Agent就能开始干活。这种交互门槛极低甚至比搜索引擎还低——搜索还需要你提炼关键词Agent只需要你表达目标。但我也要泼一点冷水会用Agent的人很多但用得好的人会形成明显的差距。差距不在技术而在问题拆解能力。同样让Agent“帮我做个市场调研”有的人能说清楚背景、目标、范围、输出形式Agent返工三次就交付了有的人需求含糊其辞Agent理解偏了来回折腾一天还没个结果。以前我们把这种能力叫“提需求的能力”现在它变成了“指挥AI干活的能力”。Agent越是普及结构化表达、明确目标、拆解任务、验收入口这些能力就越值钱。这不是技术门槛而是一种通用的“AI协作素养”。我在实际使用中的体会是和Agent打交道更像带一个新来的实习生。你不能只说“把这件事处理好”你得告诉它背景是什么、优先级是什么、边界在哪、遇到什么情况要停下来问人。你把“实习生”带顺了它给你的回报远超一个简单的搜索工具。这大概是过去一年我在Agent实践里最重要的一条心得。回到最开始那个朋友的问题——AI离真正“干活”还有多远我的看法是从LLM到Agent中间那堵墙正在被快速拆掉。也许用不了多久“让AI办件事”就会跟“发条微信”一样普通。到那时候再回看这篇文章你会庆幸自己早一步看懂了这一天为什么会来。
返回列表