我觉得“Agent”这个词,现在终于有了一个大家都认可的定义了

作者:Simon Willison

最近这几个星期,我发现了一个挺有意思的变化:我在聊天时,开始频繁使用“Agent”这个词,而且不再需要特意解释一下,或者尴尬地加个引号了。

这对我来说算是个人性格上的一次大升级了!

从现在起,我讲到“Agent”的时候,用的都是这个定义:

一个 AI Agent(智能体),是为了实现某个目标,循环调用工具的大语言模型(LLM)。

之前我为什么不爱用“Agent”?

说实话,这几年来我一直都挺抗拒“Agent”这个词的。每次听到别人兴致勃勃地讲着“Agent”时,我脑子里就会想:“又来了,又是一堆人拿着个流行词汇,讲得天花乱坠,但其实心里想的根本不是同一个东西。”

甚至为了搞清楚这个词到底是什么意思,我在Twitter上众包了整整211个定义,用Gemini大模型分成了13个不同的群组。

为什么大家这么难统一一个定义?其实早在1994年,Michael Wooldridge在《智能体:理论与实践》里就说了:

“Agent到底是什么?”——这个问题让做智能体的人觉得很尴尬,就像“智能到底是什么?”这个问题让AI社区尴尬一样。大家都在用这个词,却始终没办法统一出一个大家认可的定义。

如果一个词汇连定义都统一不了,那用它交流反而是帮倒忙,只会让人越听越糊涂。

不过,在最近AI开发圈里,我觉得情况终于有所好转了。至少,我们能用一个普遍接受的定义来有效沟通了。

什么是“工具循环实现目标”?

大语言模型(LLM)智能体的定义很简单:

它会不断调用一组工具,循环执行,以实现特定目标(Tools in a loop to achieve a goal)。

我们一点一点拆开来看:

  • 首先,“工具循环”(tools in a loop)这个概念已经流行了很长一段时间,尤其是Anthropic公司很喜欢用这个概念。这种模式甚至已经直接集成在了很多LLM的API里,比如工具调用(function calls)接口。大模型会要求外部执行一些动作,外部再把结果反馈回来,模型再继续推理,一步步实现最终目标。

  • 其次,“实现特定目标”意味着这个循环并不是无限的,一定会有一个结束的条件。

我之前还纠结过,是不是应该再强调一下这个目标是“由用户设定”的呢?但后来想想,其实不需要这么具体。因为已经有很多情况下,目标不一定是用户直接设定的。比如Claude Code和Claude Research这类的子智能体(sub-agent)模式,目标就可能是另一个LLM智能体设定的。

和非技术圈的人聊“Agent”还是得小心点

当然了,现在还是有很多别的定义。比如你如果和非技术领域的人聊“Agent”,他们可能一下子就联想到旅行代理人(travel agent)、销售代理人,或者干脆觉得就是“自动化员工”了。在这种情况下,最好还是先弄清楚对方到底在说什么,否则你们聊着聊着发现根本不是同一个东西。

从此以后,我听到一个技术人员告诉我他在做一个“Agent”,我就默认认为他是在用LLM串联工具,以循环方式实现目标。

有人可能会坚持认为:“Agent”必须要有记忆功能(memory)才算。但其实,“工具循环”的模式本身就有一定的短期记忆:LLM和工具调用之间有上下文的对话,这个对话本身就能形成短期记忆,帮助实现当前的目标。

如果你还想要长期记忆的话,最简单的方式其实就是再额外加一套工具来实现!

企业高管眼里的“Agent”还是有点跑偏

如果你去问商业圈的高管们:“你们公司的Agent战略是什么?”那他们很可能想到的是“AI代替人工”。比如“客服Agent”、“销售Agent”、“财务Agent”这些。

但问题是,这类幻想目前大多还只是科幻小说里的场景。如果你真把希望放在这种“一个智能体代替一个人类员工”上,那你大概率会非常失望。

原因很简单,人类员工有一个关键的特质,那就是 “责任承担能力”(accountability)。他们可以为自己的行动负责,也可以从错误中吸取教训。你总不能把一个AI智能体送去“绩效提升计划”(Performance Improvement Plan)吧?

有意思的是,人类还有另一个重要特质叫做 “自主能动性”(agency)。人类能主动设定目标,并为此承担责任。而AI智能体虽然名字叫“Agent”,却一点都没有真正的agency!

有一张1979年IBM经典的培训幻灯片,清晰地讲明了这个道理:

一台计算机永远无法承担责任,因此计算机绝不能做管理决策

OpenAI还是没想明白“Agent”到底是什么

目前在“Agent”定义上搞得最混乱的,其实反而是OpenAI公司自己。

OpenAI的CEO Sam Altman很喜欢把Agent定义为“可以独立替你工作的AI系统”。今年7月,OpenAI发布了“ChatGPT Agent”,但其实是一个自动化浏览器功能;而今年3月他们发布的Agent SDK,倒是更接近于我们刚刚讲的“工具循环”的定义。

不过现在OpenAI要统一他们的定义可能已经晚了,反正我决定忽略他们的混乱定义,直接用我的“工具循环”这个定义了。

甚至有人做了个梗图来描述这个现象

Josh Bickett在2023年发过这样一个梗:

什么是AI智能体?

Agent的迷惑梗图,从极简到极复杂再回到极简

看起来,我总算是从这个梗图的左边走到了右边。


上一篇文章: 我对Claude新发布的代码解释器(Code Interpreter)的评价