自我进化的实时 Agent:边听边想,边想边说,边做边学
【本文是笔者在 首届 FAISys’25 (The 1st Frontier AI Systems Workshop) 的受邀报告。】
【以下内容为根据英文 slides 自动生成的中文翻译,建议阅读原始 slides】
大家好,非常荣幸在 首届 FAISys’25 做报告,今天我分享的主题是 Self-Evolving Real-Time Agents: Think While Listening, Speak While Thinking, Learn While Acting (自我进化的实时 Agent:边听边想,边想边说,边做边学)。
我是 Pine AI 的联合创始人和首席科学家。目前我们 Pine AI 的业务是通过 AI 打电话和操作电脑,帮助用户处理日常事务。比如帮助用户砍价、取消订阅、投诉维权、获取赔偿等。我们已经为用户节省了超过 300 万美元,成功率达到 93% ,平均为每位用户节省 270 分钟的时间。
从经验中学习,代表了机器学习的根本挑战。当前自主 AI Agent 在实际应用中面临两大核心挑战:与环境的实时交互,以及从经验中学习。今天我将介绍我们在这两方面的技术突破。
两大核心挑战
挑战一:实时交互的高延迟
实时语音 Agent 必须像人类一样在 1 秒内响应,但传统架构使用推理型 LLM 会引入 2-10 秒的延迟。
VAD(语音活动检测)的挑战:
- 必须等待 500-800ms 的持续静音才能确认用户说完
- “嗯哼”这样的回应词会被误判为打断
- 丢失了声学信息(情绪、环境音)
ASR(语音识别)的挑战:
- 没有上下文导致高错误率(邮箱、姓名、电话号码)
- 缺乏世界知识导致转写错误
LLM 的挑战:
- 被迫等待,无法边听边想
- 无法边想边说(5-10 秒的沉默)
- 说话时机(turn detection)判断差(何时该说话/保持沉默)
挑战二:从经验中学习
模型很聪明,但不熟练——就像顶尖毕业生缺乏实际工作经验。
固定模型无法学习:
- 无法从成功的轨迹中学习
- 无法从失败的轨迹中学习
- 部署后参数冻结
大世界假说(Big World Hypothesis):
世界太大,无法预先编码所有知识:
- 业务流程是动态且非公开的
- 验证信息因公司而异
- 服务规则不断变化
- 预训练知识不足以支撑部署
Part I: 实时 Agent-环境交互
Agent 需要与三类目标进行实时交互:
- 人类:通过实时语音进行对话和协作
- 数字世界:操作电脑、浏览网页、使用移动设备
- 物理世界:控制机器人、与真实环境交互
典型的语音 Agent 架构
传统架构分为三层:
感知层(Perception Layer):VAD + ASR
- 输入:连续信号(音频流)
- 输出:离散事件(
speech_start,interrupt,laugh,speech_fragment等) - 作用:将连续信号转换为离散事件
思考层(Thinking Layer):LLM
- 输入:离散事件流(观察和工具调用结果)
- 输出:交错的思考、工具调用和输出句子
- 作用:异步处理
执行层(Execution Layer):TTS
- 输入:离散事件(文本)
- 输出:连续动作(音频流)
- 作用:将离散事件转换为连续动作
传统 VAD + ASR 架构的问题
VAD 的三大问题:
- 不可避免的延迟:必须等待 500-800ms 的持续静音才能确认用户说完
- 打断检测差:无法区分背景噪音/音乐;”嗯哼”会误触发打断
- 语音检测准确率低:复杂声学环境中出错;句中停顿导致截断;背景噪音中的”你好”导致无响应
ASR 的三大问题:
- 缺乏上下文导致准确率低:VAD 将音频切成孤立片段;无法使用上下文消歧;邮箱、姓名、电话号码错误率高
- 缺乏世界知识:无法利用常识;地址、品牌、技术术语、金额准确率低
- 纯文本输出丢失声学细节:
- 丢失情绪:快乐、沮丧、兴奋
- 丢失副语言信息:笑声、叹气、呼吸
- 丢失环境信息:嘈杂、音乐、安静
解决方案:流式语音感知模型
我们提出了流式语音感知模型来替代 VAD + ASR:
多模态架构:
- 音频编码器(来自 Whisper):将音频转换为音频 token
- Qwen LLM(自回归):处理音频 token,输出文本 + 事件
关键优势:
- 流式:实时输出(非批处理)
- 上下文:保留完整对话历史
- 上下文学习:对个人信息、领域术语识别更准确
- 世界知识:对地址、品牌、金额准确率更高
丰富的输出:文本 + 声学事件
除了文本 token,还输出特殊 token(声学事件):
<speak_start><speak_end>:语音边界<interrupt>:打断意图<emotion:happy>:情绪标记<laugh><sigh>:副语言信息<music>:环境声音
Interactive ReAct:灵活交织观察、思考和行动
传统 ReAct 是刚性的 OTA 循环(Observation-Thinking-Action):
- 固定循环:必须完成整个 观察-思考-行动 序列
- 思考丢失:无法边听边想,延迟高
- 刚性:必须等待完整输入才能思考
Interactive ReAct 实现灵活交织的 OTA:
- 边听边想:新观察随时插入,思考得以保留
- 边想边说:快速响应,然后继续思考
- 智能转折点判断:决定何时说话、何时保持沉默
示例对比:
传统 ReAct(总耗时 20+ 秒):
1 | O₁: "我想把我的 Xfinity 账单降到每月 79 美元" |
Interactive ReAct(总耗时 ~6 秒):
1 | O₁: "我想把我的 Xfinity 账单降到每月 79 美元" |
边听边想(Think While Listening)
关键洞察:LLM 比人类语速快 20-100 倍——利用这个时间差来思考!
LLM 处理速度:
- Prefill(输入):1000+ tokens/sec
- Decode(输出):100 tokens/sec
人类语音速度:
- 说话:5 tokens/sec(文本)或 20 tokens/sec(音频 token)
- LLM 比人类快 20-100 倍!
实例:面试 Agent 在候选人说话时异步调用工具
1 | 候选人:"我之前的工作涉及构建分布式系统..." |
优势:异步工具 + 边听边想 → 无等待,超快响应
边想边说(Speak While Thinking)
理论:⚡ 快速 → 🐢 慢速 → 🐌 持续思考,使用填充语
三个思考阶段:
- ⚡ 快速(0.5s,50 tokens):快速判断 → 立即响应
- 🐢 慢速(5s,500 tokens):深入分析 → 完整答案
- 🐌 持续(交错思考和说话):持续思考 → 持续说话
关键:使用”填充语”在深度思考期间保持对话流畅
示例:面试 Agent 提出复杂问题
1 | 候选人:"我准备好回答技术问题了。" |
结果:问题逐句自然展开,没有尴尬的沉默
未来:AI Agent-环境交互的三个阶段
实时异步与环境交互是 Agent 的基础能力。
🗣️ 阶段 1:语音
- 输入:语音
- 输出:语音
- 数据速率:15-50 token/s
- 延迟:<500ms
- 挑战:快慢思考平衡
- 解决方案:Interactive ReAct
💻 阶段 2:电脑使用
- 输入:视觉(截图)
- 输出:鼠标/键盘动作
- 数据速率:~2K token/frame
- 延迟:<1 秒
- 挑战:精确动作执行
- 解决方案:VLA 模型 + RL
🤖 阶段 3:物理世界
- 输入:视觉+语音+触觉
- 输出:语音+关节动作
- 数据速率:~20K token/s
- 延迟:<100ms
- 挑战:实时控制
- 解决方案:VLA + 世界模型
关键洞察:复杂度递增(数据速率 ↑,延迟 ↓),但架构解决方案可以跨阶段迁移
Part II: Agent 从经验中学习
“We want AI agents that can discover like we can, not which contain what we have discovered.”
— Richard Sutton
为什么 Agent 必须从经验中学习:从”聪明”到”熟练”
🎓 SOTA 模型 ≈ 顶尖毕业生
✅ 知识渊博:掌握大量通用知识
❌ 缺乏经验:在专业任务上不如有经验的专业人士(如会计、税务申报)
💼 Pine AI 中的实际挑战
🔑 验证信息
- 第一次通话:得知需要信用卡后 4 位数字
- 第二次通话:应该主动请求
📋 服务流程
- 第一次取消:被告知填写在线表单而不是电话
- 第二次取消:应该直接填写在线表单
🎯 服务规则
- 哪些折扣适用?(退伍军人、2 年忠诚度等)
💰 价格估算
- 3Gbps 宽带每月 60 美元是高还是低?有讨价还价的空间吗?
核心问题:许多业务流程是动态且非公开的。单纯提升基础模型的通用能力无法解决这些”基于经验”的问题。
构建自我进化的 Agent
让 Agent 从经验中学习,有三种范式:
- 范式 1:后训练(Post-Training)
- 范式 2:上下文学习(In-Context Learning)
- 范式 3:外化学习(Externalized Learning)
方法 1:后训练 - SFT 记忆,RL 泛化
📚 监督微调(SFT)
✅ 优势:
- 样本效率极高(数千个样本即可)
- 快速固化格式和协议
- 训练稳定,快速收敛
❌ 局限:
- 记住表面模式
- 在分布外数据上急剧退化
- 难以学习可迁移的策略
🎯 强化学习(RL)
✅ 优势:
- 学习可迁移的策略表示
- 在分布外场景中鲁棒
- 发现训练数据之外的新策略
❌ 局限:
- 样本效率低(需要 100 倍的数据和计算)
- 训练成本和时间高
- 需要可验证的奖励信号
💡 工程实践:形式先于功能
- SFT 阶段:建立格式稳定性,确保可解析的输出
- RL 阶段:在稳定基础上突破泛化边界
- 关键平衡:训练 SFT 直到”格式稳定,能力初现”
提高样本效率(I):在策略蒸馏(On-Policy Distillation)
三种训练方法的对比:
SFT(监督微调)
- 采样:❌ 离策略(教师的轨迹)
- 奖励:✅ 稠密(逐 token)
- 问题:学生状态下的复合错误
RL(强化学习)
- 采样:✅ 在策略(学生的推出)
- 奖励:❌ 稀疏(仅最终结果)
- 问题:每个 episode 一个信号,效率低
✨ 在策略蒸馏
- 采样:✅ 在策略(学生的轨迹)
- 奖励:✅ 稠密(教师为每个 token 打分)
- 两全其美!
🔧 工作原理
1 | # 从学生采样 |
🎯 关键优势:
- 比 RL 效率高 10 倍
- 学生学会从自己的错误中恢复
- 可以重用训练数据(多轮)
- 支持持续学习
提高样本效率(II):反馈引导采样(Feedback-Guided Sampling)
❌ 传统 GRPO/DAPO
流程:
- 生成 N 个独立的推出
- 后续尝试重复相同错误
示例:
1 | 推出 1:需要 SSN → ❌ 失败 |
✅ 反馈引导采样
顺序流程:
- 第 1 次推出:从原始 prompt
- 第 2 次推出:prompt + 第 1 次反馈在上下文中
- 第 N 次推出:累积 N-1 次推出的反馈
示例:
1 | 推出 1:需要 SSN → ❌ 失败 |
📈 结果:每批次更多高质量样本
这本质上是一个在线学习过程:
- 外化学习:每次推出后反馈累积到知识库
- 在线 RL:Agent 根据批次内累积的反馈调整策略
方法 2:上下文学习
⚠️ 常见误解
“有了长上下文,只需把所有历史放进去,让模型自动推理”
这是对上下文能力的严重误解!
🔍 上下文真正的作用
- 本质:检索,而非推理引擎
- 机制:键值相似度匹配(类似 RAG)
- ✅ 擅长:查找相关信息
- ❌ 不擅长:统计聚合和计数
⚠️ 实际案例:三次通话限制
- 规则:最多给同一商家打 3 次电话
- 上下文:轨迹中有多次 Xfinity 通话
- 问题:
- 必须扫描整个轨迹来计数
- 容易数错 → 打了第 4 次电话
- 即使正确,也浪费推理 token
- 成本:每次决策 O(轨迹长度)
System Hint:让隐式状态显式化
解决方案:预聚合信息 → 将 O(n) 降为 O(1) 的上下文查找
💡 System Hint 如何工作
1 | <system_hint> |
✅ 优势:
- 复杂度:O(n) → O(1)
- 模型直接使用聚合信息
- 无需扫描或计数
📋 四种 System Hint 类型
任务规划
1
2TODO: [✅] 致电客服
[ ] 致电保留部门侧信道信息
1
[2025-06-25 11:00:20] 用户消息
环境状态
1
2当前目录:/home/ubuntu
操作系统:Ubuntu 24.04LLM 生成的摘要
1
2对话摘要:
用户想要 79 美元的 Xfinity 套餐,保留所有当前功能
方法 3:外化学习(知识库)
🚫 永远不要直接在知识库中存储原始案例
直接存储未经提炼的对话/案例会导致不完整检索和错误结论。
🐱 案例 1:猫计数问题
场景:100 个案例:90 只黑猫,10 只白猫(全部独立)
问题:”比例是多少?”
❌ 原始存储问题:
- Top-k=20 只检索部分案例
- 不完整样本 → 错误推断
✅ 提炼方法:
1 | "总共 100 只猫: |
→ 单次检索,准确!
💼 案例 2:折扣规则错误
场景:3 个案例:退伍军人 John ✅、医生 Sarah ✅、教师 Mike ❌
问题:”我是护士,有折扣吗?”
❌ 原始存储问题:
- “护士” ≈ “医生” → 仅检索 Sarah
- 案例 A、C 遗漏 → 错误推断
✅ 提炼方法:
1 | "Xfinity 折扣:仅 |
→ 完整规则,正确答案!
主动知识提炼:压缩即理解
核心原则:现在投入额外计算(LLM 摘要)→ 以后节省推理 token
💡 为什么要提炼?
❌ 原始轨迹(3 次通话):
1 | 10:00 致电 Xfinity(账单) |
✅ 提炼后:
1 | "致电 Xfinity 3 次(已达限制)" |
📊 三个层次的知识提炼
统计聚合
- 100 个案例 → “90% 黑色,10% 白色”
- 降低密度,改善检索
规则提炼
- 3 个案例 → “仅退伍军人和医生”
- 从案例到抽象规则的飞跃
结构化知识提取
- RAPTOR:树状摘要
- GraphRAG:实体网络
三种 Agent 持续学习范式总结
范式 1:后训练
- 核心发现:SFT 记忆,RL 泛化
- SFT:固化格式和协议,样本效率高
- RL:学习可迁移策略,分布外鲁棒
范式 2:上下文学习
- 核心洞察:上下文 ≠ 记忆
- 本质:注意力类似于 RAG
- 方法:system hints、显式摘要
范式 3:外化学习
3.1 知识库
- 优势:利用额外计算进行知识提取
- 方法:上下文检索、RAPTOR 层次摘要
3.2 工具生成
- 优势:编码流程,高效、可靠、可组合
- 哲学:最小预定义 + 最大自我进化(Alita)
总结
Part I: 实时交互
边听边想,边想边说
❌ 问题:串行架构:VAD 等待 → ASR 转写 → LLM 思考 → TTS 说话
✅ 解决方案:
- 感知:流式模型产生上下文感知转写和声学事件
- 思考:事件驱动,可以边听边想、边想边说
💡 示例:电信套餐查询 - 无尴尬沉默
1 | O: "我应该订这个套餐吗?" |
Part II: 从经验中学习
边做边学
❌ 问题:
- 固定模型部署后无法从经验中学习
- 大世界:业务流程动态且非公开
✅ 解决方案:
- 后训练:通过 RL 从交互中学习
- 上下文:通过 system hints 聚合信息
- 外化:提炼知识、生成工具
💡 示例:信用卡验证
1 | 第 1 次通话:❌ 没有信用卡后 4 位数字 |
“We want AI agents that can discover like we can, not which contain what we have discovered.”
— Richard Sutton
关于 Pine AI
Pine AI 是一个 AI Agent,可以打电话和使用电脑来完成任务。作为你的个人助理,代表你联系客服,帮助你:
- 💰 降低账单(电信、水电等平均节省 20%)
- ❌ 取消订阅
- 📋 提交投诉
- 💵 获取赔偿和退款
- ✈️ 旅行协助
成绩:
- 平均节省时间:270 分钟
- 成功率:93%
- 为消费者节省:300 万美元+