当AI开始思考的那一刻
你问ChatGPT一个问题,它给你答案。
你问Agent一个问题,它开始计划。
这就是全部的区别。
一个会自己拆解任务的程序
去年有个程序员在推特上发了张截图。他让GPT-4帮他订机票,模型回复了一段完美的攻略,步骤清晰,逻辑严密。然后他又让一个Agent做同样的事,结果Agent打开了浏览器,搜索了航班,比对了价格,甚至尝试进入支付页面,最后因为没有绑定信用卡才停下来。
这个差异来自Agent的核心架构。斯坦福大学在2023年的论文《Generative Agents》里把它拆成了三个部分,感知模块Perception、记忆模块Memory、行动模块Action。普通LLM只有一个推理引擎,你给它输入,它给你输出,中间没有任何停顿和思考的空间。但Agent在接收到任务后,会先把任务拆解成子目标,然后依次执行,每一步都会根据环境反馈调整策略。
感知模块负责接收外部信息,不只是文字,还包括API返回的数据、数据库的查询结果、甚至是视觉模型处理后的图像。记忆模块分为短期记忆和长期记忆,短期记忆存储当前对话的上下文,长期记忆则通过向量数据库保存历史交互,让Agent能够记住你上个月提过的需求。行动模块是执行层,它把模型的输出转化为具体操作,调用工具、写代码、发送请求。
普通LLM应用是一次性的问答,Agent是一个持续运行的系统。
那些被反复调用的函数
你在用Claude写代码的时候,它会一次性给你一段完整的程序。但如果你用的是一个Code Agent,比如GitHub Copilot Workspace,它会先读你的项目结构,然后问你要改哪个模块,接着自己去找相关的文件,修改代码,运行测试,如果测试失败还会自己debug。
这背后是ReAct框架在起作用。加州大学伯克利分校的研究者在2022年提出这个概念,全称是Reasoning and Acting。Agent不是一口气完成任务,而是在推理Reasoning和行动Acting之间反复切换。每一步行动后,它会观察结果,然后决定下一步做什么,这个循环可能持续几十次甚至上百次。
普通LLM的推理是线性的,从输入到输出,一条路走到底。Agent的推理是树状的,每个节点都是一个决策点,可能分叉出多个路径,然后根据反馈剪枝,最终找到最优解。这种结构让Agent能够处理复杂的多步骤任务,比如数据分析、代码重构、甚至是科研实验的设计。
OpenAI在2024年的技术报告里提到,GPT-4在使用ReAct框架后,多步推理任务的准确率提升了37%。代价是推理时间变长,token消耗增加,但换来的是真正的问题解决能力。
记忆不只是上下文窗口
去年有个用户在Reddit上分享了他的经历。他用一个旅行规划Agent安排了一次欧洲行程,三个月后他又用同一个Agent规划亚洲行程,结果Agent主动提醒他,你上次在巴黎的酒店预订出了问题,这次要不要换个平台。
这个功能来自长期记忆机制。普通LLM的记忆只存在于当前对话的上下文窗口里,窗口关闭,记忆清零。Agent的记忆是持久化的,通过嵌入模型把历史交互转化为向量,存储在专门的数据库里,比如Pinecone或者Weaviate。每次新对话开始,Agent会先检索相关的历史记忆,提取出有用的信息,注入到当前的推理过程中。
斯坦福的研究团队做过一个实验,他们让25个Agent在一个虚拟小镇里生活,每个Agent都有自己的记忆系统。两周后,这些Agent形成了社交网络,有的成了朋友,有的产生了矛盾,甚至还有Agent自发组织了一场生日派对。记忆让Agent从工具变成了有状态的存在。
但记忆也带来了新问题。如何判断哪些记忆值得保留,哪些应该遗忘,这是当前研究的热点。谷歌DeepMind在2024年提出了一种基于重要性评分的遗忘机制,模拟人类大脑的记忆衰减过程,让Agent不会被无用信息淹没。
工具是Agent的双手
你问Claude怎么分析一份Excel表格,它会告诉你用pandas怎么写代码。你问一个Data Agent同样的问题,它会直接读取你的文件,运行分析,生成图表,然后把结果发给你。
区别在于工具调用Tool Use。普通LLM只能生成文本,Agent可以调用外部工具。这些工具可能是Python解释器、搜索引擎、数据库查询接口、甚至是其他的AI模型。Anthropic在Claude的最新版本里加入了原生的工具调用能力,模型可以自主决定什么时候需要调用工具,传递什么参数,如何解析返回结果。
LangChain框架把工具调用标准化了。开发者只需要定义工具的输入输出格式,Agent就能自动学会使用。一个典型的工具定义包括名称、描述、参数列表和返回类型。Agent在推理过程中,会根据当前任务需求,从工具库里选择合适的工具,组合成执行链。
微软的研究显示,配备了代码执行工具的Agent,在数学推理任务上的表现超过了纯文本推理的模型40个百分点。原因很简单,有些问题必须通过计算才能得到准确答案,光靠语言推理容易出错。
当Agent开始犯错
去年有个开发者在GitHub上发了个issue,他的Agent在处理一个数据清洗任务时,陷入了死循环。Agent发现数据有问题,尝试修复,修复后再次检查,发现还有问题,于是再修复,如此反复,直到token用完。
这暴露了Agent的脆弱性。普通LLM出错,最多给你一个错误的答案。Agent出错,可能会执行错误的操作,删除文件、发送错误的请求、甚至花掉真实的钱。OpenAI在部署Agent系统时,专门设计了沙箱环境和回滚机制,确保Agent的行为可控。
另一个问题是幻觉Hallucination。Agent在推理过程中,可能会生成不存在的工具、编造虚假的数据、或者误解任务目标。Anthropic的研究表明,Agent的幻觉率比普通LLM高30%,因为推理链越长,错误累积的可能性越大。
目前的解决方案是人类在环Human-in-the-loop。在关键决策点,Agent会暂停,等待人类确认,然后再继续。这降低了自动化程度,但显著提升了可靠性。某种程度上,Agent还没有完全准备好独立工作。
一个尚未完成的进化
Agent和LLM的区别,不是技术上的,是哲学上的。
LLM是一个预测引擎,它学会了语言的统计规律,能够生成流畅的文本。Agent是一个目标导向的系统,它不只是生成答案,而是要达成某个目的。这个转变意味着AI从被动响应变成了主动行动,从工具变成了某种意义上的代理。
但Agent依然受限于它的训练数据和推理能力。它不会真正理解任务的意义,只是在执行一套复杂的模式匹配和规则应用。当任务超出训练范围,Agent会暴露出惊人的脆弱性,就像一个严格遵循SOP的员工,遇到手册里没有的情况就不知所措。
斯坦福大学的教授Fei-Fei Li在2024年的演讲里说了一句话,Agent是AI走向通用智能的必经之路,但它现在还只是刚刚学会走路的孩子。
也许有一天,我们会看到真正自主的Agent,它们能够理解复杂的人类意图,处理开放式的问题,甚至在没有明确指令的情况下主动发现和解决问题。但那一天还没到来。
现在的Agent,更像是一个有点聪明的助手,它能帮你做很多事,但你必须看着它,确保它不会走偏。这也许是最合适的状态,我们需要的不是完全自主的AI,而是能够增强人类能力的工具。
毕竟,最好的技术,应该让人更像人,而不是让机器更像神。
#聊聊Agent开发#大家好,我是不惑。秉持化繁为简的创作理念,把那些看似高深的技术概念,变成人人都能读懂的故事。在这里,您将收获的不仅是知识,更是一种理解技术的新视角。
查看10道真题和解析
腾讯公司福利 1660人发布