
什么是 AI代理(Agents) ?
这篇文章是翔宇在测试 n8n 自动化工作流时翻译的优秀内容之一,并顺便发布到了翔宇的官网。作为一位长期关注 AI 与自动化技术的实践者,翔宇认为,这篇文章不仅系统性地梳理了“代理”这一概念的不同流派与多元视角,更以清晰且富有批判性的方式,提炼出了一个实用且稳健的定义框架。

原文地址:https://www.steampunkai.com/ai-fundamentals-agent-definitions/
作者:Steven Willmott
什么是代理(Agent)?定义众多,但我们能否将其简化为更基本的概念?
本文是我计划撰写的关于理解AI系统中基本概念的系列文章的第一篇。鉴于AI领域变化速度之快,很容易忽略基本原则,而一些术语似乎每周都有新的含义。
我们先从其中一个概念开始:代理(Agents)。
2025年显然是代理之年。大型语言模型(LLMs)的快速进步为我们带来了文本、图像甚至视频生成方面的惊人能力,但人们的兴奋点已转向那些超越生成功能、能够在数字或现实世界中采取行动的系统。
这种兴奋确实是有道理的。如果AI能够”采取行动”,其实用性将提高几个数量级。我们已经经历了多年的软件自动化,但其中大部分都是静态且脆弱的。为其注入更灵活的决策能力将创造巨大价值。这也非常难以做好(不过我们稍后会讨论这点!)
无论如何,自然而然的问题是”究竟什么是代理?”我们是指OpenAI对代理的定义?IBM的定义?还是Simon Willison在AI工程师大会上(由Swyx提供)众包得到的六大定义之一?

或者是其他定义?
对任何人来说,我认为这些定义虽然各有可取之处,但都存在一定缺陷,这应该不足为奇。同样不令人意外的是,之前已经有许多关于代理的定义,并且有一个专门研究多代理系统的研究领域。(我的第一篇主要会议论文发表于2000年在波士顿举行的第四届国际多代理系统会议上,该会议后来与其他两个会议合并成为至今仍在举办的AAMAS会议。)
作为额外内容,我们将在最后讨论多代理系统。
时光回溯
完整回顾代理的定义将花费大量时间来撰写和阅读,但可以说,从来就没有一个统一的定义。学术文献中的代理类型包括许多方面:
- 完全具身化的机器人,能够探索其环境。
- 市场模拟中的独立行为者简单模型,用于预测价格动态。
- 复杂的软件实体,具有内部知识表示和世界模型,使用标准化的代理语言进行通信。(KQML 和 FIPA-ACL 是两个最广泛使用的例子)。
- 非常简单的实体群体,能够自组织执行极其复杂的行为。
在许多人工智能会议的晚餐上,尝试确定”代理”的定义一直是热门话题。
今天的定义
快进到今天,我们面临定义爆炸的现象并不令人惊讶。我们现在拥有一套强大的新工具来构建代理,兴奋程度也很高。不过,我认为当前的定义中存在很多错误,要么过于复杂,要么严重偏离重点。
多种分歧的定义可能掩盖了构建代理系统(更不用说构建多代理系统这个难度更高的挑战!)的潜在挑战。
从本文上文引用的现代定义中(这些是我见过的现代时代最好的定义之一),以下是它们提到的一些关键要素:
- “代理是一个配备了指导其行为的指令、访问扩展其能力的工具,并封装在具有动态生命周期的运行时环境中的模型。”(它需要指令吗?它需要是一个模型吗?作为一个模型实际上意味着什么?)
- “能够自主学习、适应并为实现其指定目标而行动的应用程序。”(学习能力是关键吗?目标必须被指定吗?由谁指定?)
- “能够在现实世界中执行和完成长期、开放式任务的 AI 系统。”(任务需要是长期的吗?它们需要被完成吗?)
- “代理 = LLM + 记忆 + 规划 + 工具 + While 循环。”(我们需要记忆吗?我们真的需要 LLM 吗?或者规划?一个 FOR 循环后面跟着优雅退出怎么样?)
- “一个可以被信任代表我做出有影响力决策的系统。”(它必须代表用户行动吗?如果是代表自己呢?人类是代理吗?)
- “一个应用程序越具有代理性,LLM 就越决定应用程序的控制流。”(它需要是 LLM 吗?代理性是一个渐进斜坡还是二元状态?)
- “执行以前需要人类才能完成的非平凡、多步骤操作的 AI 系统组件。”(它们必须是非平凡的吗?对于人类一开始就无法完成的任务怎么办?病毒检查器是代理吗?)
这里的观点不是要否定这些定义。代理的概念确实难以定义,所有这些作者都尝试了给出定义。
实际上,我要说我非常喜欢这些定义,因为它们展示了注入当前技术潮流的核心本质的各个方面。历史定义常常因为很难想象软件系统可以像今天用 LLM 构建的那样强大而对代理持有更简化的”简单”视角。现代定义在某种程度上受到了相反问题的影响,即假设你需要像 LLM 这样复杂的东西才能构建代理。
“代理”的概念究竟是什么?
不太可能有一个单一的定义能满足所有人的需求,但我认为建立在相对稳健的核心定义基础上再进行扩展是有帮助的。
现代定义有许多核心主题,但大多数也至少遗漏了历史定义中反复出现的一个关键点(代理被”嵌入”或”处于”环境中的概念)。现代定义也(非常自然但不必要地)将 LLM 锚定为关键元素。构建代理实际上不需要像 LLM 这样强大的东西。
我不认为这个表述有什么特别,因为它只是历史定义的综合 + 现代定义的融入,但这可能是代理的本质:
代理是:
一个拥有自主性和能力在其环境中采取行动以实现一个或多个目标的系统。
这可以是软件系统(软件代理),可以称之为人工智能系统(AI 代理),也可以想象是生物代理(比如刚刚咬断你电线的老鼠)。
分解这个定义,其中的关键要素是:# AI 基础:代理的定义(续)
- 我们谈论的是单一实体(一个系统)。
- 它具有自主性,能够基于某些标准决定是否采取行动。(这是任何代理定义中最棘手的部分,但正如我们稍后将看到的,这在许多方面是一个关键特性。)
- 它具有行动能力。换句话说,它拥有一组能在环境中运作的可用性(affordances)。这些可以是先天能力,可以是工具,可以是改变物理世界的行动(例如,破坏电源线)或仅仅是收集信息(例如,间谍代理)。
- 代理处于一个它进行操作的环境中。环境可以是物理的或数字的,可以是静态的或快速演变的。环境为代理工作创造了上下文。
- 代理拥有可以选择实现或不实现的目标。这些目标可能是内置的(预编程),也可能由另一个代理(人类或软件)分配,或者可能动态产生(甚至是随机的或基于环境的某些特征)。
除了核心定义外,还可能需要添加几项其他规定:
- 大多数有用的代理可能在某种程度上是长期运行或持久的。也就是说,它们会一直存在以执行任务。只要它们是自主的并且有某种能使它们成为一个实体的身份,这并不是绝对必要的。没有真正理由不能有”一次性”代理,它们在完成单一任务后就会消失或被启动。
- 大多数有用的代理可能有某种感知循环,用于检查环境中的触发器和变化。同样,这也不是绝对必要的,有人可以在环境中插入多个代理来尝试实现目标,而无需等待改进其行动过程(一个粗暴的拒绝服务攻击不需要大量感知)。
即使有了这些补充,最近的定义中仍然缺少很多东西:大型语言模型(LLMs)、While循环、模型、规划、外部指令、学习、记忆等。所有这些对于某些类型的代理都很有用,但很难说它们是代理概念的核心。
为了理解这一点,思考多代理系统会是什么样子是很有价值的,我们将在下面探讨。
在结束这个定义之前,让我们回到上述定义项目中最棘手的”自主性”概念。系统能够自主行动是什么意思?它是否意味着没有人类指令?没有人类触发?没有来自其他代理的触发?
这里有一个深刻的哲学兔子洞,与”什么是意识?”的问题有相似之处:
- 如果一个X/Twitter机器人仅在用户提到关键词时向他们发送垃圾信息,它是代理吗?
- 病毒是代理吗?单个病毒细胞是吗?
- 如果代理是通过按下按钮触发的,它还是代理吗?或者只是应用程序中的一个功能?
这很难解决,但一个有用的工程定义是:允许外部触发(来自人类、其他代理或环境),只要相关系统有某种内部逻辑,使其能够确定是否应该执行请求的行为。这可以是从对行动成功机会的复杂评估到在执行行动前进行简单的安全或身份检查。
同样重要的是,触发通常不会导致立即采取行动。例如,安全扫描系统可能长时间被动地收集信息,然后突然激活以阻止感知到的入侵。
Unix守护进程在有代理之前就是代理了。
所以现在我们有了第15个代理定义?

很好,所以现在我们有了”代理”的新定义。我们获得了什么?毫无疑问,随着时间推移会出现许多新的定义,哪一个获胜并不重要,但思考定义对系统的影响是有帮助的。# AI 基础:代理的定义(续)
我之所以更倾向于像前文那样简单的定义,是因为它将注意力集中在代理系统的几个重要方面。特别是:
- 自主性至关重要。无论是长时间运行的循环,还是可以被某组环境条件触发的系统(如安全扫描器),代理系统都是异步的,它们几乎可以在任何时候出现并采取行动。如果你正在构建长期、复杂的工作流,请认真思考是否真的需要代理。如果你正在构建一个对环境变化做出反应的系统,其中的进程有所贡献但并非紧密耦合,那么代理可能正是你需要的。
- 环境至关重要。重要的是将代理视为嵌入在环境中的实体。例如,一个能够采取强大多样行动并且几乎可以完全访问个人数据的系统,需要管理许多安全隐患。苹果公司可能在过去六个月中已经意识到这一点,导致其广受期待的 Siri AI 升级推迟发布。
- 环境 × 能力 = 影响力。我很喜欢为代理提供”工具”的理念(例如 exa.ai 和 browserbase.com)。这种基础设施使开放网络成为代理可以操作的环境。工具的能力和环境的”影响力”决定了潜在结果的范围,同时也决定了错误行为的风险。
- 目标可以来自任何地方。有些可能是硬编码的,有些可能是随机的。在设计代理时,确保所有可能的目标来源都被考虑并妥善管理非常重要。代理是否在网上搜索信息并据此制定新的搜索计划?传入的信息在多大程度上形成新的目标?这种过程是否会无限消耗计算资源?
- 许多”多代理”系统实际上是单代理系统。我们在过去几个月中看到的许多关于多代理系统的描述,实际上是完全决定下一步行动的系统链,或者是各自生成结果以便挑选最佳方案的系统集合。这些架构都不真正对应于多代理系统。要成为多代理系统,每个代理都需要具有自主性。换句话说,它需要有自己的目标以及是否实现这些目标的某些标准。从广义上讲,只有当每个”代理”服务于不同的所有者(可能是它自己)时,系统才真正成为多代理系统。将活动分解给子系统的架构没有问题,但直到系统之间有了潜在冲突,你才真正在构建多代理系统。
- 多系统中的代理通过环境进行交互(无论你喜不喜欢)。这些冲突发生的速度比你想象的要快。即使代理之间没有直接消息联系,它们也能相互交互。任何多个代理可以与同一资源交互的场景都可能意味着代理之间的交互(例如,两个修改代码的代理在同一代码库上工作,两个调度代理在同一服务器集群上安排作业,或五十个搜索代理向同一数据库写入)。这些交互需要协调(明确或隐含的),并需要被考虑在内。
代理与否,这是个问题…
考虑到这个看似简单的主题变成了一篇2000多字的博文,你可能会认为最好完全避开代理。或者也许是”代理化”的炒作太难应对了。
这两种情绪都可以理解,但你可能无法逃避。一旦你开始构建能够在某些环境中”行动”的AI系统,你就已经在构建代理的路上了。一旦走上这条路,特别是如果你添加了一点自主性(长时间运行的进程、触发规则等),就值得将你的系统视为代理。
查看系统设计,你可以开始明确环境是什么,可用的行动/工具有哪些,如何做出决策,等等。所有这些通常会引导更好的系统设计。

发表回复