Appearance
Q85 · 当 Agent 需要在真实或模拟环境中执行任务时,它和纯软件工具型 Agent 有什么本质区别?
仓库系统要把已装载的箱子 C7 从 A 区送到 B 区。软件助手可以调用仓储系统的接口创建派送任务,很快得到“派单成功,编号 T9”。但这只说明任务记录产生了:箱子仍可能停在 A 区。如果让移动机器人真的把箱子送到 B 区,它必须在移动时持续感知前方、避开行人、确认自己的位置,最后核验箱子和目标地点。图中同一个“送箱子”目标,包含两种不同的完成标准。

关键区别在控制对象与反馈闭环。 纯软件工具型 Agent 主要通过应用程序接口(API)读写数字系统状态;环境型 Agent 的动作会改变一个持续演化的环境,并只能从后续观察推断它是否真的达到目标。两者都可能调用 API、遇到异步结果和造成严重副作用;不能把“软件工具一定安全”或“机器人一定要用大模型”当作区别。Google DeepMind 的机器人研究把相机图像与动作联系起来做闭环控制,Nav2 的导航接口也把目标、过程反馈和最终结果分开表示,说明“发出动作”和“完成目标”是两个事件。Google DeepMind:RT-2 · Nav2:NavigateToPose Action
术语、符号与本例假设
| 词或符号 | 本文中是什么意思 |
|---|---|
| Agent | 根据目标和反馈选择下一步的系统;它可以调用软件工具,也可以经受限控制接口影响环境。 |
| API / 软件工具 | 一个程序给另一个程序调用的入口,如“创建派单记录”“查询运单状态”。返回成功首先说明该接口承诺的操作已完成。 |
| 环境 | Agent 行动所处的世界或模拟世界,包含物体、空间、其他行动者和时间变化。本文是有人经过的仓库。 |
状态 s_t | 在时间点 t 的真实整体情况,例如机器人位置、箱子是否仍在车上、行人位置、电量;Agent 通常无法直接获得全部。 |
观察 o_t | 在时间点 t 从相机、激光雷达、里程计或模拟器接口得到的有限信息;可能有噪声、遮挡或延迟。 |
动作 a_t | Agent 给环境的指令,如“导航到 B 区”或低层的速度命令;它是请求改变状态,不是状态已改变的证明。 |
| 闭环 / 开环 | 闭环是观察→动作→再观察→调整;开环只按最初计划执行,期间不根据新情况修正。 |
| 控制器 / 安全联锁 | 控制器把目标转成机器可执行的动作;安全联锁是独立限制危险动作的机制,例如障碍接近时停机。高层模型不应代替底层安全控制。 |
| 模拟环境 / 仿真到现实 | 模拟环境用软件表示物体和规则;“仿真到现实”是把在模拟中测试或训练的方案迁移到真实设备。 |
J17、C7、T9 | 本例虚构的搬运请求、已装载箱子、软件派单记录号。T9 不代表送达。 |
A 区、B 区 | 本例虚构的出发与目标区域;任务完成要求 C7 在 B 区被核验。 |
| 终止 / 截断 | 在部分模拟环境中,终止表示环境定义的任务或失败状态结束;截断常表示时间上限等外部条件使回合结束,二者都不自动等于成功。 |
例子假设:J17 指令要求将箱子 C7 从 A 区运到 B 区;开始时 C7 已装在一台移动机器人上,不讨论机械臂抓取。仓库有人通行,机器人有定位与障碍感知设备,B 区设有能核对箱子编号的到站站点。人流、路线、传感器可靠性和安全配置都只是教学设定,不是现实仓库的通用保证。
同一个业务目标,软件工具完成了哪一层
先看软件助手。它读到 J17,检查箱子 C7 与目标 B 区是否有效,然后调用仓储管理系统的“创建搬运任务”接口。接口返回 T9。此时助手可以准确说“已建立搬运任务 T9”,却不能说“箱子已到 B 区”。若要知道实际送达,还需等待机器人执行事件或在仓储系统中查经过验证的完成记录。这个软件工具的合同边界是创建任务记录。
再看机器人执行层。高层 Agent 或调度器可把 B 区设为导航目标;机器人要反复读取定位和障碍传感器,把目标交给路径规划、运动控制与安全组件。途中行人可能进入走廊、货架可能挡住定位标志、电量也会变化。导航服务即使接受了目标,也只表示“目标请求已受理”;过程中还要看当前位置、剩余距离、恢复次数,结束后看结果与业务站点的箱子核验。Nav2 官方 NavigateToPose 动作接口便分为目标、过程反馈与结果,并暴露位置、导航时间、剩余距离和恢复次数等反馈字段;本文仅借它说明系统设计,不声称这台虚构机器人一定使用 Nav2。Nav2:NavigateToPose Action
如果软件 Agent 通过 API 直接指挥机器人移动,它也进入了环境控制链;不能因为入口仍叫 API 就把它归为“纯软件工具型”。反过来,机器人系统内部大量步骤仍是普通软件调用。更有用的问题是:这个动作改变的是可事务化的应用数据,还是带位置、时间、感知误差和物理风险的环境状态?完成标准是否需要后续感知与独立验收?
为什么必须持续观察
第一,观察不等于完整状态。 o_t 可能显示“前方暂时空”,却看不到货架转角后正在走来的行人;里程计可能估算机器人到了 B 区附近,但箱子标签未被到站站点读到;摄像头还会受遮挡或光照影响。系统要融合多种观察,并记录观察时间,不能把旧画面当当前现实。高层 Agent 可以据此选择“继续、暂停、请人确认”,但避障和紧急停车应由更低层、响应更快的组件执行。
第二,状态会随时间变化。 软件数据库也会被别人修改,然而仓库的行人、车和物体在 Agent 不调用工具时也会继续运动。几秒前规划出的通道可能现在被挡。机器人需要在执行中根据反馈重新规划或停下,而不是拿起点到终点的一次性文字计划开到底。Nav2 官方导航树包含重新规划与恢复行为;其碰撞监测组件可基于传感器触发减速或停止,文档也明确说明该软件节点不提供硬实时安全认证。Nav2:Behavior Trees · Nav2:Collision Monitor
第三,动作有执行时间与物理后果。 a_t = 导航到 B 区不会立刻把 s_t 改成“箱子已到站”。轮子可能打滑,路线可能封闭,急停可能触发;即使控制服务返回超时,机器人也可能已经移动了一段。重复发送同一个目标也不等于“无副作用重试”:它可能改变路线或与现场人员操作冲突。系统必须按当前观测与任务状态对账,取消或恢复要有明确权限和安全条件。
软件工具也可能是异步的、非幂等的,甚至能造成经济损失,例如付款或删库;这些问题并不专属于机器人。环境型任务的额外难点是要持续估计外部世界、约束动作时序,并用环境证据验证目标,且物理后果通常不能像测试数据库那样随意回滚。
一次正常送达的完整闭环
以 J17 为例,下面每步都区分“发出请求”与“观察到结果”:
- 任务进入。 调度器确认
C7已装载、目标是B 区,查机器人当前处于A 区附近且可执行。若订单仅生成了软件派单T9,不会因此把实物状态改成“已送达”。 - 初始观察与规划。 机器人读取当前位置、电量与障碍信息,为到
B 区规划路线。高层 Agent 给出目标和任务约束;运动控制器负责实时跟踪路径,安全组件限制速度或停车。 - 执行并接收反馈。 机器人开始沿路线移动,持续得到当前位置、剩余距离和感知时间。若有人进入通道,碰撞监测先减速或停车;障碍消失且定位可信后,导航组件可重新规划。高层 Agent 不通过一段迟到的模型文本直接覆盖安全停机。
- 到站核验。 导航服务报告达到目标后,站点读取
C7标识,并确认箱子确实在B 区、未在途中遗落。若两个检查都通过,系统才把J17标为完成并通知仓储管理系统。单独“车到站”或“箱子在车上”都不满足业务目标。
在这个设定里,途中短暂等待行人仍属可处理的正常变化。闭环让机器人对变化作出调整;结果核验防止“控制任务成功”被误写成“实物交付成功”。
失败时怎样停住和恢复
假设走到一半时定位信息长时间未更新,机器人无法可靠判断自己是否偏离路线。安全层应使设备进入受限或停止状态;任务层标记 J17 为“暂停待确认”,保存最后可信位置和时间,通知操作员检查现场。Agent 不能把“没有新反馈”推断为“前方一定安全”,也不能为了完成任务盲目再发一次 导航到 B 区。恢复前需要重新确认人员与障碍、定位、箱子 C7 是否仍在车上,以及旧目标是否仍有效。
另一种失败是导航报告到达 B 区,站点却没有识别到 C7。此时机器人位置目标可能达成,但业务目标失败或未证实:箱子可能滑落、标签损坏或站点传感器出错。系统应保持“待核查”,安排现场检查并根据结果决定补运或修复识别,不能让模型凭导航成功消息宣布送达。Nav2 结果里的成功或错误码也只能证明导航动作合同的结果,不能替代业务侧对箱子的验证。Nav2:NavigateToPose Action
人工接管要有停止、现场可见状态、接管者身份和恢复步骤。一般 Agent 的工具重试策略仍适用,但在物理任务里“超时后先查真实状态再决定是否重试”尤其重要;重试与回滚不是免费操作。相关原则可看 Q39:工具调用失败时,Agent 应该怎么处理?。
若先在模拟环境里运行,哪些东西相同,哪些不同
把同一个仓库做成模拟环境后,系统仍有目标、动作、随时间变化的状态与观察。某些接口用“给一个动作,向前推进一步,再返回新观察”的形式。以 Gymnasium 的环境 API 为例,step(action) 返回新观察、奖励、terminated、truncated 和附加诊断信息;terminated 是环境定义的终止条件,truncated 常是时间上限等截断,任一信号都不能不看任务规则就解释为箱子送达。本文中的箱子编号、到站验证是业务层另外定义的标准。Gymnasium:Env API
模拟的好处是可以大量重复路线、行人出现、遮挡和故障案例,甚至重置到同一起点,比在真实仓库反复制造险情容易。但模拟的摩擦、轮子响应、传感器噪声、光照、人走路方式与网络延迟未必贴近现实。仿真里 100 次成功,也不能据此保证真实环境安全或成功率相同。Isaac Lab 的仿真到现实指南专门核对观察一致性、物理响应和执行器行为,并用参数随机化覆盖部分现实差异;它也指出随机化范围要在鲁棒性与训练难度之间权衡。Isaac Lab:Training a Gear Insertion Policy and ROS Deployment
落地时可以先在仿真中测试正常、障碍、传感器失效与限时结束,再在隔离、低速、可人工急停的真实区域分阶段验证,并观察模拟与真实成功率、停机次数和定位误差差距。安全控制与现场流程必须独立验收;不能把模拟器的 reset() 当作现实物体会自动恢复原位,也不能把训练用的奖励分数当成安全证明。物理机器人是否需要特定硬件安全装置,取决于设备和现场风险评估,不能由一个通用 Agent 模型决定。
怎么评测与观察这种 Agent
软件派单层要测“T9 是否正确建立、重复请求是否误建单”;环境层要测“C7 是否真的到 B 区且过程安全”。指标至少区分:任务完成率、错误送达与误报成功率、到站核验失败率、碰撞或险情、紧急停车和人工接管次数、平均与高分位完成时间、观察/定位陈旧程度、电量与资源消耗。只统计导航接口返回成功,会把遗落箱子和错误标记藏起来。
回放一条任务时,应能看到任务号 J17、高层目标、每段动作和反馈、传感器时间戳、停止/恢复原因、最终站点核验。敏感视频与人员轨迹要限制采集、访问和保留范围。模型版本、导航控制器版本、地图版本及模拟器参数也应留痕,否则一次异常很难复现。质量评估不能只问“模型会不会说正确的搬运计划”,还要在含动态障碍、延迟和失败的场景中测实际闭环行为。
面试时可以这样回答
我会先看任务的完成标准。如果软件 Agent 调用仓储 API 得到“派单成功”,只说明记录建好了;机器人 Agent 要让实物在动态环境中到达目标并被独立核验。它通常只能看到有噪声、会延迟的局部观察,因此必须持续做“观察、行动、再观察”,处理人员或障碍变化、动作执行时间和失败恢复。高层模型可以定目标和处理例外,实时避障、停机与安全联锁要交给受约束的底层系统。导航返回成功后还要核验箱子是否在目标站点;定位失效或反馈超时时先停并查当前状态,不能盲重试。仿真可大量测边界,但摩擦、传感器和执行器与现实有差异,上线要分阶段验证。软件工具也会异步和有副作用,所以本质区别是对持续演化环境的闭环控制与结果验收,不是有没有 API。
面试官若追问“在模拟环境里它仍是软件,为什么不是纯软件工具 Agent”,可以答:分类看被控制对象和反馈合同,不是运行在哪台计算机;模拟器的 step 会推进环境状态,行动者仍要依据新观察调节动作。若追问“机器人收到导航成功就算完成了吗”,应答:导航成功只证明导航动作达到自身目标,箱子 C7 是否在 B 区还需业务站点独立核验。若追问“语言模型可以直接控制轮速吗”,应答:不应把低延迟安全控制寄托在通用语言模型的回复节奏上;高层决策和底层控制应有明确边界与安全约束。
资料依据
- Nav2:NavigateToPose Action · Behavior Trees · Collision Monitor:导航目标、反馈、重规划与安全监测的作用和边界。
- Gymnasium:Env API:模拟环境的动作、观察、奖励、终止与截断接口。
- Isaac Lab:Sim-to-Real Policy Transfer:观察一致性、物理响应和随机化的仿真到现实案例。
- Google DeepMind:RT-2:视觉观察与机器人动作闭环的研究实例。