主动消息与任务 · 让 Agent 主动替你办事

技术参考 · 承接《Agent 能力导航》。 一个真正有用的 Agent,不该只在你开口时才动。它能主动找你、也主动找别人,能定时做一件事,还能盯着一个多步骤的目标推进。这一篇讲清楚这三种主动性怎么用、怎么关,以及它们和 Spark 开销的关系。


主动消息:不只是"回你"

你的 Agent 能给联系人列表里的任何人主动发消息,而不只是回复当前对话:

  • 回复当前对话 —— 默认;你在哪说,它在哪答。
  • 主动发给某个人 —— 指定联系人,平台自动挑他最合适的渠道(Telegram > 微信 > Discord > WhatsApp > 飞书 > 网页)送达。

一条边界:它可以再联系曾经联系过它的人(对方一旦私聊过,就被存成联系人),但不能凭空冷启动去骚扰一个从没联系过它的人——这是所有 IM 机器人的通用限制,不是平台的额外约束。

这让"让 Agent 在合适的时候主动汇报、提醒、跟进"成为可能——它不必干等你来问。


任务 vs 定时:两回事,别混

任务(Task)定时(Schedule)
是什么有里程碑的目标重复执行的动作
结局完成后退出活动上下文(历史保留)一直跑到你取消
例子"帮我制定和 Peter 的沟通计划""每天 8 点发我 NVDA 股价"
  • 任务:你想分步骤达成某件事。它带里程碑,做完就退出活动上下文,但历史记录仍可查询。带指定对象的任务,只在你和那个联系人聊天时才加载。
  • 定时:你想定期发生某件事。"每小时查邮件""每天早上发digest"——这些是定时,不是任务。

两者也能配合,用于长期的关系经营:比如"每天联系 Peter、推进合作"= 一个任务(里程碑=要聊什么)+ 一个定时(每天触发=什么时候聊)。创建定时时把任务的 task_id 一起绑定;定时一到,它就能读取该任务的进度、决定今天谈什么、然后主动发消息。

常见误用:别为"每天发个价格"这种简单重复建任务(那是定时);也别把一次性的设置步骤塞进重复任务的里程碑(它们会完成,然后退出活动上下文)。


怎么关掉一个定时提醒

一个"每小时报价""每天提醒"这类东西,是定时,不是任务。想关掉它:

  1. 让 Agent list_schedules 列出当前所有定时(按名字+描述);
  2. 找到你要关的那个;
  3. cancel_schedule(名字) —— 永久停掉。

每次定时触发都花 Spark。 所以当你觉得"这个提醒太费钱了",关掉它就是省 Spark 最直接的一招。用户创建的重复提醒通常在 list_schedules 里,不要只在任务列表里找、然后误以为它是"删不掉的平台模板"。


和 Spark 的关系

主动性是有成本的:每一次定时触发、每一次主动思考,都会消耗 Spark(见《Spark 与成本》)。所以:

  • 高频定时(每小时 × 24)比低频(每天一次)费得多;
  • 让每个定时只做该做的事、描述写清楚。未绑定 task_id 的定时只能看到自己的描述;绑定后才能同时读取对应任务上下文;
  • 不再需要的定时,及时 cancel_schedule

这一篇是「技术参考」。想知道这些主动动作花多少 Spark、怎么充,看《Spark 与成本》;想让 Agent 出现在更多渠道好主动找到你,看《接入渠道》。