这是本节的多页打印视图。
点击此处打印.
返回本页常规视图.
早期概念
规划、协商、反应式控制、BDI、教材定义、通信标准、任务型对话。可有循环与动作;决策核心不是 LLM。
大语言模型出现之前,Agent 已有完整的研究传统。这一栏交代概念库存:世界怎么写、任务怎么分、控制怎么切、心智状态怎么形式化、异构节点怎么通信、消费级助手实际跑的是哪条流水线。
这些系统可以具备循环、对环境的动作,以及观察写回。缺少的是工作定义的第一条:下一步由 LLM 选择。与 AI Agent 的对照放在各页后部,不代替对机制本身的说明。它们不是 2022 至 2025 年产品的祖先。
学习内容
按时间顺序,八个节点覆盖四类问题:
组织方式
每页固定三块:
- 这个概念是什么:不预设 LLM 背景,先给定义。
- 论文或材料的主要内容:问题、机制、例子,以及作者自己给出的限度。
- 关键术语:后面年份还会遇到的词,先在原文语境里明确。
与 AI Agent 的对照放在各页后部。循环可以早已存在;决策核心是换核心,不是同一条产品线的延续。
1 - STRIPS(1971)
符号规划器:谓词写世界,算子搜出计划。它给每个动作附一张效果清单,这层推演正是今日 Agent 所缺。
原文:Fikes & Nilsson, 1971,STRIPS: A New Approach to the Application of Theorem Proving to Problem Solving,Artificial Intelligence 2: 189–208。IJCAI-71 报告,实现用 LISP 运行在 PDP-10 上,服务于 SRI 的机器人研究(Shakey)。
这个概念是什么
STRIPS(Stanford Research Institute Problem Solver)是一个符号规划器。给定当前世界的描述、一组可执行动作和一个目标条件,它要找出一串动作,使执行之后目标成立。
它处理的不是自然语言,也不是从数据里学到的策略。世界写成一阶谓词演算中的合式公式(wff);每个动作对应一个算子,算子增删公式;计划是算子的有序列表。论文明确区分:对世界模型应用算子发生在规划阶段,执行动作例程才改变物理世界。
经典人工智能称这一支为 planning。1998 年以后的 PDDL 把 STRIPS 风格的领域写成标准输入,仍是同一条技术路线。
关键术语:谓词
谓词是从一组对象到真值的函数。它不返回一个值,而是返回「成立 / 不成立」。
这一节里的三个例子,用的是两种元数:
| 写法 |
谓词符号 |
元数 |
读法 |
ATR(a) |
ATR |
1 |
机器人在位置 a |
AT(B, b) |
AT |
2 |
物体 B 位于位置 b |
AT(C, c) |
AT |
2 |
物体 C 位于位置 c |
B、b、a 这些叫常量,换成变量就是 AT(x, y)。谓词符号加实参构成的整体 AT(B, b) 叫原子公式。前面说「世界写成一阶谓词演算中的合式公式」,指的是这些原子公式用逻辑联结词(∧、∨、¬)组合后的式子;目标是 AT(B, a) ∧ AT(C, a),就是一个合式公式。
所以「世界是谓词集合」的准确含义是:世界模型是一组为真的公式,每条公式说的是某几个对象之间某个关系成立。
谓词对应的英文单词是 predicate。STRIPS 论文里的原话是 first order predicate calculus,对应中文的「一阶谓词演算」,也就是一阶逻辑。读原文时会遇到的相关英文术语如下:
| 中文 |
英文 |
说明 |
| 谓词 |
predicate |
从对象元组到真值的函数 |
| 谓词符号 |
predicate symbol |
AT、ATR 本身,不带实参 |
| 命题 |
proposition |
不可再分、没有内部结构 |
| 原子公式 |
atomic formula / atom |
AT(B, b) 这样的完整式子 |
| 合式公式 |
well-formed formula (wff) |
原子公式用联结词组合后的式子 |
| 基公式 |
ground formula / ground atom |
不含变量、全部由常量构成 |
| 元数 |
arity |
谓词接受几个参数 |
| 项 |
term |
常量、变量或函数应用 |
| 算子模式 |
operator schema |
带变量的动作模板,如 goto(m, n) |
| 前提 |
precondition |
应用算子前要证明的 wff 模式 |
| 增列表 / 删列表 |
add list / delete list |
算子的效果 |
补充:predicate 在语法学里是「谓语」,与逻辑学里的这个「谓词」是同一个词、不同的领域,读英文材料时靠上下文区分。
关键术语:模型
论文里说的 model(世界模型)指的是「一组为真的公式」,不是机器学习里的那个模型,也不是大语言模型中的模型。
这个词在 1971 年的语境里是逻辑学的用法,与 2023 年说的 model 无关。读原文时,这一处最容易产生错觉。
论文的主要内容
要解决的问题
在「世界模型」的空间里搜索,直到找到一个能满足目标的模型。对任意世界模型,都存在一组可应用的算子;求解器寻找算子的复合,把初始模型变成满足目标的模型。对象是机器人重排物体、在房间之间导航。世界必须容纳大量事实,因此用一阶谓词演算的公式集合,而不是矩阵或表。
直接前驱是 Green 的系统:把「寻找动作序列」完全交给形式定理证明。这条路线受制于框架问题:必须显式说明「这个动作没有改变哪些事实」。STRIPS 把两件事分开:
- 定理证明只在一个固定的世界模型内部进行,用来回答「某个算子当前是否可用」「目标当前是否成立」。
- 在世界模型之间搜索用类似 GPS 的手段—目的分析,用来挑选下一个相关算子。
问题空间的三个要素
论文第 2.1 节把问题空间定义为三元组:
-
初始世界模型 (M_0):一组 wff。例如机器人在位置 (a)、箱子 B、C 分别在 (b)、(c):
也可以写入一般规则,例如「一个物体不能同时在两个不同位置」。
-
算子:按族写成模式(schema)。例如 goto(m, n) 表示从地板上一点 (m) 走到 (n);代入具体常量后才得到可应用的算子实例。每个算子描述包含:
- 前提(precondition):一个 wff 模式。要从当前模型证明它的某个实例,算子才能使用。
- 效果:必须加入模型的公式列表,以及不再为真、必须删除的公式列表。
-
目标 (G_0):一个 wff。例如「把箱子 B 和 C 都弄到位置 (a)」写成 AT(B, a) ∧ AT(C, a)。
当某个世界模型能够证明目标公式时,问题求解结束。
搜索策略:手段—目的分析
若对每个模型盲目应用全部可用算子,后继树会大到无法处理。STRIPS 采用 GPS 策略:
- 用定理证明器尝试从当前模型 (M) 证明当前目标 (G)。
- 若证明成功,这一层目标完成。若失败,把未完成的证明当作 (M) 与 (G) 之间的差(difference)。
- 寻找效果能够推进该证明的相关算子;其前提成为子目标。
- 对子目标重复同一过程。子目标在当前模型中可证时,应用对应算子,得到新模型,再回头考虑原来的目标。
一个最小例子:目标 ATR(b)。若机器人不在 (b),证明失败。算子实例 goto(m, b) 相关;子目标是前提 ATR(m)。若初始模型含 ATR(a),则 ATR(a) 可证,应用 goto(a, b) 得到新模型,其中 ATR(b) 成立。
搜索树的每个节点是 (\langle)世界模型, 目标表(\rangle)。相关算子被选出时,并不预先知道它会排在最终计划的第几步。实现上,STRIPS 在一个模型内部调用基于归结的定理证明器处理带参数的 wff 模式,在模型之间维护上述搜索树。论文后半给出在房间中行走、推箱子等实例。
作者标明的限度
- 规划与执行分离:算子应用改变的是模型;物理动作由独立的执行与监控模块负责。
- 框架问题并未从哲学上消失,而是用增删列表把「未列出的公式保持不变」写成操作约定。后来文献称此为 STRIPS 假设。
- 世界必须能被写成谓词;开放文本、传感器噪声、未建模的副作用不在该问题空间内。
关键术语
| 术语 |
在这篇论文里的含义 |
| 世界模型 |
一阶谓词演算公式的集合,描述某一时刻的世界 |
| 算子 / 算子模式 |
动作在模型上的对应物;模式含参数,实例化后才能应用 |
| 前提 |
应用算子前必须从当前模型证明的条件 |
| 增列表 / 删列表 |
应用算子后加入、删除的公式;未列出的公式默认不变 |
| 计划 |
从初始模型走到目标可证模型的算子序列 |
| 差 |
当前模型无法完成目标证明时,未完成证明所代表的缺口 |
| 框架问题 |
如何简洁地表示「动作不改变哪些事实」 |
和 AI Agent 的关系
STRIPS 是符号规划器:谓词写世界,算子搜出计划。它给每个动作附一张效果清单,这层推演正是今日 Agent 所缺。
它的循环在世界模型空间里反复搜索,直到目标可证;动作由执行程序在计划算出之后完成。观察是定理证明器对当前模型的询问,不是开放文本回执。决策核心是定理证明加搜索,世界是谓词集合,而非工具 JSON 或屏幕。后来 LLM Agent 中的 Planning,古典形态就是这一支,控制流在规划器,不在解码过程中。它也不是 ReAct、不是 Function Calling,不是编码运行时的祖先产品。
两者都在做同一件事:让机器自己决定下一步做什么;区别在于如何处理「一个动作会改变什么」,而这个区别决定了各自的能力边界。
STRIPS 的做法,是给每个动作附两张清单。第一张写做这件事需要什么,即前提;第二张写做完之后世界加上什么、去掉什么,即增列表与删列表,合起来就是效果。页面里那个 goto(m, n) 动作,两张清单是:前提「在 m」,效果「去掉『在 m』,加上『在 n』」。
有了这两张清单,规划器就能在动手之前推演。目标是「在 b」,当前是「在 a」,对不上;哪个动作能产生「在 b」?goto(m, b),代入 n=b。它的前提是「在 m」,而当前「在 a」成立,于是 m=a,得到 goto(a, b)。整条链条算完,机器人还没有移动一步。这就是它能搜索、能给出计划的全部依据。
今天的工具不是这样。给模型一份工具说明,上面通常只有参数:「查天气」要城市名,「跑测试」要命令,「发邮件」要收件人和正文。没有哪一份说明会写调用之后世界变成什么样。 模型因此只能反过来做:先把工具调出去,看返回了什么,才知道刚才发生了什么。
这个差别在短任务上看不出来,任务一长就显出来。STRIPS 可以在一棵搜索树里比较不同动作的后果,挑一条走;LLM Agent 没有这棵树,它只有当前上下文里已经发生的事。事先推演退化成事后试错,而试错有两个代价:每一步都真的作用在环境上,每一步都要占用上下文。规划能力弱、失败之后不会修改计划、副作用不可预期,都可以追溯到这里。
那为什么不给今天的工具也补上这两张清单?因为写清单要求环境能够被形式化。goto(m, n) 之所以写得清楚,是因为「位置」可以被写成谓词;而「把这个仓库的测试修绿」没有形式化的状态可写,「订一张去上海的票」牵涉几十个外部系统,都无法事先说清一个动作会改变什么。STRIPS 只能处理能被写成谓词的环境,这就是它的边界。
所以这一页记的不是「Agent 的祖先」,而是一次取舍。古典 Agent 用形式化的世界与效果模型换来可证明的计划,代价是只能处理能被写成谓词的环境;LLM Agent 放弃了这些保证,换来在开放语言空间里的通用性。丢掉的那部分形式化,正好落在今天最不可靠的地方。
2 - Contract Net Protocol(1980)
协商协议:招标、投标、授予在节点之间分配任务。独立的 Agent 如何连接,这个问题比 A2A 早了四十五年。
原文:Reid G. Smith, 1980,The Contract Net Protocol: High-Level Communication and Control in a Distributed Problem Solver,IEEE Transactions on Computers C-29(12): 1104–1113。协议在实验系统 CNET(INTERLISP)中实现。Smith 的博士论文与此前关于分布式传感、启发式搜索的应用报告属于同一条工作。
这个概念是什么
Contract Net(合同网)是一套给分布式问题求解用的高层通信协议。多个处理器节点上各有知识源,没有一个节点掌握解整个问题所需的全部信息,也没有全局控制器和全局共享内存,节点之间通过消息合作。
核心机制是把「由谁来做哪一项任务」写成协商:有任务的节点担任经理(manager),空闲且有能力的节点担任承包方(contractor)。双方交换结构化消息,互相选择之后订立合同。节点角色不预先固定,同一节点可以同时对某些合同担任经理、对另一些担任承包方,并把自己接到的任务再分包出去。
底层网络协议负责可靠地传送比特流;高层协议规定节点应该对彼此说什么(任务公告、投标、授予、汇报)。
论文的主要内容
要解决的问题
分布式问题求解有三个特征:合作(单个知识源信息不足)、控制与数据都是分散的、节点之间松耦合。任务共享中必须先解决连接问题:有待执行任务的节点,如何找到最合适的空闲节点。它包含资源分配(负载平衡)与聚焦(搜索中会生成大量对最终解无贡献的任务,最合适的知识源也无法先验指定)。
协商有四个要素:过程是局部的,没有集中控制;信息双向流动;每一方从自己的视角评价信息;最终协议来自互相选择。
基本消息与槽位
任务公告(task announcement) 由产生任务的节点发出,该节点成为这项任务的经理。寻址可以是全网广播、有限广播或点对点。公告有四个主槽:
| 槽 |
作用 |
| 资格说明(eligibility specification) |
投标节点必须满足的条件,用来事先排除明显不合格的投标 |
| 任务摘要(task abstraction) |
任务的简短描述,供潜在承包方在多项公告之间排序 |
| 投标说明(bid specification) |
经理希望投标中提供哪些信息,使投标可比较 |
| 截止时间(expiration time) |
接受投标的期限 |
投标(bid) 在节点空闲、准备接下一个任务时发出。节点维护尚未过期的公告列表,按任务类型排序。投标中的节点摘要按公告的投标说明填写,并可使用 REQUIRE 声明:若中标,需要经理传送额外信息。
授予(announced award) 通知中标者成为承包方,并给出开始执行所需的数据。若已有「满意」的投标,可以在截止时间之前立即授予。
合同执行期间还有:信息消息用于一般通信;汇报分为中期与最终;终止用于经理结束合同及其未完成的分包。扩展包括立即响应投标(BUSY / INELIGIBLE / LOW RANKING)、定向合同(跳过公告与投标),以及负载很高时反向进行的 node available。
论文中的例子:分布式传感
第三节用 CNET 模拟的分布式传感系统(DSS):传感器与处理器节点散布在较大地理区域,要动态维护该区域内的车辆交通图。初始化阶段出现一类 signal 任务:无传感能力但处理能力强的节点担任经理,寻找能提供信号特征的传感器节点。
双方的「理想合同」并不相同。经理希望承包方在空间上覆盖责任区、传感器类型搭配合理;承包方希望经理在地理上足够近。合同网允许把这两种评价写进不同槽位。经理广播的任务公告给出任务类型、位置、资格、投标须填项与截止时间;潜在承包方按距离排序后投标;经理选择能覆盖责任区、类型搭配合理的投标者并授予。
作者标明的限度与设计选择
- 槽位中的具体内容必须由应用填写,协议只提供框架。CNET 提供基于对象—属性—值的简单公共节点间语言,领域词由用户扩充。
- 投标有约束力,且节点允许同时有多个未决投标,因此可能收到多个授予,按到达顺序排队。这些权衡在文中明确写成暂定选择。
- 协议最适合可以划分成相对独立子任务、对全局同步需求不高的问题。子任务之间若需要密集通信,收益会被通信开销抵消。
关键术语
| 术语 |
在这篇论文里的含义 |
| 分布式问题求解 |
分散、松耦合的知识源合作解题;无全局控制与全局数据 |
| 连接问题 |
任务与执行节点如何匹配;含资源分配与聚焦 |
| 经理 / 承包方 |
针对单项任务的角色,不是节点的固定身份 |
| 任务公告 / 投标 / 授予 / 汇报 |
协商的基本消息类型 |
| 公共节点间语言 |
填写槽位时各节点共用的高层编码 |
| 定向合同 |
跳过招标、直接授予已知合适节点 |
| 任务共享 / 结果共享 |
合作的两种风格;后者用请求与信息消息传递部分结果 |
和 AI Agent 的关系
合同网用招标、投标、授予在节点之间分配任务。独立的 Agent 如何连接,这个问题比 A2A 早了四十五年。
它的循环是公告、投标、授予、汇报,合同期内可分包、可终止。消息是节点之间的动作,观察是对方回过来的结构化槽位。决策核心是各节点上的知识源与局部评价函数。
2023 年以后用多个 LLM 角色对话来分工,处理的是同一类问题中的「聚焦」与「谁做什么」,匹配过程通常是提示词里写定的角色,而不是合同网上的公告—投标状态机。2025 年的 A2A 再次规定 Agent 之间如何发现对方、如何交付任务。A2A 使用 Agent Card、任务与消息,运行在 LLM 产品之上;合同网使用资格槽与合同状态,运行在 1980 年的分布式处理器模型上。二者同属「节点间如何连接」这一问题,不是同一份协议的版本迭代,也不是产品谱系。
3 - Brooks 包容架构(1986)
按对外行为分层的机器人控制,高层抑制下层。它证明 Agent 不必先建完整世界模型。
架构原文:Rodney A. Brooks, 1986,A Robust Layered Control System for a Mobile Robot,IEEE Journal of Robotics and Automation 2(1): 14–23(DOI)。配套论辩:Brooks, 1991,Intelligence Without Representation,Artificial Intelligence 47: 139–159。1986 年一文给出可实现的分层与模块语言,1991 年一文论证为什么不以中央表征为分解主轴。
这个概念是什么
包容架构(subsumption architecture)是一种移动机器人控制结构。它不按「感知、建模、规划、执行」这种功能管道切分系统,而按机器人对外应表现出的能力层级切分。每一层是一组异步的有限状态模块,模块之间用低带宽「导线」传递消息,没有共享全局内存。
较高层可以通过**抑制(suppress)下层的输入、或禁止(inhibit)**下层的输出,在需要时接管行为。被包容的下层并不被拆除,在高层未能及时给出结果时仍继续产生较低能力层级上的合理行为。只完成第 0 层时,就已经是一台可以运行的机器人;以后增加层级,不必修改已经调试好的下层。
这是具身、反应式路线上的代表性结构。按 边界 一节的划分,物理机器人不进入 LLM Agent 主叙事。它出现在前传中,是因为「Agent 是否必须先有完整世界模型再行动」这条分叉,在 1986 年已经被明确写出来。
论文的主要内容(1986)
要解决的问题
完全自主的移动机器人必须在边界条件快速变化、传感器噪声很大、传感器读数与所需物理量之间没有干净解析映射的环境中实时控制。要求包括:多重目标(可能冲突,相对重要性随情境变化);多传感器(误差与适用范围难以解析刻画);鲁棒(部分失效时仍有合宜行为);可扩展(增加传感器与能力时不应把原有能力拖垮)。
当时的常见做法是把问题切成功能竖条:传感、映射成世界表征、规划、任务执行、电机控制。要让机器人动起来,每一段都必须先实现。Brooks 改成按对外行为做水平切分。
能力层级
能力层级是对「机器人在将遇到的全部环境中应表现出哪一类行为」的非形式规定。高层级蕴含对行为集合的更强约束,并且包含所有更低层级。文中用作工作指引的层级是:
| 层级 |
能力 |
| 0 |
避免与物体接触(物体静止或运动均可) |
| 1 |
无目的游荡且不碰撞 |
| 2 |
看见远处可到达的地方并前往,从而「探索」 |
| 3 |
建立环境地图并规划地点之间的路径 |
| 4 |
注意「静态」环境中的变化 |
| 5 |
按可识别物体推理,并执行与物体相关的任务 |
| 6 |
制定并执行改变世界状态的计划 |
| 7 |
推理物体行为并据此修改计划 |
构造步骤:先实现并彻底调试达到第 0 层能力的完整控制系统,之后不再修改它。再实现第 1 层:它可以观察第 0 层的数据,并向第 0 层内部接口注入数据以抑制原有数据流。第 0 层继续运行,并不知晓上层有时会干扰其数据路径。更高层依此类推。
层的内部结构
每一层由若干小处理器(模块)构成。每个模块是带实例变量的有限状态机,可以保存 Lisp 数据结构。模块完全异步,监视输入线、向输出线发送消息;消息不握手、不确认,允许丢失。层内没有中央控制器。高层对下层的介入只有三种导线终点:接到输出上的禁止、接到输入上的抑制(抑制信号同时作为替代输入)、接到模块的 reset。
模块的状态有四类:输出消息后转入新状态;对实例变量做副作用后转入新状态;按谓词条件分支;事件分派(等待输入到达或延时)。文中给出第 1 层 Avoid 模块的定义:输入为声呐推算出的斥力与期望航向,求和后若力足够大,则向电机发出修正后的运动命令。
第 0 层与第 1 层实例
第 0 层保证机器人不与物体接触。声呐读数经滤波形成以机器人为中心的障碍图。Collide 若发现正前方有物体则发出 halt。Feelforce 把每个检测到的物体当作随距离平方衰减的斥力并求和。Runaway 在合力显著时命令转向。Turn 与 Forward 与实体机器人通信。文中报告:在数小时自主运行中,实体机器人未与静止或运动障碍碰撞(运动障碍被控制为慢速)。
第 1 层加上无目的游荡。Wander 每隔约十秒产生新航向。Avoid 把第 0 层的力与该航向合成。该输出抑制 Runaway 进入电机模块的信号,从而在有航向可考虑时包容第 0 层的逃逸计算。接线图是在第 0 层图上增加模块与导线,不改动原有模块。
第 2 层(文中已开始实现)用视觉选择有兴趣的地点,沿自由空间走廊伺服,同时仍由声呐处理局部障碍。
设计原则与 1991 年的论辩
1986 年一文列出若干工作假设,其中包括:复杂行为不必来自复杂控制系统,而可以是复杂环境的反映;接口一旦复杂到可与被连接部件相比,就应重做分解;不用绝对坐标系而用关系地图。1991 年 Intelligence Without Representation 把分解原则说得更明确:智能系统的根本分解不是必须经由表征互相接口的信息处理单元,而是并行的活动产生器,它们各自通过感知与行动直接与世界接口。中央与外围的区分在这种看法下被取消。
关键术语
| 术语 |
在这篇论文里的含义 |
| 能力层级 |
对外部行为类别的规定;高层包含低层 |
| 包容 |
高层通过抑制输入或禁止输出接管,下层继续运行 |
| 模块 |
异步有限状态机,用消息通信,无全局共享内存 |
| 抑制 / 禁止 |
替代输入、丢弃输出的两种介入 |
| 功能分解 vs 行为分解 |
按内部功能竖切,或按对外行为横切 |
和 AI Agent 的关系
包容架构按对外行为分层控制机器人,高层抑制下层。它证明 Agent 不必先建完整世界模型。
它的循环由传感器与电机持续驱动,层与层异步并行,动作与观察都在其中。决策核心是有限状态布线;没有中央世界模型,也没有先搜索出来的完整计划。
STRIPS 与后来的思维链、ReAct 属于先形成(或边形成)对下一步的显式推理、再行动的路线。包容架构给出明确的反例:可以没有中央世界模型,仍然构成当时文献中的自主 Agent(机器人控制意义下)。AI Agent 定义要求多步循环和对环境行动,不要求必须先产出完整符号计划。这一页防止把「先规划再执行」写成 Agent 的唯一定义条款。
2024 年以后的 Computer Use、浏览器操作在机制上是「根据当前观察选择动作」,与符号规划器不同,也与 1986 年的有限状态布线不同,不能写成包容架构的产品后裔。具身机器人整体仍划为相邻领域。
4 - BDI(1991)
用信念、愿望、意图描述理性 Agent。今日的 goal、plan 是这套词汇的通俗版。
形式化原文:Rao & Georgeff, 1991,Modeling Rational Agents within a BDI-Architecture,KR 1991,pp. 473–484。实现向的配套报告:Rao & Georgeff, 1995,BDI Agents: From Theory to Practice(ICMAS)。哲学来源:Michael Bratman, Intention, Plans, and Practical Reason(1987)。对照对象:Cohen & Levesque, 1990,把意图定义成信念与目标的时序公式。
这个概念是什么
BDI 指一类把 Agent 的内部状态分成三种态度的架构:
- Belief(信念):Agent 认为世界处于何种状态;可以为假,需要随观察修正。
- Desire / Goal(愿望 / 目标):Agent 希望达成的状态。论文把目标收窄为已选定、且内部一致的愿望,并且 Agent 必须相信该目标是可达成的。
- Intention(意图):Agent 已承诺去尝试实现的那些行动方案。意图是部分的行动计划,对后续推理有约束,不能还原为「信念加上愿望」。
Bratman 的论题是:意图在实践推理中有独立作用。它是尚未完成的部分计划,会控制行为、排除与之冲突的其他选项,并具有惯性。Rao 与 Georgeff 把这一论题写成可能世界语义,使意图与信念、目标平级,从而可以讨论不同的承诺策略。
BDI 系统的决策核心是符号结构与规则,属于 1990 年代智能体文献中的 Agent。
关键术语:可能世界
BDI 的形式化建立在一个反直觉的做法上:它不把世界写成一个状态,而是写成这个 Agent 认为哪些状态是可能的。
日常说法里,「Agent 相信外面在下雨」是对世界的断言。在可能世界语义里,它被改写成「在 Agent 认为可能的每一个世界里,外面都在下雨」。两句听起来等价,差别在于后者显式承认了世界是复数:Agent 不知道的事,表现为有多个世界都符合它已知的一切。
这个做法是三态度的共同基础。信念、目标、意图都不直接描述世界,而是描述「在哪些世界里成立」。信念对应 Agent 认为可能的那些世界,目标与意图再在这之上各选一层。意图之所以不能化简为「信念加愿望」,正因为它是一层独立的选定,而不是从前两层推导出来的。
时间树是这套结构的形状。从一个时间点往后看,未来分叉,过去只有一条线;树上某个世界的某个时间点叫一个情景。分支表示 Agent 当时可做的选择,事件把情景推到下一个。执行可能成功也可能失败,两种结果在树上都标出来,所以 Agent 可以对意图采取行动,而不被要求每次尝试都成功。
关键术语:慎思
BDI 把实践推理(practical reasoning)拆成两个问题,各有专名:
| 问题 |
名称 |
| 我该做什么 |
慎思(deliberation) |
| 我该怎么做 |
手段—目的推理(means-end reasoning) |
慎思是在若干可采纳的手段中,挑出要承诺去执行的那些。它在解释器循环里的位置是「生成选项」之后的下一步(见下文「从理论到解释器」一节):先用手段—目的推理找出有哪些办法能达到目标,再由慎思在它们之间选定并成为意图。这个二分来自 Bratman,他把「决定做什么」与「决定怎么做」当成两种不同的推理,而不是一个过程的两个阶段。
慎思不只是「挑一个」。它要回答两个问题:哪些新选项应当被采纳为意图,以及已有的意图是否要重新考虑。第二个问题正是后面那张承诺策略表要处理的事——盲目承诺、一心一意、开放三者的差别,就在于慎思允许多频繁地推翻已承诺的意图。省略这一层,「慎思」与「选一个」便没有区别。
「慎思」取自《中庸》「慎思之」,是 deliberation 的通行译法。Wooldridge & Jennings 把 Agent 架构分为慎思式、反应式、混合三类,用的是同一个词;那里指整类系统「先推理再行动」的设计路线,这里指循环中的具体一步。
论文的主要内容(1991)
要解决的问题
已有形式化(尤其 Cohen & Levesque)把意图写成信念与目标的某种时序组合。Rao 与 Georgeff 认为这样无法把意图当作一等对象,也难以对意图本身施加与目标不同的持续性条件。他们要给出另一种可能世界形式化,使:
- 意图与信念、目标平级,不能化约;
- 区分 Agent 可选择的行动分支,与行动执行后由环境决定的结果;
- 信念、目标、意图之间有兼容关系,以避免「连不愿接受的副作用也一并承诺」。
时间树与模态
世界被建成时间树:未来分支、过去唯一。某一世界中的某一时间点称为一个情景。事件类型把时间点变成另一时间点。原子事件由 Agent 直接执行,并唯一决定下一时间点;非原子事件对应不相邻时间点,用来表示部分计划及其向原子事件的分解。
从某一时间点伸出的分支表示 Agent 当时可做的选择。执行可能成功或失败,分支按此标记,从而 Agent 可以对意图采取行动,而不被要求每次尝试都成功。
逻辑是分支时间逻辑 CTL* 的一阶、多模态扩充。公式分状态公式与路径公式。optional φ 表示从该点出发至少有一条路径使 φ 成立;inevitable φ 表示所有路径皆然。再加上 next / eventually / always / until。BEL(φ)、GOAL(φ)、INTEND(φ) 都是状态公式。事件方面有 succeeds(e)、fails(e)、does(e) 以及对应的过去时形式。
信念、目标、意图的可达世界
在每个情景上:
- 信念可达世界:Agent 认为可能的那些世界。每个可达世界本身仍是一棵时间树:多世界来自对当前状态的无知,世界内部的分支则是 Agent 仍可选择的行动。
- 目标可达世界:表示已选定的目标。目标必须一致;并且采用 strong realism:Agent 须相信通过审慎选择事件,目标可以可选地达成。实现方式是:对当前的每个信念可达世界 (w),在同一时刻必须存在一个目标可达世界,它是 (w) 的子世界。
- 意图可达世界:Agent 已承诺去尝试实现的世界。兼容条件平行:每个目标可达世界在同一时刻必须有一个作为其子世界的意图可达世界。
反之不成立:即使 Agent 相信某事实不可避免,也不被迫把它收为目标或意图。因此目标与意图须一致,但不必在信念下封闭。文中的例子:Agent 相信「补牙不可避免伴随疼痛」,仍可以有「去补牙」的目标,而不必有「去疼痛」的目标。
1991 年论文的第 3 节给出解释 (M = \langle W, E, T, \ldots, B, G, I, \Phi \rangle) 与满足关系;第 4 节讨论态度如何形成、维持、修正。承诺策略的直观分类在后续 BDI 文献中稳定为三类(1995 年实践论文中写得更便于实现对照):
| 策略 |
放弃意图的条件 |
| 盲目承诺(blind / fanatical) |
直到相信已成功,或相信已不可能 |
| 一心一意(single-minded) |
上述条件,或目标本身已被放弃 |
| 开放(open-minded) |
信念变化导致目标不再成立时也可以放弃 |
从理论到解释器(1995)
1995 年 BDI Agents: From Theory to Practice 给出与上述语义对应的解释器循环:
初始化状态
重复:
选项 := 根据事件队列生成选项
选定 := 对选项做慎思(deliberate)
用选定结果更新意图
执行当前意图中的一步
获取新的外部事件
丢掉已成功的态度
丢掉已不可能的态度
「选项」对应可采纳的手段,「慎思」对应从愿望中筛选意图,「执行」对应对已承诺计划采取一步行动。事件队列把环境观察接入信念修正。这一循环是 BDI 作为软件架构时最常被引用的部分;1991 年论文则是其语义依据。
关键术语
| 术语 |
在这篇论文里的含义 |
| 信念可达世界 |
Agent 认为可能的时间树集合 |
| 目标 vs 愿望 |
目标是一致的、且被相信可达成的选定愿望 |
| 意图 |
已承诺尝试实现的部分计划;与信念、目标平级 |
| 子世界兼容 |
目标是信念的子世界,意图是目标的子世界 |
| strong realism |
须相信目标可通过选择行动可选地达成 |
| 承诺策略 |
意图在成功、失败、目标变化、信念变化时如何持续 |
| 副作用问题 |
相信「φ 蕴含 ψ」时,对 φ 的意图是否强制带上 ψ |
和 AI Agent 的关系
BDI 用信念、愿望、意图三种态度描述理性 Agent。今日产品里的 goal、plan、memory,是这套词汇的通俗版。
解释器的循环是:事件进队列、慎思、执行一步、再取外部事件,动作与观察都在其中。决策核心是符号态度上的规则与承诺策略。
LLM 产品里出现的 memory、goal、plan、todo,与 BDI 三态度在问题上对应:系统对世界有一个当前看法,有一个要达成的目标,有一个正在执行、不应每一步都推翻的计划。在实现上不对应:没有可能世界可达关系,也没有上述解释器中那种形式化的选项生成与承诺策略。上下文窗口、检索、频道记忆承担的是信念的工程替代;系统提示或用户请求承担的是目标;运行时任务列表承担的是意图。这一页不把「长期记忆」写成 BDI 的复活,也不把 2023 至 2025 年的 Agent 运行时写成 BDI 解释器换核心。
5 - Wooldridge & Jennings(1995)
把 Agent 研究分为理论、架构、语言三块,给出弱四条口径。本站的栏目结构与之对应。
原文:Wooldridge & Jennings, 1995,Intelligent Agents: Theory and Practice,The Knowledge Engineering Review 10(2): 115–152。DOI。这是一篇面向当时研究社区的长综述,不是新模型论文。作者在摘要中写明:目的是标出设计与构造智能体时最重要的理论与实践问题,并指向展开这些问题的工作;不打算写成对所有议题的教程。
这个概念是什么
到 1995 年,「Agent」已经同时出现在人工智能与主流计算机科学里,但用法不统一。这篇综述做了两件对后来教学影响很大的事:
- 把议题分成三块——Agent 理论、Agent 架构、Agent 语言——即使分界有时任意,也足以把「是什么」「做成什么结构」「用什么语言写」分开讨论。
- 给出两套沿用至今的定义口径:弱概念(来自计算机科学一侧的四个属性)与强概念(再叠加上知识、信念、意图等心智谓词)。
它不提供一个可运行的规划器或通信栈,而是提供一张 1990 年代中期的问题地图。后面读 STRIPS、BDI、包容架构、FIPA 时,可以用这张地图给材料定位。
论文的主要内容
弱概念:四个属性
作者从计算机科学文献中归纳出,若称一个硬件或软件系统为 Agent,通常至少要求:
| 属性 |
论文中的含义 |
| 自主(autonomy) |
无需他人持续直接干预即可运行;对自己的行为和内部状态有控制 |
| 社交能力(social ability) |
通过某种 Agent 通信语言与其他 Agent(以及可能的人类)交互 |
| 反应性(reactivity) |
感知环境,并在环境变化时及时作出响应 |
| 主动性(pro-activeness) |
不只被动响应,还能采取目标导向的主动行为 |
这四条后来被大量教材与产品文档转述。论文自己的限度:这是对当时用法的归纳,不是一组已经配备操作化度量的测试。恒温器勉强可以装进「感知并响应」;社交能力与主动性则把许多脚本系统排除在外,但仍比 AI Agent 定义宽。弱四条已经假定感知与行动;它们不指定决策核心是什么。
强概念:心智谓词
在 AI 研究中,Agent 还常被赋予人类才使用的心智描述:知识、信念、意图、义务等。作者称之为强概念。这一侧与 BDI 直接相接:不是「系统会不会动」,而是「用哪些内部态度解释和设计它的选择」。
弱概念与强概念不是互斥的两代产品,而是两套描述粒度。一个 BDI 系统通常被期望同时满足弱四条,再用信念—目标—意图去说明它如何满足。
三块议题
理论处理「Agent 是什么」以及用何种数学形式表示和推理其性质。内容包括:如何形式化信念与目标、意图与承诺、Agent 之间的义务与规范、合作与冲突。Cohen & Levesque、Rao & Georgeff 的工作落在这一块。理论工作的目标是可陈述的性质,不等于已经得到可高效执行的程序。
架构是满足理论性质的软件或硬件组织方式。综述把当时架构分成三类:
- 慎思式(deliberative / symbolic):内部有符号世界模型,决策通过规划、定理证明等符号操作完成。STRIPS 式规划器属于这一端。限度是:表征是否赶得上环境变化(calculemus 问题)、符号接地。
- 反应式(reactive):决策主要由当前感知到的情境触发,不经过(或不依赖)完整中央模型。Brooks 包容架构 是这一端的代表。限度是:如何处理需要长时间跨度信息的任务、如何从局部行为得到可预测的全局目标达成。
- 混合式(hybrid):常见做法是分层,一层反应、一层慎思,用中间层协调。分层本身不能自动解决层间接口问题。
语言指用于编程和实验 Agent 的软件系统。文中评述的包括 Agent0、PLACA、Concurrent MetateM 等:重点是语言把哪些理论概念变成可写的原语(承诺、消息、并发规则),而不是给出通用运行时。
文章后部用当时的应用(工作流、电信、空管、信息管理等)说明:工业兴趣已经出现,但可移植的工具链仍弱。这一判断与一年后 FIPA 开始写互操作标准的动机是同一背景。
作者标明的限度
摘要与导言反复说明:分三块是为了方便,分界并不干净。综述指向文献,不代替任何一篇原论文。弱四条是用法归纳,用来帮助读者辨认讨论对象,不是形式化定义。
关键术语
| 术语 |
在这篇论文里的含义 |
| 弱概念 |
自主、社交、反应、主动四属性 |
| 强概念 |
在弱概念之上使用心智谓词 |
| Agent 理论 |
用形式系统陈述 Agent 的性质 |
| Agent 架构 |
慎思 / 反应 / 混合等软件或硬件组织 |
| Agent 语言 |
把理论概念写成可编程原语的系统 |
和 AI Agent 的关系
它把 Agent 研究分为理论、架构、语言三块,并给出沿用至今的弱四条口径。本站的栏目结构与之对应。
本站的栏目分工与这三块对应,但对象已经收窄为 LLM Agent:定义页对应「是什么」;时间线对应性质何时变得可工程化;协议栏对应社交能力这一条如何被写成 MCP / A2A;Agents 与基础设施对应架构与运行时。Wooldridge 与 Jennings 没有讨论语言模型。
弱四条已经覆盖循环、动作、观察中的若干条(反应、主动、社交)。AI Agent 定义是在弱/强概念之后再增加约束:决策核心必须是 LLM,并且具备多步循环、对环境行动、按反馈迭代。弱四条单独使用时,仍会把大量非 LLM 系统算进来。这一页用来理解 1995 年社区内部的分类,而不是替换工作定义,也不是 2022–2025 运行时的设计说明书。
6 - Russell & Norvig《人工智能:一种现代方法》(1995)
教材用理性 Agent 统摄 AI:感知、行动、环境、性能度量。人们普遍使用 Agent 一词,很大程度上来自这里。
材料:Stuart Russell & Peter Norvig,Artificial Intelligence: A Modern Approach,第 1 版,Prentice Hall,1995。这是教科书,不是会议论文。对 Agent 的集中表述在第 2 章 Intelligent Agents。后续版本(2003、2010、2020)在同一框架上补充了环境性质的分类表,以及用 PEAS(Performance, Environment, Actuators, Sensors)组织设计问题的写法。下面以第 1 版的定义为主,不把后版才固定的口号倒填为 1995 年原文。
这个概念是什么
AIMA 把人工智能的研究对象统一写成 Agent:任何可以被视为通过传感器感知环境、并通过执行器(第 1 版用 effectors)作用于环境的东西。Agent 的行为对错,不按「是否像人」来判,而按给定性能度量在该环境中的表现来判。在这个标准下,恒温器、棋手、诊断程序、机器人都是 Agent。
这套定义的目的是给整本教材一条脊梁:搜索、逻辑、规划、学习都可以写成「如何构造更合理的 Agent 程序」。它不是 2023 年以后那种软件产品分类,也不区分决策核心是规则、搜索、强化学习还是语言模型。
本站后来使用的「LLM Agent」是对这套定义的收窄,不是对它的否定。收窄的理由写在 什么不是 AI Agent。
材料的主要内容(第 2 章框架)
Agent 与环境
教科书给出的基本图是闭合回路:环境产生可被感知的刺激,Agent 经传感器得到感知(percept),输出行动,行动改变环境,下一时刻的感知依赖于环境的新状态。完整的输入历史称为感知序列。
作者区分两个层面:
- Agent 函数:从感知序列到行动的数学映射,描述理想行为。
- Agent 程序:在某种架构上实现该映射的具体程序。教材关心的是如何设计程序,使其在目标环境中逼近合理的 Agent 函数。
理性
理性 Agent 的标准(第 1 版的表述,后续版本沿用同一思想)是:对每一个可能的感知序列,理性 Agent 应选择这样一个行动——在该感知序列所提供的证据、以及 Agent 所具有的先验知识之下,期望最大化其性能度量。
几条经常被误读、需要按教材原意明确的推论:
- 理性不等于全知。Agent 无法根据未感知到的信息行动。
- 理性不等于事后正确。在不确定环境中,按期望最优仍可能得到坏结果。
- 理性允许(在有益时)收集信息,也允许学习;「一开始知识很少」并不自动非理性。
- 性能度量由设计者在 Agent 之外给定,不是 Agent 自己宣布「我成功了」就算数。
环境与 Agent 程序的类型
第 1 版已经按可观测性、确定性、情节性、动态性、连续或离散等维度讨论环境,并据此说明哪种程序结构够用。后续版本把这些维度列成表,便于出题;内容没有离开第 2 章的原意。常见的程序类型包括:
| 类型 |
决策依据 |
| 简单反射 |
当前感知与规则(条件—行动) |
| 带内部状态的反射 |
当前感知 + 对未观测世界的内部估计 |
| 目标驱动 |
内部模型 + 目标,需搜索或规划 |
| 效用驱动 |
在多个可达目标之间用效用函数比较 |
| 学习型 |
以上任一结构,加上从经验改进组件的机制 |
STRIPS 属于目标驱动这一档的经典规划实现。BDI 在教材分类里仍是目标驱动,但内部状态被写成三种态度。包容架构 更接近多层反射,而不是先搜出计划。任务型对话 的状态机填槽,是反射加内部对话状态,目标集合通常封闭。
后续版本中的 PEAS 把设计一个 Agent 时必须同时交代的四件事写成检查清单:性能度量、环境、执行器、传感器。第 1 版已经要求这四件事一起谈;PEAS 只是后来的命名。整理笔记时可以用这个清单检查描述是否完整,但应标明它是后续版本的整理。
这一定义有多宽
因为判定标准只含感知、行动、环境、性能,所以:
- 恒温器是 Agent:感知温度,行动是开关加热器,性能可以是温度偏差。
- 国际象棋程序是 Agent:感知棋盘,行动是合法走子,性能是胜负。
- Siri 一类助手是 Agent:感知语音,行动是调用厂商 API,性能可以是任务完成率。
教材需要这个宽度,才能把人工智能各分支写进同一章。本站若沿用这个宽度,「AI Agent 时间线」会变成人工智能通史,与 调研方法 的边界冲突。
关键术语
| 术语 |
在这本教材里的含义 |
| Agent |
通过传感器感知环境、通过执行器行动的任何东西 |
| 感知序列 |
Agent 迄今收到的全部感知 |
| Agent 函数 / 程序 |
理想映射与具体实现 |
| 理性 |
在每个感知序列上选择期望最大化性能度量的行动 |
| 性能度量 |
在 Agent 外部给定的评价标准 |
| 环境性质 |
可观测、确定、情节、动态、离散等,用来选程序结构 |
和 AI Agent 的关系
教材用理性 Agent 统摄 AI:感知、行动、环境、性能度量。今天人们普遍使用 Agent 一词,很大程度上来自这里。
教材四元组里,循环、动作、观察已经画在第 2 章的图上。收窄发生在决策核心与迭代条款:
| 教材 |
本站的工作定义 |
| 感知 |
保留,具体化为工具回执、屏幕、仓库等观察 |
| 行动 |
保留,且必须改变环境,不能只生成文本 |
| 环境 |
保留,主线限制在软件环境 |
| 性能度量 |
保留,要求可核对的评测或交付,不以厂商自称代替 |
| (不限制决策核心) |
必须由 LLM 选择下一步 |
| (不强制多步迭代) |
必须有多步循环,并依据反馈再决策 |
因此 Siri 在 AIMA 中是 Agent,在本站的工作定义中降为助手。Wooldridge & Jennings 的弱四条是研究社区内部的入口,仍宽于本站的工作定义,但已经比恒温器窄(要求社交与主动)。AIMA 是课程与大众读物的入口,是「人人会说 Agent」的主要来源。它不是 2022–2025 LLM Agent 产品的规格书。
7 - FIPA 与 ACL(1996 起)
为异构 Agent 规定平台、通信语言与交互协议。规范制定完成,但未成为业界默认。
组织与规范:FIPA(Foundation for Intelligent Physical Agents)。1996 年 4 月在伦敦 Imperial College 讨论建制,1996 年 9 月在日内瓦登记为瑞士非营利协会,目标是为异构、会交互的 Agent 与 Agent 系统编写软件标准。第一批规范以 FIPA 97 发布。2005 年 6 月 8 日,FIPA 成为 IEEE Computer Society 的标准委员会。现行规范仍集中在 fipa.org 的 Repository。
直接相关的规范包括:FIPA 97 第 1 部分 Agent Management、第 2 部分 Agent Communication Language;其后拆成的 FIPA ACL Message Structure Specification(SC00061)、FIPA Communicative Act Library Specification(SC00037)、FIPA Contract Net Interaction Protocol Specification(SC00029)等。
这个概念是什么
FIPA 要规定的不是某一个演示程序,而是不同厂商实现的 Agent 如何互操作。互操作被拆成三层,需要同时成立:
- Agent 平台:Agent 如何被命名、创建、注销、定位;如何被目录检索。
- 通信语言 ACL:消息不是自由文本,而是带施事语力(performative)的言语行为,并带有发送者、接收者、内容、语言、本体、协议、会话标识等字段。
- 交互协议:在 ACL 之上规定一类对话的合法消息顺序,例如请求、查询、合同网招标。
ACL 的语义建立在言语行为理论(Austin、Searle)上,并把前提条件与理性效果写在发送者、接收者的心智状态中——与 BDI 使用同一类词汇(信念、意图)。内容本身另用内容语言写出,双方还须共享本体,否则谓词没有共同指称。
关键术语:言语行为
FIPA ACL 把消息当作行为,而不是一段文本。这来自语言学里的言语行为理论(Austin、Searle):说话本身就是在做事。
同一句话说出来,可以是通知,可以是请求,也可以是承诺。区分它们的不是内容,而是施事语力(illocutionary force)。FIPA 把它写成消息的一个字段:inform 表示「我通知你某命题,并且我相信它」,request 表示「我请求你去执行某个动作」。内容字符串相同,施事语力不同,对话中的义务就不同。
这条设计有两个直接后果。
一是 ACL 的语义写在参与者的信念与意图上,用的是与 BDI 同一套词汇。inform 的规范语义是「发送者相信该命题,且意图使接收者也相信」。代价是心智状态无法从外部观察,这些语义作为合规标准时难以验证。
二是只有消息格式还不够,双方还要共享本体。weather(today, raining) 这段内容,只有在双方对 weather、today、raining 的指称理解一致时才有意义;字段 ontology 就是用来声明这一点的。共享本体的成本高,是 FIPA 生态没有长起来的原因之一。
材料的主要内容
Agent 平台
FIPA 的 Agent 平台(Agent Platform)是 Agent 的运行与管理环境,规范中的核心服务包括:
| 组件 |
职责 |
| AMS(Agent Management System) |
白页:Agent 标识、生命周期(创建、挂起、终止)、平台权威 |
| DF(Directory Facilitator) |
黄页:Agent 注册自己能提供的服务,供其他 Agent 按服务描述查找 |
| MTS / ACC(消息传输 / Agent 通信通道) |
在平台之内以及平台之间传递 ACL 消息 |
一个符合规范的 Agent 通过 AMS 获得标识,通过 DF 被发现,通过 MTS 收发 ACL。这与后来 Web 服务的注册—发现—调用在问题上同类,但绑定的是 Agent 标识与言语行为,而不是 HTTP 资源。
ACL 消息结构
一条 FIPA ACL 消息的主要字段(SC00061)包括:
| 字段 |
作用 |
| performative |
施事语力,决定这条消息在做什么(通知、请求、招标等) |
| sender / receiver |
发送者与接收者的 Agent 标识 |
| content |
内容,其含义相对于 language 与 ontology |
| language |
内容语言(例如 SL、Prolog) |
| ontology |
内容中谓词与常量所属的本体 |
| protocol |
所遵循的交互协议名称 |
| conversation-id |
会话标识,把多条消息绑成一次对话 |
| reply-with / in-reply-to |
用于把回复对齐到先前消息 |
示意(字段值仅为说明结构):
(inform
:sender (agent-identifier :name agent-a)
:receiver (agent-identifier :name agent-b)
:content "weather(today, raining)"
:language Prolog
:ontology weather-ontology
:protocol fipa-request
:conversation-id conv-001)
inform 表示发送者通知接收者某命题,并且(按规范语义)发送者相信该命题,且意图使接收者也相信。若换成 request,内容则是发送者意图使接收者执行的行动。同一段内容字符串,施事语力不同,对话中的义务就不同。
交际行为库
SC00037 给出交际行为(communicative act)库。常用的包括:
| 交际行为 |
直观作用 |
| inform / confirm / disconfirm |
通知或(不)确认一个命题 |
| request / request-when / request-whenever |
请求对方现在、在条件成立时、或每当条件成立时行动 |
| query-if / query-ref |
询问命题真假,或询问使公式成立的项 |
| cfp |
招标(call for proposals),合同网的起点 |
| propose / accept-proposal / reject-proposal |
提出、接受、拒绝提案 |
| agree / refuse |
同意或拒绝先前的请求 |
| failure / not-understood |
执行失败,或不理解对方消息 |
| subscribe |
订阅此后满足某条件的通知 |
| cancel |
取消先前请求 |
每个行为的规范语义用 SL(Semantic Language)写出可行性前提与理性效果,绑定在参与者的信念与意图上。后续分析文献指出一个困难:心智状态不可从外部观察,因此这些语义作为规范性标准时难以验证(见 Pitt & Mamdani 等对 FIPA ACL 语义的讨论)。作为实现者的指引,行为库仍然给出了消息类型的稳定清单。
交互协议:以合同网为例
FIPA 把 Contract Net 收成 FIPA Contract Net Interaction Protocol(SC00029)。消息顺序被规定为:发起者发出 cfp → 参与者回复 propose 或 refuse → 发起者 accept-proposal 或 reject-proposal → 被接受的参与者返回 inform(结果)或 failure。协议图还处理超时、取消、not-understood。相对 1980 年论文,这里把协商从「一种应用层约定」提升为「可被不同实现共同遵守的会话类型」,并且每一步都必须是合法的 ACL 交际行为。
FIPA 另外还规定了 request、query、若干拍卖类协议。设计意图是:只要双方声明同一 protocol 与 ontology,异构实现可以完成同类对话。
规范与生态的结果
FIPA 完成了规范文本,并在 Agentcities 等项目中做过互操作试验。它没有成为与 HTTP 同级的互联网默认栈。后来文献中反复出现的原因包括:共享本体成本高;语义绑定在不可观察的心智状态上,符合性测试困难;缺少类似浏览器那样的大规模宿主应用;Web 服务与 REST 从另一侧接手了系统集成。规范仍可查阅;当代软件工程日常栈几乎不经过 AMS/DF/ACL。
2005 年并入 IEEE,说明标准组织身份还在,不等于生态已经长成。
关键术语
| 术语 |
在这套规范里的含义 |
| Agent 平台 |
AMS + DF + 消息传输构成的管理与通信环境 |
| ACL |
带施事语力与会话字段的消息语言 |
| 交际行为 / performative |
消息在对话中所实施的那种行为 |
| 本体 |
内容语言中符号的共享词汇与约束 |
| 交互协议 |
合法消息顺序,例如 FIPA-Contract-Net |
| SL |
用于书写 ACL 语义的逻辑语言 |
和 AI Agent 的关系
FIPA 为异构 Agent 规定平台、通信语言与交互协议,是 Agent 互操作最早的系统尝试。规范完成,但未成为业界默认。
它的循环由交互协议规定:会话期内有请求、回复、失败、取消,消息是动作,对方的 ACL 是观察。决策核心不在规范里:规范假定参与者已经是 Agent,其内部如何选择下一步(规则、BDI、规划器)由实现自定,不是 LLM。
时间线上这是明确的标准建立型节点,结果偏警示:规范可以写完,生态可以不出现。2024 年的 MCP 与 2025 年的 A2A 处理的问题分别是「模型如何接工具」和「Agent 如何接 Agent」。它们出现在 ChatGPT、Claude 等产品已经存在之后,是把已经在用的调用方式收敛为事实标准,与 FIPA「先写全规范再等待实现」的顺序相反。不是同一套协议的版本迭代。
8 - Siri / Alexa / 任务型对话(2011–2014)
在封闭任务上填槽并调用后端。这条「助手调服务」的流水线,后来接上了 LLM 的工具选择。
这一页对应的不是单篇开山论文,而是一条从实验室对话系统到消费级语音助手的产品线。需要同时看清三层材料:
- 任务型对话(task-oriented dialogue, TOD) 作为研究方法:在封闭任务上收集信息并调用后端。
- 典型流水线 作为系统结构:语音识别 → 自然语言理解 → 对话状态 → 对话策略 → 自然语言生成 → 后端 API。
- Siri(2011)、Alexa(2014) 作为把该结构做成大众产品的节点。
框架式对话的早期系统可追溯到 Bobrow 等,GUS, A Frame-Driven Dialog System,Artificial Intelligence 8: 155–173(1977)。统计对话管理的综述见 Young 等,POMDP-based Statistical Spoken Dialogue Systems: A Review,Proceedings of the IEEE 101(5): 1160–1179(2013)。Siri 源于 SRI 的 CALO 项目衍生公司,2010 年被 Apple 收购,2011 年 10 月 4 日随 iPhone 4S 发布。Alexa 随 Amazon Echo 于 2014 年 11 月 6 日发布;其开发者模型(技能、意图、槽位)把 TOD 结构写成了公开接口。
这个概念是什么
任务型对话系统的目标是:在一个预先规定的任务集合里(订票、查天气、设闹钟、放音乐、控制家电),通过多轮对话收集执行该任务所需的参数,然后调用后端服务,再把结果说给用户。
与闲聊系统不同,TOD 有可核验的完成条件:槽位是否填齐、API 是否调用成功、用户目标是否在该任务模式内。与 STRIPS 不同,这里的「计划」通常不是现场搜索出来的动作序列,而是任务模式已经写好,系统只决定下一步问哪个槽、何时调用哪个 API。与 AI Agent 定义不同,下一步由分类器、状态机或在固定状态空间上训练的策略选择,不是由语言模型在开放动作空间里决策。
Siri 与 Alexa 是 TOD 的规模化形态:它们把上述流水线接到语音接口和厂商服务目录上,使「对着设备说话、它去办事」成为消费品。Google Assistant 等属于同一架构家族,这里不另开条目。
关键术语:槽位
槽(slot)是任务的参数位。一个任务需要哪几项信息,每项就是一个槽;把对话推进下去,就是把这些槽逐一填满。
这个词不来自对话系统,而来自 1970 年代的框架(frame)表示法:一个框架描述一类典型情境,框架里有若干槽,每个槽留出位置等着被填。GUS 把这套做法用到对话上,改用框架表示任务。以订机票为例:
| 槽位 |
槽值示例 |
性质 |
| 出发地 |
北京 |
必填 |
| 目的地 |
上海 |
必填 |
| 日期 |
明天 |
必填 |
| 舱位 |
经济舱 |
选填 |
四个性质在后面反复用到。槽位集合是封闭的:槽在设计时就定死,用户在领域外提出的要求没有对应的格子可放。必填与选填决定追问顺序,对话策略的工作就是选下一个要问的槽。一句话可以填多个槽,那是抽槽的结果,不是多轮。已填的槽可以被覆盖,处理修正与冲突是对话状态跟踪的职责。
槽位与今天的工具 schema 是同一个东西:schema 里的字段名与类型,就是一套槽位定义;模型给参数赋值,就是填槽。两边都把槽位集合定死,区别只在「下一步填哪一项」由谁决定——经典 TOD 交给状态机或封闭状态空间上的策略,LLM Agent 交给模型自己。变的是决策核心,不是这个数据结构。
材料的主要内容
框架与槽位(GUS 一线)
GUS(1977)用**框架(frame)**表示一个任务,框架里的槽就是上文所说的参数位。系统维护当前框架的填充状况:已填、未填、有冲突。用户一句话被分析后,用于填写或修正槽;若关键槽仍空,系统生成追问;槽足够时触发后端(当时是数据库查询),再生成回复。
这一结构后来的标准术语是:
| 术语 |
含义 |
| 领域(domain) |
系统被设计处理的任务范围,如「机票」 |
| 意图(intent) |
用户这句话属于哪一种任务模式,如 SetAlarm、PlayMusic |
| 槽位 / 槽值 |
该意图的参数名与当前值 |
| 对话状态 |
本轮为止的意图、槽值、待澄清项;有时含对话历史摘要 |
| 对话策略 |
根据状态选择下一系统动作:追问、确认、调用 API、结束 |
系统动作集合是封闭的。用户若提出领域外请求,经典 TOD 没有「现场发明新工具」的步骤,只能拒识或落入兜底回复。
流水线各模块
消费级语音助手把 GUS 式循环接到语音与服务上,模块通常如下。名称因厂商而异,信息流一致。
- ASR(自动语音识别):波形到文本。
- NLU(自然语言理解):从文本预测意图,并抽槽。可以是规则、统计分类器或后来的神经网络;输出仍是意图标签加槽值,不是开放计划。
- DST(对话状态跟踪):把本轮 NLU 结果并入累计状态,处理更正(「改成七点」)、指代、跨轮槽位。
- 对话管理 / 策略:在当前状态下选择系统动作。实现可以是手写状态机、基于部分可观察马尔可夫决策过程(POMDP)的统计策略(Young 等综述的对象),或后来的神经网络策略。动作空间仍是设计者给定的。
- NLG + TTS:把系统动作变成文本并合成语音;早期多为模板。
- 后端 API / 技能:真正改环境的一步(写日历、控灯、播歌)。可调用的服务列表是厂商或技能开发者注册的封闭目录。
循环存在:缺槽则追问,槽齐则调用,调用失败则报错或换策略。循环的控制图在部署前已经画好。这与「给一个开放目标,由决策核心选择尚未注册的工具并在失败后改写计划」不是同一对象。
POMDP 一线(Williams & Young 等,2000 年代至 2010 年代初)把对话状态写成对用户真实意图的概率分布,用强化学习在该信念上选动作,用来应对 ASR/NLU 错误。它增强的是在封闭任务内的鲁棒性,并不把任务集合或工具集合开放掉。
产品节点:Siri 与 Alexa
Siri。 CALO(Cognitive Assistant that Learns and Organizes)是 DARPA 资助、由 SRI 主导的认知助手项目。Siri Inc. 从相关技术衍生,2010 年 4 月被 Apple 收购。2011 年 10 月 4 日随 iPhone 4S 进入消费市场:语音作为入口,NLU 映射到 Apple 与合作方提供的服务(电话、短信、日历、天气、地图、部分网络查询等)。对用户而言,这是第一次在通用手机上大规模使用「说话 → 系统调服务」;对系统而言,仍是 TOD 流水线加封闭服务表。
Alexa。 2014 年 11 月 Echo 把同类流水线做成房间里的远场语音设备。Amazon 随后向第三方开放技能(Skill):开发者声明一组意图、每个意图的槽、以及服务端逻辑。这个开发者模型等于把 TOD 的领域—意图—槽位公开成 API。技能目录仍然是注册制,运行时不会在目录之外搜索新工具。
两者都达到了教材意义下的 Agent(感知语音,行动为调用 API)。两者都不满足 AI Agent 定义的四要素:决策核心不是 LLM(上线时以统计/规则 NLU 与状态机或统计策略为主),动作空间不开放,失败后的「改计划」被限制在该技能的策略图内。
关键术语
| 术语 |
在这条材料里的含义 |
| 任务型对话 |
面向封闭任务、以填槽和调服务为完成条件的多轮对话 |
| 框架 / 槽位 |
任务的参数结构;对话过程就是填这个结构 |
| 意图 |
预定义的任务模式标签 |
| 对话状态跟踪 |
跨轮维护槽值与待澄清项 |
| 技能 / 服务目录 |
运行时可调用的封闭后端集合 |
| 闲聊 vs 任务型 |
无完成条件的开放交谈 vs 有槽位与 API 的封闭任务 |
和 AI Agent 的关系
它在封闭任务上填槽并调用后端。这条「助手调服务」的流水线,后来接上了 LLM 的工具选择。
它的循环是多轮追问、确认、调用、失败再报错,副作用作用在环境上:写日历、控灯、播歌。观察是 ASR 文本与 API 回执。决策核心是意图分类器加状态机(或封闭状态空间上的统计策略),不是 LLM。控制图在上线前闭合。
三件与年份叙事有关的事实:
- 2011 年已经存在规模化、会调后端的助手,所缺的是以 LLM 为决策核心、以及开放的工具循环。
- 2022 年 ChatGPT 把入口从填槽改成开放对话:槽位由使用者临场说出,不再由系统预先规定。
- 2023 年的 ChatGPT plugins 与 Function Calling 开始把「助手调服务」接到 LLM 的工具选择上;是否构成 Agent,仍要看是否进入多步迭代。
GitHub Copilot(2021)是另一条助手:对代码的行级补全,人在环路,无目标循环。与 Siri 同列于助手,模态不同,结构同类。
TOD 的商业成功不使它成为 ReAct 的架构祖先。状态机填槽没有演变成开放工具循环;后者需要另一套决策核心与接口,时间在 2022–2023 年。