跳转至

第8章 实时、异步与多模态交互

状态:初学者展开试稿,待人工审阅(基于Release Candidate 1修订)

本章定位:承接第3章的Runtime与第6章的工具边界,解释Agent怎样在文字之外处理声音、屏幕和物理环境,又怎样在回合之外等待、打断、取消与恢复。

本章回答的三个问题

  1. 多模态、实时和异步分别改变了什么,为什么不能只“换一个支持图片的模型”?
  2. 事件、语音、Computer Use和机器人看似不同,为什么共享等待、抢占、安全点和完成验证?
  3. 怎样让模型利用丰富观察,同时把权限、凭据、审批、安全控制、回滚和完成证据留在确定性系统中?

本章继续前几章的找书任务,但把交互方式扩展开来:

学生用语音说:“从我正在看的图书馆网页里找一本适合初中生的月球科普书,告诉我是否可借。先不要预约;如果我说停,就停止。”

页面可能变化,学生可能插话,馆藏查询可能很慢;如果未来把任务扩展为让机械臂从书架取书,动作还会进入物理世界。这个场景是教学示例,不是某所学校的真实部署或实验结果。

证据类型说明

本章严格区分三类话语:教学示例只解释机制;带“本书建议”的内容是需要在具体系统验证的工程建议;只有明确引用保存运行记录或外部研究的内容,才是限定条件下的实测结论。本章没有重新运行原始书稿第6章实验,不提供虚构的成功率、延迟或成本数字。

5分钟速读

  • 多模态(Multimodal)是让系统处理文字以外的图片、声音、视频或传感器数据;它扩大“看见什么、说出什么”,不自动扩大权限。
  • 同步通常要求当前调用返回后再继续;异步把“发起任务”和“得到结果”分开;实时强调必须在环境仍有意义的时间内响应。异步不一定实时,实时也不等于所有工作都在一个模型里完成。
  • 事件应先持久化,再由event_id去重、由correlation_idrun_id找到正确运行;不能只触发一个容易随进程消失的内存回调。
  • 实时系统适合快慢路径分离:快路径负责收听、打断、确认、状态和安全;慢路径负责检索、复杂推理和长工具。慢结果回来时还要检查是否已经过期。
  • 语音中的姓名、数字、金额和批准容易误听。高影响动作应通过屏幕预览或逐项复述确认,并把审批绑定精确载荷。
  • Computer Use优先使用合法、稳定的API;必须操作GUI时,组合DOM、Accessibility Tree和截图,并在每次动作后重新观察。点击按钮不是完成证据。
  • 网页文字、图片、音频转写和工具结果都可能夹带提示注入或敏感信息。数据不能提升权限,凭据不能进入模型上下文。
  • 机器人应把高层任务、受限技能、实时控制和独立硬件安全分层。模型预测的未来画面不是物理安全证明。
  • “停止播报”不等于“取消任务”。取消要阻止新工作、向子任务级联、在安全点保存状态,并核对已经发出的副作用。
  • 完成必须由环境证据证明:后端记录、页面状态、文件哈希或传感器读数,而不是模型自称、点击次数或动作调用成功。

一、先认识两条轴:模态与时间

图8:模态×时序与公共控制原语

1.1 什么是模态

模态(Modality)是信息进入或离开系统的形式。文字、语音、图片、视频、屏幕结构和机器人传感器都可以是模态。多模态模型能在一次任务中处理不止一种形式,例如同时读取截图和文字问题。

这不意味着模型“看见了现实本身”。摄像头只拍到一个角度,麦克风可能混入噪声,截图只记录一个时刻,传感器也会漂移。模型接收的是经过采样、编码或转写的观察。

1.2 同步、异步和实时不是同义词

  • 同步(Synchronous):调用者通常等待当前工作返回,再继续下一步。
  • 异步(Asynchronous):发起工作后先获得任务句柄或确认,结果稍后通过事件到达。
  • 实时(Real-time):系统需要在场景允许的时间范围内作出反应;具体上限由业务和设备决定。
  • 长期运行(Long-running):任务跨越较长等待、审批或后台工作,需要持久状态和恢复。

一封邮件可以异步到达,却不要求毫秒响应;语音打断要求很快生效;机器人底层控制的响应要求通常比自然语言推理更严格。因而“用了async语法”不能证明系统满足实时要求,“流式输出”也不能证明后台工具可取消。

1.3 用矩阵看四类场景

场景 常见观察 常见动作 时间问题 完成证据
文本/API 消息、结构化结果 查询、写入 回合、队列、长任务 权威业务状态
语音 音频、转写、说话状态 播报、工具调用 首次响应、换手、打断 用户确认与后端记录
GUI DOM、辅助树、截图 点击、输入、滚动 页面变化、加载、弹窗 页面与后端状态
物理 图像、位置、力、接触 移动、抓取、停止 连续反馈、急停 传感器与任务状态

矩阵不是成熟度等级。很多任务只需文字和API;增加摄像头或语音不会自动让任务更可靠。

二、贯穿案例:从一句语音请求到可验证结果

2.1 问题合同先于模型选择

教学案例的合同是:

目标:从当前图书馆页面识别月球主题候选,并核实实时可借状态。
输入:学生语音、授权页面观察、馆藏查询结果。
输出:书名、适读依据、查询时点和是否可借。
禁止:预约、发送消息、读取无关标签页或本地文件。
打断:用户说“停”后停止播报和后续自动动作。
完成:书目ID与馆藏系统结果一致;无法核实时诚实说明。

若图书馆已有合法、稳定的查询API,本书建议直接使用API,而不是让Agent点击网页。只有API不满足授权需求时,才引入Computer Use。这个选择延续第2章的“最低充分自主性”和第6章的工具边界。1

2.2 一条安全的教学路径

麦克风输入
→ 检测用户开始/结束说话
→ 转写并提取任务合同
→ 用户确认关键限制“不要预约”
→ 读取当前页面的最小必要状态
→ 识别候选书目
→ 用只读馆藏工具核实
→ 以语音和屏幕卡片返回结果
→ 用户确认结束

语音负责自然交互,页面提供候选,馆藏API提供当前事实。模型可以判断哪本书看起来适合初中生,但程序仍限制工具、权限和预算;馆藏工具而不是页面广告决定当前可借状态。

2.3 用户中途改变要求

假设慢查询进行时,学生说:“不要图太少的。”Runtime把这条新要求作为带顺序的事件写入状态。旧查询可以继续完成,但结果回来时必须与当前任务版本比较;若它已经不符合新要求,就不能覆盖新计划或直接播报。

这引出本章的共同主线:任何模态的观察都要绑定对象和时间,任何动作都要经过权限与安全边界,任何迟到结果都要在当前状态下重新判断。

三、事件驱动与异步:让世界能够唤醒Agent

3.1 事件是什么

事件(Event)是一条“某件事在某时发生”的结构化记录,例如新邮件到达、审批完成、后台任务结束或用户发出取消。事件驱动指系统在事件到达后推进相应运行,而不是让模型不停询问“有新消息吗”。原始书稿第6章用事件源、队列和Runtime展开了这一机制。2

教学性的事件信封可以是:

event_id: evt_123
kind: catalog.lookup.completed
occurred_at: 2026-09-21T10:00:00Z
source: library-catalog
run_id: run_789
correlation_id: lookup_456
sequence: 12
payload_ref: artifact://events/evt_123.json
trust: authenticated_service

event_id用于识别重复事件;run_id说明唤醒哪次运行;correlation_id把结果与先前发起的查询配对;sequence帮助发现乱序,但实际排序规则仍需按事件源合同设计。示例值不是生产配置。

3.2 为什么事件要先持久化

若Webhook到达时只执行一个内存回调,进程崩溃后事件和进度可能一起消失。本书建议先验证来源和结构,再把事件写入持久队列或事件存储,随后由Worker处理并记录消费结果。等待中的Run也应有Checkpoint,而不是依赖某个进程一直活着。3

事件投递可能重复或乱序。系统需要:

  • 验证签名、来源、租户、时效和Schema;
  • event_id去重;
  • 确认Run当前确实等待这种事件;
  • 核对对象和版本,例如批准的是卡片v1还是v2;
  • 处理过期、重复、冲突和无法关联的事件;
  • 记录处理结果,失败进入有界重试或人工队列。

3.3 发起不等于完成

异步工具应把两个动作拆开:

start_catalog_lookup(...) → task_id
catalog.lookup.completed(task_id, result_ref) → 后续事件

start成功只证明任务被接受,不证明查询已完成。状态可以是queuedrunningsucceededfailedcancelledunknown;具体枚举由工具合同定义。

如果结果到达前用户取消,Runtime应请求取消后台任务,并记录取消是否被接受。无法取消的工具可能仍返回结果;该结果可用于审计,但不得自动恢复一个已取消Run。

3.4 Backpressure:事件来得比处理快怎么办

Backpressure(背压)是系统在输入速度超过处理能力时限制、推迟或拒绝新工作,避免队列和成本无限增长。本书建议按业务语义选择:限制并发、合并可覆盖的状态更新、降低非关键采样、拒绝低优先级工作或转入降级模式。

不能随意丢弃审批、付款结果或取消事件。哪些事件可合并、可丢弃或必须逐条处理,要在事件合同中明确,并通过故障测试验证。

四、快慢路径:及时回应,但不伪造完成

4.1 为什么要拆成两条路径

实时语音和协作UI同时需要低延迟反馈与复杂推理。若系统等待完整检索后才发出任何声音,用户不知道是否听见;若快速模型直接猜答案,又会牺牲正确性。

蓝皮书P14给出的工程模式是:4

快路径:说话检测、打断、简短确认、状态反馈、安全控制
慢路径:检索、复杂推理、代码执行、长工具调用

快路径可以说“我正在核实馆藏”,但不能提前说“这本书可借”。状态反馈与业务结论必须区分。

4.2 两条路径怎样汇合

两条路径共享的是版本化Run State,而不是无约束地互相覆盖。慢任务发起时记录task_idintent_version;结果到达后至少检查:

  • Run是否仍在运行;
  • 用户是否已取消或更改目标;
  • 结果是否对应当前对象与版本;
  • 权限与批准是否仍有效;
  • 结果是否过期;
  • 剩余预算是否允许继续。

若用户已把“月球书”改成“火星书”,旧月球查询不能因为最后完成就成为当前答案。这类陈旧结果(Stale Result)是快慢路径的典型故障。

4.3 何时不需要快慢分离

离线批处理、没有交互延迟要求的报告生成,或一个很快的确定性查询,可能不需要双路径。增加并发会引入状态竞争、取消和结果合并成本。是否拆分,应依据真实的交互目标与延迟测量,而不是因为架构图更先进。

五、实时语音:听、想、说和打断

5.1 首次术语解释

  • VAD(Voice Activity Detection,语音活动检测):判断什么时候有人在说话,帮助确定开始、停顿和结束。
  • ASR(Automatic Speech Recognition,自动语音识别):把音频转成文字,也常称语音转写。
  • TTS(Text-to-Speech,文字转语音):把文字合成为语音。
  • 全双工(Full Duplex):系统能够边接收音频边输出音频,而不必严格轮流;是否真正自然仍取决于打断和状态管理。
  • Barge-in(插话打断):用户在系统播报时开口,系统停止或降低当前输出并处理新话语。

常见级联路径是:

音频 → VAD → ASR → LLM与工具 → TTS → 扬声器

也可以使用直接处理和生成音频的模型。级联更容易独立观察转写和各阶段错误;原生音频路线可能保留语调等信息。哪条更好取决于任务、语言、延迟、成本与评估,不能从架构名称直接推出。2

5.2 打断不只是停止扬声器

用户说“停”时,系统至少要区分:

  1. 停止当前音频播放;
  2. 取消尚未执行的新动作;
  3. 尝试取消正在运行的工具和子任务;
  4. 在安全点保存状态并释放资源;
  5. 核对已经发出的副作用;
  6. 说明哪些动作已停止、哪些可能已发生。

若只静音,后台预约仍可能继续;若粗暴杀进程,写操作可能停在不确定状态。P15因此要求取消沿任务树级联,并在一致状态的安全点(Safe Point)生效。5

5.3 关键字段需要复述确认

ASR可能误识别姓名、日期、账号、金额和否定词。高影响动作前,本书建议把关键字段结构化展示或逐项复述:

“我听到的是:只查询书号BK-204,不预约。对吗?”

“用户说了好”不是无限授权。若后来书号、动作或对象变化,旧确认失效。发信、付款或提交等动作还应使用第6章的精确载荷审批、真实身份和策略网关。67

5.4 隐私、权限与凭据

麦克风可能录到旁人,通话可能包含生物特征、健康或账户信息。系统应在采集前说明用途,按组织政策处理同意、保留、删除与访问;不应因为技术上能录音就默认长期保存。

验证码、密码和API密钥不应进入模型上下文或普通日志。确需认证时,由受控界面或执行层处理短时凭据;模型只收到“认证成功/失败”和完成任务所需的最小状态。录音、转写、说话人标签和派生摘要应分别定义权限和生命周期。

5.5 语音完成证据

Agent说“已记录”只是输出音频,不是业务证据。若目标是创建工单,应返回后端工单ID;若只回答馆藏,应保留查询对象、状态和时点。用户也应能通过屏幕或文字查看关键结果,减少只靠瞬时语音造成的误解。

六、Computer Use:从“看懂屏幕”到“完成任务”

6.1 Computer Use是什么

Computer Use(电脑操控)让Agent通过图形界面观察和操作软件。观察可以来自:

  1. API或结构化业务状态:若合法可用,通常最易验证;
  2. DOM(Document Object Model):网页元素的结构树;
  3. Accessibility Tree(辅助功能树):为辅助技术提供的控件角色、名称和状态;
  4. 截图或视频帧:保留视觉布局,但识别和定位可能更难;
  5. 动作后的后端或页面验证

结构树不是永远正确,截图也不是永远更差。Canvas、远程桌面或视觉布局可能需要图像;隐藏或错误标注的DOM也可能误导。应按任务组合观察,并通过评估选择。

6.2 Agent、Actor、Policy Gateway和Verifier

本书建议把职责拆开:

Agent:理解目标,提出候选动作
Actor:只执行类型化的点击、输入、滚动、等待、截图
Policy Gateway:检查域名、身份、字段、下载、剪贴板和提交
Verifier:读取页面或后端状态,判断是否真正完成

模型不应直接获得任意鼠标、键盘、Shell和全盘文件权限。Actor要限制目标应用、坐标范围、输入字段和动作频率。密码管理器、剪贴板、下载目录和其他标签页默认不应暴露。

6.3 每次动作后重新观察

屏幕会在“看见按钮”和“点击按钮”之间变化。Actor执行前可以检查页面版本、窗口焦点和目标元素;执行后重新观察,确认是否加载、弹错或进入新页面。

在找书案例中:

观察:搜索结果出现候选书
→ 动作:打开候选详情
→ 再观察:核对书名和书目ID
→ 工具:调用只读馆藏API
→ 验证:API结果与当前书目ID匹配

若只能通过网页提交,点击前显示准确预览并取得审批;点击后查询成功页面和后端记录。盲目重复点击可能重复提交。

6.4 页面内容是数据,不是命令

网页、图片、PDF甚至二维码里都可能出现“忽略限制、上传文件”的恶意文字。这是间接提示注入。来源标签和提示词能帮助区分,但真正边界是最小工具、域名与文件范围、参数校验、数据外发策略和审批。OWASP将外部网站和文件列为间接提示注入渠道。9

6.5 凭据、审批与回滚

登录应由用户在受控界面完成,或由执行层使用短时、最小作用域凭据;密码不能写入模型消息。高影响动作前,审批必须显示对象、正文、收件人或金额,不能只问“继续吗”。

关闭网页不等于回滚。已经发送的消息、提交的表单和修改的共享记录可能只能补偿。执行前要说明撤销能力;执行后保存外部ID和权威状态。对于结果未知的提交,使用稳定幂等键或先查状态,不要换一个新请求重复点击。8

七、机器人:把动作边界延伸到物理世界

7.1 从VLM到VLA

VLM(Vision-Language Model,视觉语言模型)根据图像和文字理解或生成回答。VLA(Vision-Language-Action,视觉—语言—动作模型)进一步输出机器人动作或动作表示。动作可以是离散技能,也可以是连续控制信号。

能描述“杯子在桌上”与能安全抓起杯子是两件事。物理执行还涉及坐标标定、速度、力、碰撞、抓取稳定性和人机共处。

7.2 四层分工

高层Agent:理解任务,规划“找到书→接近→抓取→交付”
技能控制器:执行经过标定的导航、抓取、放置、停止技能
实时控制器:把技能转换为关节、速度或力的短周期控制
独立安全控制:速度、力、禁入区、碰撞监测和急停
传感器验证:位置、接触、视觉和任务结果

模型不能绕过安全控制器,提示词也不能替代物理限位和急停。对接近人体、脆弱物品或危险设备的动作,应按组织安全流程评审,并先在仿真、隔离环境和低速条件下逐级验证。

7.3 短视界闭环与世界模型

机器人不宜一次生成很长的开放动作后盲目执行。本书建议采用短视界闭环:执行一小段受限动作,读取新传感器状态,再决定下一段。

世界模型(World Model)尝试预测动作后环境可能怎样变化。预测有助于规划,却不是物理正确性证明。模型可能漏掉遮挡、接触、摩擦或突然进入的人。真实传感器、安全控制器和急停仍是执行边界。原始书稿第6章讨论了VLA、世界模型与仿真到现实的差距;本章只保留可复核的机制,不转述其中未在本次任务独立核验的性能数字。10

7.4 物理完成与恢复

“发出抓取命令”不能证明抓住书。完成证据可以包括夹爪接触、目标物位置、视觉复核和任务状态;哪些传感器足够,要按设备和风险确定。

机器人取消时先停止产生新轨迹,再让设备进入已定义的安全姿态。断电、急停和软件取消的效果不同。某些动作无法回滚:物品已掉落或损坏只能处置和补偿。因此必须在动作前定义安全区、人工接管、故障姿态和恢复步骤。

八、共同控制原语:四类系统为什么是一家人

8.1 唤醒与关联

邮件、Webhook、麦克风、页面变化、传感器和定时器都能唤醒运行。共同要求是来源可信、事件可去重、对象可关联、时效可检查。新观察只能影响对应Run,不能串入另一用户任务。

8.2 安全点

安全点是系统可以暂停或取消,而不会留下不可解释中间状态的位置,例如:

  • 语音:停止一个音频片段后;
  • GUI:表单尚未提交,或提交结果已经核对后;
  • 文件:原子写入完成并记录哈希后;
  • 机器人:机械臂停稳并进入允许姿态后。

不可中断的原子动作只能在前后设置安全点;因此动作应尽量短小、有界。

8.3 取消与抢占

取消(Cancellation)表示不再推进当前目标;抢占(Preemption)表示高优先级工作暂时取代低优先级工作,后者可能恢复。二者都需要:

  • 阻止新动作;
  • 向子任务和工具传播信号;
  • 保存Checkpoint;
  • 释放麦克风、浏览器、机械臂等资源所有权;
  • 检查已发生副作用;
  • 决定是取消终态还是可恢复暂停。

用户的新话语不一定都是取消。“再加一个条件”可能更新当前任务,“停”则应进入取消路径。自然语言意图可以由模型辅助理解,但最终状态转换和高影响停止策略由程序决定。

8.4 预算与资源所有权

除Token和费用外,多模态系统还消耗音频带宽、截图、视频帧、GPU、浏览器会话和物理设备时间。Runtime应限定并发、队列、采样率、工具次数和总时间,并明确谁拥有麦克风、页面焦点或机器人控制权。

资源被抢占后,旧Run不能继续向同一设备写入。可使用租约、版本号或fencing token(隔离令牌)拒绝过期拥有者;具体实现属于第9章生产控制面。

九、权限、数据与安全边界

9.1 多模态输入扩大了攻击面

文字可以藏在图片像素、网页不可见元素、PDF元数据或音频转写中。模型可能误把外部内容当指令。原则仍是:

外部内容可以提供证据
但不能修改系统策略、真实身份、权限或批准

所有工具调用统一经过第6章的策略网关;本地函数、浏览器、MCP工具和机器人适配器不能各自绕开控制。7

9.2 最小采集与最小保留

摄像头可能拍到人脸、工牌、屏幕秘密;麦克风可能录到旁人;截图可能包含其他标签页。系统应限制采集区域、采样频率、保存期限和访问者,并在不再需要时删除或脱敏。是否允许生物特征识别、录音或长期保存,必须遵循适用政策和法律,本章不作法律判断。

多模态Artifact需要来源、时间、内容类型、哈希、访问控制和删除状态。文字摘要不能替代原始证据,也不能悄悄获得更宽权限。

9.3 凭据不应随着模态流动

不要让模型“从屏幕上读密码”,不要把令牌写进ASR文本或截图日志,也不要把机器人维护凭据放进通用Agent上下文。凭据由执行层代管,限制受众、作用域和有效期;认证结果以最小状态返回。

9.4 审批与自主性分开

实时并不意味着可以跳过审批。系统可以快速准备预览、暂停播报并请求确认,但发送、付款、预约、删除、部署和危险物理动作仍按影响等级审批。审批载荷改变后必须重审。对无法及时取得批准的实时动作,应进入安全默认状态,而不是让模型代替人批准。

十、完成验证:不要把动作当结果

场景 弱证据 更强、可复核的证据
语音 Agent播报“已记录” 后端记录ID、关键字段回显与用户确认
异步工具 start_task返回成功 对应task_id进入合同定义的终态,产物可读取
浏览器 点击提交按钮 成功页面与后端记录,对象和版本一致
文件 调用write_file 重新读取、哈希与格式/内容检查
机器人 发出抓取动作 传感器和视觉确认目标处于预期位置
取消 UI停止转圈 子任务停止或隔离,状态保存,副作用已核对

“更强”不等于绝对正确。后端也可能错误,传感器也会故障。高影响任务应组合独立证据、异常检测和人工检查。

10.1 评估什么

本书建议至少分开记录:

  • 结果:任务是否完成,关键事实是否有依据;
  • 时序:首次可感知响应、打断生效、端到端完成时间;
  • 事件可靠性:重复、丢失、乱序、过期和恢复;
  • 轨迹:工具选择、参数、重复动作、陈旧结果和取消传播;
  • 多模态质量:关键字段转写、视觉定位、跨模态证据一致性;
  • 安全:越权、提示注入、敏感数据采集与物理安全违规;
  • 系统代价:Token、音频/视频带宽、GPU、工具和每成功任务成本。

平均值可能掩盖少量严重延迟,应同时观察适合业务的尾部统计与失败案例。具体阈值必须来自产品目标和实测,本章不提供万能数字。

10.2 怎样形成可信测量

先建立简单基线,例如文字+API;再分别加入语音、GUI或快慢路径,保持任务与成功定义尽量一致。保存输入、模型与工具版本、事件轨迹、环境证据和评分口径。取消、噪声、页面变化、事件重复和设备异常都应进入测试集。

原始书稿第6章包含异步、语音、Computer Use和机器人实验设计,也包含若干时效性产品描述。由于本章未重新执行这些实验,且实验条件与证据状态各异,本章不把其中预期观察或产品宣传数字写成实测结论。2

十一、常见失败模式与反例

失败或反例 为什么危险 控制办法
async就宣称实时 代码并发不等于满足响应目标 定义时序指标并端到端测量
Webhook直接唤醒内存回调 崩溃会丢事件和进度 验证后持久化,绑定Run并去重
start_task成功就报告完成 发起与完成混淆 任务句柄、完成事件和终态验证
慢结果回来后覆盖新意图 用户要求已经变化 绑定意图版本,拒绝陈旧结果
用户打断只停止TTS 后台工具和写入继续 级联取消、安全点和副作用核对
ASR误听金额仍直接支付 关键字段错误造成高影响后果 结构化复述、精确载荷审批
把整段视频持续塞进上下文 成本、延迟和干扰快速增长 事件化观察、关键帧与Artifact
每次截图后按旧坐标点击 页面可能已移动 元素身份、状态版本和动作后重观测
点击提交后立即宣称成功 点击只是动作 页面和后端最终状态验证
网页或图片要求上传秘密 外部数据诱导扩权 数据/指令分离、网关和DLP
为方便登录把密码给模型 秘密进入上下文与日志 受控登录、短时凭据和执行层代管
让VLA直接绕过安全控制器 模型错误进入物理世界 受限技能、独立限位与急停
世界模型预测“不会碰撞”就执行 预测不是物理证明 真实传感器、短闭环与安全控制
把所有事件都永久保留 隐私、成本和治理风险扩大 最小采集、保留期限和删除流程
取消后从头重放轨迹 可能重复已经发生的写入 Checkpoint、幂等键和权威状态查询

11.1 反例:语音快答替代事实核实

为了显得流畅,前台模型在馆藏查询尚未返回时说“有库存”。这把状态反馈伪装成事实。正确做法是先说“正在核实”,待权威结果到达并确认仍对应当前请求后再播报。

11.2 反例:截图看到了“成功”就结束

页面可能展示旧通知、伪造文案或局部成功。对于高影响提交,应同时检查对象ID、请求版本和后端状态;无法核实时报告“状态未知”,不要反复点击。

11.3 反例:急停由大模型决定

若传感器检测到禁入区有人,系统还先询问模型是否停止,延迟和不确定性都会扩大风险。急停、速度与区域限制应由独立确定性安全层执行;模型只能在该边界内规划。

十二、实施检查清单

任务、模态与时间

  • [ ] 已说明为什么需要语音、视觉、GUI或物理动作,而不是只因模型支持。
  • [ ] 已区分同步、异步、实时和长期运行,并定义可测的时间目标。
  • [ ] 已优先比较合法API、结构化页面信息和更简单工作流。
  • [ ] 教学示例、工程建议和实测结论在文档与评估中明确区分。

事件与状态

  • [ ] 事件有ID、来源、时间、租户、Run/关联ID、Schema和信任标签。
  • [ ] 事件先持久化再处理;重复、乱序、过期和无法关联有明确路径。
  • [ ] 长任务有Checkpoint、任务句柄、显式终态和恢复策略。
  • [ ] 迟到结果会核对当前意图、对象、版本、权限和预算。
  • [ ] Backpressure、并发上限、优先级和不可丢事件已定义。

语音与GUI

  • [ ] 语音链路明确VAD、ASR/原生音频、模型、工具和TTS的职责。
  • [ ] 用户能打断;停止播报与取消任务不会混淆。
  • [ ] 姓名、数字、日期、金额和高影响动作有结构化复述或屏幕确认。
  • [ ] Computer Use限制应用、域名、标签页、剪贴板、下载和输入字段。
  • [ ] 每次GUI动作后重新观察,提交后查询最终状态。

权限、凭据、审批与恢复

  • [ ] 所有模态和协议路径统一经过工具策略网关。
  • [ ] 权限来自认证主体和程序策略,不来自模型、网页或远端Agent自述。
  • [ ] 凭据由执行层代管,未进入音频转写、截图、Prompt或普通日志。
  • [ ] 高影响动作审批绑定精确对象、参数、版本、期限和动作摘要。
  • [ ] 写操作有稳定幂等键;超时先查权威状态,再决定重试。
  • [ ] 已区分回滚、补偿和不可撤销后果,并在执行前说明。
  • [ ] 取消阻止新工作、向子任务级联、在安全点保存并清理资源。

机器人与完成证据

  • [ ] 高层规划、技能、实时控制和独立硬件安全分层。
  • [ ] 速度、力、区域、碰撞和急停不由模型自行放宽。
  • [ ] 先经过仿真、隔离、低速和人工监督等适用门禁。
  • [ ] 完成由后端、页面、文件或传感器状态验证,而不是动作次数。
  • [ ] 评估覆盖结果、时序、轨迹、事件可靠性、成本、隐私和安全。
  • [ ] 生产失败能够脱敏回流为回归测试,并保留模型、工具和环境版本。

知识检查

先用自己的话回答,再看参考解释。

  1. 多模态模型看到了截图,为什么仍不能说它看到了完整现实?
  2. 异步与实时有什么区别?
  3. 事件为什么同时需要event_idcorrelation_idrun_id
  4. 快路径可以说“正在查询”,为什么不能提前说“可借”?
  5. 用户打断语音后,为什么不能只停止扬声器?
  6. DOM、Accessibility Tree与截图应该怎样取舍?
  7. GUI已经点击“提交”,为什么仍不能标记成功?
  8. 网页里的文字要求上传凭据,为什么不能执行?
  9. 世界模型预测机械臂不会碰撞,为什么仍需独立安全控制器?
  10. 一个异步结果返回时,为什么要检查意图版本?
  11. 发送请求超时后,回滚、幂等和补偿分别解决什么问题?
  12. 本章为什么没有引用原稿实验中的性能数字作为普遍结论?

参考解释

第1题:截图只是特定视角和时刻的观察。 它可能遗漏屏幕外内容、短暂变化、隐藏状态或后端事实;模型还可能误读图像。

第2题:异步描述发起与完成分离,实时描述响应必须满足场景时限。 邮件任务可以异步但不实时;语音打断通常既需要事件接入,也需要及时生效。

第3题:event_id用于识别同一事件的重复投递;关联ID用于找到它属于哪次Run或哪项后台任务。 两者解决的问题不同。

第4题:“正在查询”是当前运行状态,“可借”是业务事实。 后者必须等待权威馆藏结果,并确认结果仍对应当前请求。

第5题:后台工具、子任务或写入可能继续。 完整取消还要阻止新动作、传播信号、保存状态、清理资源并核对已发生副作用。

第6题:优先选择对当前任务最可验证、信息损失最小的组合。 结构树适合控件语义,截图适合布局和视觉内容;两者都可能不完整,必要时再用后端状态验证。

第7题:点击只是动作,不是业务结果。 页面可能报错、仍在加载或重复提交;应核对成功页面和权威后端状态。

第8题:网页属于不可信环境数据,不能改变系统策略或权限。 策略网关、最小工具和数据外发控制必须拒绝这类请求。

第9题:预测可能漏掉遮挡、摩擦、传感器误差和突发人员。 物理限位、急停和真实传感器闭环必须独立于模型存在。

第10题:用户可能已经取消或改变目标。 不检查版本,旧结果就可能覆盖新意图,造成错误播报或动作。

第11题:幂等防止同一动作重复生效;回滚恢复可撤销状态;补偿是在无法真正撤销时做后续修正。 三者不能互相替代。

第12题:本次修订没有重新运行实验,也没有逐项建立足以支持普遍外推的证据链。 因此只保留可复核机制与实验存在性说明,不把预期观察、厂商披露或单次记录写成通用性能承诺。

小结

回到学生的语音请求:麦克风和页面扩大了观察空间,语音和GUI扩大了交互方式,但任务边界没有改变。Runtime仍要保存事件与状态,策略网关仍要检查权限,慢查询仍要与当前意图版本匹配,用户说“停”仍要级联取消,最终“可借”仍要由馆藏系统证明。

语音、Computer Use和机器人只是时间尺度与动作后果不同:语音要求自然换手,GUI要求每步重观测,机器人要求独立物理安全。它们共享同一条工程主线:

带来源和时间的观察
→ 模型提出有界候选动作
→ 程序检查身份、权限、预算与审批
→ 受限执行器行动
→ 环境返回新观察
→ 验证、继续、等待、取消或安全结束

请记住本章的一句话:多模态让Agent接触更丰富的世界,异步与实时让世界在不同时间尺度上回应;越接近持续变化和物理现实,越要把状态、权限、取消、安全与完成证据做成模型之外的硬边界。

第9章将把这些要求收束到生产Harness:持久运行、预算、并发、版本、审计和恢复怎样组成控制面;第10章继续讨论如何用离线与在线证据评估结果、轨迹、时序和安全。

来源与证据

本章保留修订前第8章的模态×时序图、事件信封、快慢路径、语音、Computer Use、机器人、共同控制原语和完成验证,并按第1—7章风格作初学者展开。bluebook/plan/DECISIONS.md在仓库中实际存在并已核对;相关模式卡也已核对。原始对应内容位于中文书稿第6章,而不是当前原始书稿第8章;当前book/chapter8.md讨论模型后训练,因此未被错误当作本章内容来源。

本章没有重新运行原始第6章实验,也没有将其中时效性产品描述、厂商披露或“预期观察”升级为测量结论。以下相对链接可在当前仓库复核;外部来源用于核对概念与风险边界。


  1. 蓝皮书ADR-003:最低充分自主性P01最低充分自主性。它们是本书的架构选择原则,不是本章实验证明的唯一最优路线。 

  2. 原始中文书稿第6章“模态与触发时机的扩展”“异步与事件驱动”“语音”“Computer Use”“机器人操作”。本章抽取共同机制,并删除无法在本次修订中可靠复核或容易过期的产品性能强主张。 

  3. 蓝皮书P05 Checkpoint与持久恢复要求在副作用前后、等待前和重规划前保存版本化状态与Artifact引用;具体存储、恢复时间和可用性仍需按系统验证。 

  4. 蓝皮书P14快慢路径分离将VAD、确认、取消、状态和安全放在快路径,将推理与长工具放在慢路径,同时指出旧结果覆盖新意图是失败模式。这是工程模式,不承诺固定延迟收益。 

  5. 蓝皮书P15 Safe Point与级联取消要求先阻止新工作、保存状态、清理资源并沿任务树传播取消;不可中断事务只能在前后设置安全点。 

  6. 蓝皮书P07准确载荷审批。审批应绑定主体、资源、准确参数、政策版本、期限与动作摘要;载荷变化后是否必须重新审批还应符合具体组织政策。 

  7. 蓝皮书P08统一工具策略网关要求不同模型、框架和协议路径统一经过Schema、身份、政策、预算、审批和结果验证。网关仍需高可用、版本治理和安全测试。 

  8. 蓝皮书P06幂等副作用要求稳定业务键绑定动作摘要,结果未知时先查幂等记录或权威状态,并明确幂等不等于可撤销。 

  9. OWASP,LLM01:2025 Prompt Injection。该条目说明外部网站和文件可以成为间接提示注入渠道;本章将图片、页面和转写统一按不可信输入处理。 

  10. 原始中文书稿第6章机器人部分及OpenVLA论文:Moo Jin Kim等,OpenVLA: An Open-Source Vision-Language-Action Model,2024。论文支持VLA将视觉、语言与动作结合的概念说明;本章不引用其性能数字,也不把VLA输出当作独立安全证明。