交互:观察与动作空间的扩展:打破回合制
第 6 章是”构建 Agent 的最后一块拼图”——前面五章,Agent 和世界是回合制交互的:你说完、它想完、调工具、再回你,思考时世界默认静止。
这一章挑战这个前提。
一句关键的话
回合制是训练留下的假设,不是环境的性质。
当环境变化比模型生成还快,”想完再说”就不可接受了。所以要从两个维度扩展 Agent 的观察空间和动作空间:
- 内容(前 5 章已讲):上下文、记忆、工具、代码
- 模态(本章):语音、屏幕、物理传感器 / 说话、点击、关节
- 时机(本章):世界主动推、连续流 / 跨回合、可打断、可抢占
异步与事件驱动
同步 Agent 像排队柜台;真实助理要异步执行、动态优先级、中断恢复。根本矛盾:训练同步 / 部署异步。
解法:输入统一建模成事件流,跑一个事件循环(取事件→追轨迹→调 LLM→执行→等下批)。OpenClaw 用 Hooks/Cron/Heartbeat,但第三方事件(比如来电)需要 Channel 机制实时推。
两类之前没展开的工具
第 4 章的五类工具里,这两类依赖异步运行时,现在补上:
- 事件触发工具:set_timer(定时器)、monitor_shell(后台任务监控)、connect_channel(外部事件通道)
- 用户沟通工具:用专用工具发消息(带图/文件/提醒),支持多渠道召回(IM/短信/邮件/电话),比原生 ReAct 直发更有”活人感”
虚拟身份与隔离
- 给 Agent 独立账号/存储/计算(秘书专用电话邮箱),别直管你真实账号
- 虚拟电脑/手机做 OS 级隔离
- HITL 认证走 VNC/RDP,别把真实凭证交给 Agent
事件来了怎么处理
按紧急度三策略:
- 取消式:紧急,造”安全点”中断当前推理
- 队列式:常规,批处理(但要用状态栏标
[未处理事件 1/4],否则模型只看最后一条) - 并行式:独立轻量查询,另起会话
(易错:占位符修复格式容易诱发模型幻觉,伪造”工具成功”。)
前面打破回合制、讲了事件驱动。接着讲观察/动作空间在”模态”上的三种具体扩展。
语音:三种范式
- 级联:VAD→ASR→LLM→TTS 串起来,模块清但延迟累加、丢副语言
- Omni:原生音频进原生音频出,延迟低、保留语气,但还依赖轮次、训练贵
- 全双工:持续听说决策,支持重叠说话和打断,最自然
认知时序上三种玩法:快回慢答、快交互慢提醒、端到端统一。
(全双工体验最好,但训练和评估都复杂。中小团队先用级联跑通,比追全双工现实。)
Computer Use:看着屏幕操作
循环:截图 → 多模态模型想 → 执行键鼠 → 重截确认。难点是动作后现实是否真按计划变。
找到界面元素(Grounding)三条路:
- Set-of-Mark:分割模型切区域编号,模型选号换算坐标
- 结构化索引:用 DOM / Accessibility Tree(browser-use 这类)
- 纯坐标预测:需分辨率匹配双向缩放,否则系统性偏移
动作空间就是 mouse_move/click/drag/scroll/type 这些。
机器人:XLeRobot
硬件不是瓶颈(遥操作能完成),算法才是。控制分五层:任务目标→长程规划→基本技能→VLA(视觉-语言-动作模型)→底层控制(50–1000Hz)。
VLA 只学模仿不一定懂后果,要配世界模型预测”这动作会导致啥”。Sim2Real 还得处理仿真与现实的差异。
一个深层矛盾
训练是同步的(模型假设工具调用后必紧跟结果),部署是异步的(事件随时到)。要么等模型进化出异步 RL,要么用 ~200 行编排让现成模型”持续思考”(强行合上 <think> 注入观察)。
这一章把 Agent 从”对话框”拉到了真实世界——语音、屏幕、机器人。
对多数应用最划算的切入点是 Computer Use + 事件驱动:让 Agent 能看屏幕、能异步被唤醒,比追机器人现实得多。移动端那块壁垒更多是商业模式(绕过广告变现),不是纯技术。