简要总结
Cron vs Heartbeat
这页说明书像是一个“选择小帮手”,它要帮你决定什么时候用“心跳”,什么时候用“闹钟”。心跳就像你的小助手每隔一段时间就自己醒来,看看有没有重要的事情要告诉你。闹钟则是设定在非常准确的时间响铃,去做一件特定的事。这页就是教你根据你想做的事情,来选对方法。
五岁小孩版解释
这页说明书主要讲两样东西:心跳和Cron(你可以把它想成“闹钟”)。它们都能让你的小助手在固定的时间做事情,但用法不一样。下面我们来仔细看看。
心跳是什么?
心跳就像你的小助手每隔一段时间(比如30分钟)就自己“醒来”一次。它醒来后会检查一个叫 HEARTBEAT.md 的清单,看看有没有事情要做,比如检查邮箱、看看日历。好处是它可以一次做完好几件事,而且它记得你们之前聊过什么,能做出更聪明的决定。如果清单里的事情都不紧急,它就会悄悄说“心跳正常”,不打扰你。
什么时候用心跳?
- 想做很多事情:比如你既想让它看邮箱,又想让它看日历,还想让它看看通知。用心跳,它一次醒来就能全做完。
- 需要它记得之前的事:比如你刚才在聊一个项目,心跳时它就能接着想这个项目的事。
- 不要求非常准的时间:心跳的时间可能会有一点点前后变化,这没关系。
闹钟(Cron)是什么? 闹钟是设定在非常非常准确的时间去做一件事。比如“每天早上7点整给我发天气预报”。它可以在一个全新的、干净的环境里运行,不会弄乱你和小助手平时聊天的地方。
什么时候用闹钟?
- 需要非常准的时间:必须是“9点整”,不能是“9点左右”。
- 只想做一件事:这件事是独立的,不需要知道你们之前聊过什么。
- 想用不一样的大脑:这件事可能需要一个更聪明(或者更便宜)的“大脑”(模型)来完成。
- 只提醒一次:比如“20分钟后提醒我开会”,可以用
--at参数来设定。 - 事情很多很杂:如果这件事会留下很多聊天记录,用独立的闹钟就不会弄乱主聊天窗口。
怎么选择呢?有个简单的流程图可以帮你: 先问:这件事需要在非常准确的时间做吗?
- 是 → 用闹钟(Cron)。
- 否 → 继续问。
再问:这件事需要在一个干净的、独立的环境做吗?(不想影响主聊天)
- 是 → 用独立的闹钟(Cron isolated)。
- 否 → 继续问。
接着问:这件事能和其他定期检查的事情一起做吗?(比如检查邮箱、日历)
- 是 → 用心跳(加到
HEARTBEAT.md清单里)。 - 否 → 用闹钟。
最后问:这是只做一次的提醒吗?
- 是 → 用带
--at参数的闹钟。 - 否 → 继续问。
还需要问:做这件事需要一个不一样的大脑(模型)吗?
- 是 → 用独立的闹钟,并指定
--model。 - 否 → 用心跳。
小心和注意的地方:
- 心跳检查的清单(
HEARTBEAT.md)不要写得太长,不然小助手“醒来”一次会想很久,可能会慢一点。 - 闹钟如果设成每小时整点运行(像
0 * * * *),系统会自动让它们错开一点时间开始,防止所有闹钟一起响。如果你不想这样,可以用--exact参数。 - 闹钟在独立环境运行时,默认会把结果总结一下发给你(
--announce)。如果你不想它发消息,可以设置成--announce none。
最好的办法是两个一起用: 用心跳来处理那些经常要检查的、可以一起做的事情(每30分钟一次)。用闹钟来处理那些必须准点做的、或者独立的大任务。这样既聪明又高效!