如果你去问三家 AI 公司他们的 Agent 产品是什么,你会得到三个完全不同的答案。OpenAI 说 Agent 就是能调用工具的 LLM;Anthropic 说,且慢,大部分你们所谓的 Agent 根本不是 Agent,只是预设的工作流;LangChain 却在文档里轻描淡写:Agent 就是一种用 LLM 决定控制流的系统。三个定义,一个比一个抽象,一个比一个让人困惑。我最早以为 Agent 就是个能自动完成任务的聊天机器人,直到有一天我同时看了这三家的文档,才发现他们对“什么是 Agent”这件事,连基本共识都还没完全达成。

但诡异的是,如果你仔细读他们的技术文档和产品,会发现他们其实在说同一件事——只是从不同层次、不同视角切入。这篇文章,我试图把这三家的定义摊开,然后找出那个被所有人默认接受、但很少被说透的“核心共识”。
OpenAI:Agent 就是 LLM + 工具 + 指令
OpenAI 对 Agent 的定义最直白也最工程化。在 OpenAI Agents 文档 里,第一句话就是:“An agent is a large language model (LLM) with instructions and tools.” 翻译过来:Agent 就是一个带指令和工具的大语言模型。这个定义几乎没有门槛:你给 ChatGPT 加上一个搜索工具,它就是 Agent;你让它能调用代码解释器,它就是 Agent。OpenAI 后来推出的 Assistants API 和 Agents SDK 都是沿着这个思路:把工具调用、状态管理、多轮对话打包成一个“Agent 运行时”,让开发者可以快速搭建。
这个定义有它的好处——简单、可操作。但问题也很明显:如果任何一个能调用工具的 LLM 都叫 Agent,那 Agent 这个词就失去了区分度。一个带搜索插件的 ChatGPT 和一个能自主规划、反思、多步执行的系统,完全不是一个级别的东西,但按 OpenAI 的分法,它们都叫 Agent。我一开始觉得 OpenAI 太懒惰了,后来才意识到,他们是从产品角度出发的:他们想让你觉得,只要用了他们的 API,你就能轻松拥有“Agent”。这是一种商业上的包容性定义,而不是技术上的严格分类。
Anthropic:工作流和真正的 Agent 是两码事
Anthropic 的态度截然相反。在 2024 年底发布的 Building effective agents 文章中,他们花了大量篇幅强调一个观点:大多数被吹成“Agent”的系统,其实只是“工作流(workflow)”。工作流是通过预定义代码路径来编排 LLM 和工具,而真正的 Agent 是让 LLM 动态地指导自己的过程和工具使用,对自己的任务完成方式保持控制。用他们的话说:“Agents are systems where an LLM dynamically directs its own processes and tool usage, maintaining control over how it accomplishes tasks.”
这个区别很关键。工作流就像一条流水线:第一步做 A,第二步做 B,第三步做 C,LLM 只是在每个步骤里被调用一下。而 Agent 没有硬编码的路径,它自己决定什么时候该做什么,能根据中间结果调整计划。Anthropic 甚至给出了一个简单粗暴的判断标准:“如果系统里 LLM 只是被用来执行预定义的步骤,那它就不是 Agent。” 这相当于把 OpenAI 定义里的大部分“Agent”都划到了工作流范畴。我一开始觉得 Anthropic 有点学究气,但仔细一想,他们是对的——如果不区分控制权的归属,我们就没法讨论 Agent 的可靠性、安全性问题。因为一个真正自主决策的系统,和一个按照剧本走的系统,失控的风险完全不同。
LangChain:Agent 是控制流决策者,连工具都可以没有
LangChain 作为中间件框架,对 Agent 的定义又抽象了一层。在 LangChain 文档 中,Agent 被定义为:“An agent is a system that uses an LLM to decide the control flow of an application.” 它只关心一件事:控制流由 LLM 决定。至于工具有没有、外部环境怎么交互,那是另外的概念。LangChain 把“工具”和“Agent”解耦了:Agent 是大脑,工具是手脚,两者可以独立设计。
这个定义比 Anthropic 的更宽泛,但又比 OpenAI 的更精确。它不要求系统必须有工具,甚至不要求系统必须自主完成一个任务——只要 LLM 决定了下一步走哪个分支,那就是 Agent 行为。我一开始觉得这太宽泛了,但后来写一个简单的多轮对话路由时,突然理解了:一个根据用户意图把请求分发给不同处理器的 LLM,其实就符合这个定义。它没有工具,没有多步推理,但它确实在动态决定控制流。LangChain 的定义把 Agent 从“高级 AI”的神坛上拉了下来,让它变成了一个纯粹的控制流概念。
嘴上吵得凶,身体却很诚实:三家共享的四个核心共识
如果只看定义,你会觉得他们在各说各话。但如果你去看他们实际构建的系统,会发现他们都默认接受了四个核心要素,只是没人把它们写在同一句话里。
共识一:LLM 是决策引擎。无论哪家,Agent 的“大脑”都是 LLM。它负责理解目标、分析上下文、推理出下一步行动。没有 LLM,就没有 Agent 的智能决策。这一点三家都承认,只是 OpenAI 把它放在定义最前面,Anthropic 强调它应该“动态指导自己的过程”,LangChain 说它“决定控制流”。
共识二:必须能与环境交互。交互的具体形式可以是工具调用、API 访问、代码执行,甚至只是输出文本并等待用户反馈。但 Agent 不能只活在真空里,它必须能感知环境变化并施加影响。OpenAI 的“工具”是显式要求,Anthropic 的工作流/Agent 都涉及工具,LangChain 的 Agent 虽然理论上可以没有工具,但实际用例里几乎都绑定了工具。
共识三:具备一定程度的自主性。这是 Agent 区别于传统聊天机器人的关键。自主性体现在系统能自己规划步骤、选择工具、处理错误,而不是执行一个写死的脚本。Anthropic 对自主性的要求最高,认为 LLM 必须全程保持控制;OpenAI 的自主性是通过工具调用和循环来实现的,虽然它不强调“动态指导”,但实际运行中 Agent 确实在自主决策;LangChain 把自主性提炼为“决定控制流”,本质一样。
共识四:目标是完成一个开放任务。Agent 不是问答机,它的使命是完成一个需要多步交互、有不确定性的任务。比如“帮我订一张下周三去纽约的机票,要最便宜的直飞”——这个任务需要搜索、比较、可能还需要询问偏好,中间有多个分支。三家都默认 Agent 是面向这种开放式目标的,而不是返回一个固定答案。
这四个要素——LLM 决策、交互能力、自主性、开放任务——就是那个被所有人默认接受的核心共识。你可以把 Agent 想象成一台自动驾驶的汽车:LLM 是司机,工具是方向盘和油门,自主性是司机自己决定路线,开放任务是“从 A 到 B”。至于你是叫它“能使用工具的 LLM”(OpenAI)还是“动态指导自己过程的系统”(Anthropic),只是标签不同。
为什么定义分裂?因为 Agent 是一个光谱,不是一个点
我困惑了很久才想通一件事:Agent 不是非黑即白的,它是一个连续的光谱。一端是纯工作流——所有步骤都是硬编码,LLM 只做填空。另一端是纯自主 Agent——LLM 接手一切,自己规划、执行、纠错,人类只给目标。在这之间,有无数的混合形态:主流程固定,但分支由 LLM 决定;工具调用固定,但调用顺序由 LLM 决定;人类在关键节点审批,其余自动。这三家公司之所以定义不同,是因为他们站在光谱的不同位置,瞄准不同的场景。
OpenAI 站在最靠近产品的一端,他们想让你觉得“加上工具就是 Agent”,这样门槛低,人人可试。Anthropic 站在最靠近安全的一端,他们强调“真正的 Agent 必须自主决策”,是为了提醒你:一旦系统能自己决定做什么,你就得考虑失控风险。LangChain 站在中间件的位置,他们需要一种抽象,能兼容光谱上所有的形态,所以定义得最宽泛。
这个光谱意味着,你不需要纠结“我这个系统到底算不算 Agent”。你只需要问自己:我的 LLM 在多大程度上控制着系统的行为?如果它只是偶尔被调用,那你做的是工作流;如果它全程掌舵,那你做的是 Agent。重要的是理解这个光谱,而不是选边站队。
FAQ:三个容易混淆的问题
Agent 和 RAG 有什么区别?
RAG(检索增强生成)是一种技术手段,用来给 LLM 接入外部知识库。Agent 是一种系统架构,用来让 LLM 自主完成任务。一个 Agent 可以用 RAG 作为它的一种工具,但 RAG 本身不是 Agent。很多声称“Agent 应用”的产品,其实只是 RAG 加一个固定流程,没有自主规划,属于工作流范畴。
Agent 和微调模型是什么关系?
微调是让模型更适合特定任务,Agent 是让模型在运行时自主决策。两者可以叠加:你可以微调一个模型,让它更擅长规划,然后把它用作 Agent 的“大脑”。但微调本身不产生 Agent 行为,Agent 的核心是控制流由模型动态决定,与模型是否微调无关。
现在的 Agent 能做到真正自主吗?
不能。当前的 Agent 在复杂任务中仍然容易迷失,出现循环、遗忘目标、幻觉等问题。Anthropic 的文章也建议从简单工作流开始,只有在确实需要时再引入自主决策。所以,绝大多数产品现在都停在光谱的中段——让 LLM 在有限范围内自主,而不是全盘托管。
如果你现在正在设计一个 AI 系统,我的建议是:先别管它叫不叫 Agent。先想清楚,你希望 LLM 在多大程度上控制系统的行为。0% 控制,那是传统软件;100% 控制,那是科幻里的 Agent;中间那 80%,就是我们现在能做的、最务实的 Agent 实践。三家公司的定义,其实都在帮你标注这个光谱上的刻度——只不过,OpenAI 把刻度画在了 10%,Anthropic 画在了 90%,LangChain 画了一张布满整个光谱的网格。
原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/47.html