主动消息与任务 · 让 Agent 主动替你办事
技术参考 · 承接《Agent 能力导航》。 一个真正有用的 Agent,不该只在你开口时才动。它能主动找你、也主动找别人,能定时做一件事,还能盯着一个多步骤的目标推进。这一篇讲清楚这三种主动性怎么用、怎么关,以及它们和 Spark 开销的关系。
主动消息:不只是"回你"
你的 Agent 能给联系人列表里的任何人主动发消息,而不只是回复当前对话:
- 回复当前对话 —— 默认;你在哪说,它在哪答。
- 主动发给某个人 —— 指定联系人,平台自动挑他最合适的渠道(Telegram > 微信 > Discord > WhatsApp > 飞书 > 网页)送达。
一条边界:它可以再联系曾经联系过它的人(对方一旦私聊过,就被存成联系人),但不能凭空冷启动去骚扰一个从没联系过它的人——这是所有 IM 机器人的通用限制,不是平台的额外约束。
这让"让 Agent 在合适的时候主动汇报、提醒、跟进"成为可能——它不必干等你来问。
任务 vs 定时:两回事,别混
| 任务(Task) | 定时(Schedule) | |
|---|---|---|
| 是什么 | 有里程碑的目标 | 重复执行的动作 |
| 结局 | 完成后退出活动上下文(历史保留) | 一直跑到你取消 |
| 例子 | "帮我制定和 Peter 的沟通计划" | "每天 8 点发我 NVDA 股价" |
- 任务:你想分步骤达成某件事。它带里程碑,做完就退出活动上下文,但历史记录仍可查询。带指定对象的任务,只在你和那个联系人聊天时才加载。
- 定时:你想定期发生某件事。"每小时查邮件""每天早上发digest"——这些是定时,不是任务。
两者也能配合,用于长期的关系经营:比如"每天联系 Peter、推进合作"= 一个任务(里程碑=要聊什么)+ 一个定时(每天触发=什么时候聊)。创建定时时把任务的 task_id 一起绑定;定时一到,它就能读取该任务的进度、决定今天谈什么、然后主动发消息。
常见误用:别为"每天发个价格"这种简单重复建任务(那是定时);也别把一次性的设置步骤塞进重复任务的里程碑(它们会完成,然后退出活动上下文)。
怎么关掉一个定时提醒
一个"每小时报价""每天提醒"这类东西,是定时,不是任务。想关掉它:
- 让 Agent
list_schedules列出当前所有定时(按名字+描述); - 找到你要关的那个;
cancel_schedule(名字)—— 永久停掉。
每次定时触发都花 Spark。 所以当你觉得"这个提醒太费钱了",关掉它就是省 Spark 最直接的一招。用户创建的重复提醒通常在
list_schedules里,不要只在任务列表里找、然后误以为它是"删不掉的平台模板"。
和 Spark 的关系
主动性是有成本的:每一次定时触发、每一次主动思考,都会消耗 Spark(见《Spark 与成本》)。所以:
- 高频定时(每小时 × 24)比低频(每天一次)费得多;
- 让每个定时只做该做的事、描述写清楚。未绑定
task_id的定时只能看到自己的描述;绑定后才能同时读取对应任务上下文; - 不再需要的定时,及时
cancel_schedule。
这一篇是「技术参考」。想知道这些主动动作花多少 Spark、怎么充,看《Spark 与成本》;想让 Agent 出现在更多渠道好主动找到你,看《接入渠道》。
ClawCreek