聊天机器人有个共通点:你不发消息,它什么都不会做。工程团队 Rubric Labs 在 2026 年 11 月 5 日发表《Designing an Always-On Agent》,想解决的就是这件事。作者 Dexter Storey 的目标,是做出像《钢铁侠》里 Jarvis 那样一直待命的 AI。
Always-on agent 是什么
Always-on agent 可以叫它“常驻 AI 助理”。Rubric Labs 用三个特征定义它:
- 单一对话串(single-threaded):只跟一个 AI 说话,它记得你,所有事都交给它
- 主动(proactive):没人叫它,也会自己做事、给你发消息
- 有情境感知(situationally aware):知道你的行程、邮件和环境,不用你每次补背景
对照目前的聊天机器人和一般 AI Agent,Rubric Labs 的描述是:
| 常驻 AI 助理 | 一般聊天机器人或 agent | |
|---|---|---|
| 存在方式 | 长期一条对话串 | 短暂,用完就关 |
| 启动方式 | 自己醒来 | 被动,你开口才动 |
| 信息来源 | 自己掌握环境 | 只看你当下给的内容 |
单一对话串:怎么不爆记忆
所有事塞进同一条对话,会遇到 context window(AI 一次能读进去的文字量,满了就读不下)的上限。想让它在同一条对话里一边排行程、一边订餐、一边回信,一定得处理这件事。Rubric Labs 用两招。
让 agent 自己整理记忆。 业界常见做法是 compaction(压缩):对话太长时,把前面内容浓缩成摘要。Rubric Labs 发现,由外部程序代为压缩会打断节奏,就像硬生生切断了 agent 的思路和动能。
所以他们改成:
- 让 agent 每一轮都看得到自己用了多少 token
- 给它
foldContext工具,把一段消息换成自己写的摘要 - 给它
dropContext工具,直接删掉一段消息
实际上,agent 通常会等到一件事做完的空档再压缩,丢掉不再需要的推理和工具记录,留下还在用的内容。想先了解 AI 的记忆怎么运作,可以看 AI Agent 的记忆机制。
派分身去处理耗时的工作。 订餐、挂号这类要操作浏览器的事很花时间。主 agent 把它们交给 sub-agent(分身),自己继续跟你聊,主对话串也能留更多空间放整体脉络。分身的运作可以参考 Skill、Sub-agent、Cron 三大机制。
主动:heartbeat 和发消息工具
一般 agent 像一个函数:你发出请求,它返回结果。要变主动,它得能在任何时间醒来,也能不等你开口就先发消息。Rubric Labs 加了两个设计。
Heartbeat(心跳)。 每隔一段时间,系统往对话里塞一条“heartbeat”消息,agent 就醒了。频率可以固定,例如每小时一次,也可以让 agent 自己排下一次醒来的时间。
把“给你发消息”做成工具。 在普通聊天里,agent 每一轮的最后一句就是回复你的话。在这个设计里,agent 必须调用发消息工具,你才收得到。所以它醒来做完事,可以决定这次没什么值得说,不打扰你。最后一句话会留在对话里,当成它给自己的备忘。
Rubric Labs 举的例子:agent 知道你周三要飞奥斯汀,在例行心跳中发现航班信息,派分身整理机场到住处的路线和入住信息,再排一个接近降落时间的心跳,在你落地时把消息送出。
情境感知:广泛权限加通知收件箱
想让 agent 自己找到事做,它得知道你的处境。Rubric Labs 提供两层。
广泛权限。 让 agent 读你的邮箱、浏览器和文件,它就能自己发现你订的机票和住宿,找出你的偏好。Rubric Labs 认为,写代码的 AI 靠一个“执行终端命令”的工具就变强了,通用 agent 靠电脑操作工具也能做到类似的事。
通知系统。 光有权限不够,agent 不知道自己不知道什么。所以 Rubric Labs 给它一个收件箱,网络上的事件一发生就送进来。航班取消时,agent 可以立刻找替代航班并通知你,不用等一小时后才发现。
问题随之而来:收件箱很快塞满广告邮件、不是给它的 Slack 消息、不相关的编程项目通知。每条都叫醒 agent,可能每分钟就醒一次,白白烧 token(AI 用量的计价单位)。Rubric Labs 提出的一种做法,是先用一个较小的模型判断重不重要,重要的才叫醒 agent,其他的堆着,等 agent 自己有空再一次读完。
最难的一块:判断力
Storey 认为,上面这些架构都是相对简单的组合,真正的难题在模型本身:
“现在的模型非常不擅长这件事,因为它们缺乏判断力。”
他的说明是,现在的模型在训练阶段学的都是“把任务完成”,所以信号明确时表现很好,面对模糊的环境就会出问题。他举的例子是 Slack:agent 会对不是给它的消息动手,发现自己没有权限和背景后,最后交出一份设计文档。他的评价是毫无用处又尴尬。反过来,agent 也会漏掉真正该行动的时机。太积极与太消极之间的平衡,他认为更像凭经验摸索,无法照公式调好。
他建议的做法是让 agent 一开始很害羞,慢慢积累信心,找到自己能发挥的范围。具体要三件事:
- 系统提示(system prompt)写清楚它负责什么,并说明“什么都不做”完全没问题
- 不确定是不是自己的工作时,先问,不要猜
- 记住每次行动后你的反应(谢谢、纠正还是无视),下次行动前先翻这份记忆
给初学者的三个提醒
- 这是设计思路,文章没有提供实测数据,也没有说明效果多好。把它当成理解“常驻 AI”的地图就好。
- 权限给得越广,agent 能做的事越多,出错或被操控的风险也越大,可以搭配 AI Agent 的安全风险一起看。
- 想先弄懂 agent 与语言模型的分工,可以从 AI Agent 不是 AI 开始。