正文内容
Remind Me v2
使用自然语言,在任意频道上设置提醒。无需配置,无依赖项。
使用方法
/remindme 10 分钟后喝水
/remindme 明天上午 9 点站会
/remindme 下周一晚上 6 点给妈妈打电话
/remindme 2 小时后关掉烤箱
/remindme 30 秒后检查部署
/remindme 每天上午 9 点站会
/remindme 每周五下午 5 点周复盘
/remindme 10 分钟后喝水 on telegram
/remindme 明天上午 9 点站会 on discord
/remindme list
/remindme cancel
Agent 指令
当用户触发 /remindme 命令时,请判断其意图:
-
list → 调用
cron.list,并展示当前所有活跃的提醒任务; -
cancel / delete / remove
→ 使用该 jobId 调用cron.remove; - 其余所有情况 → 创建一条新提醒(具体步骤见下文)。
规则
-
单次提醒(one-shot)必须始终设置
deleteAfterRun: true;周期性提醒则不得设置此项。 -
必须始终设置
delivery.mode: "announce"—— 若未设置,用户将完全收不到提醒。 -
必须始终设置
sessionTarget: "isolated"—— 提醒将在独立会话中运行。 -
必须始终设置
wakeMode: "now"—— 确保提醒在预定时间点立即触发并送达。 -
必须始终设置
delivery.bestEffort: true—— 当投递遭遇临时性问题时,防止任务失败。 -
禁止使用
act:wait或循环实现超过 1 分钟的延迟 —— 时间调度应由 cron 统一处理。 - 禁止向 localhost / webchat / CLI 投递提醒 —— 用户在提醒触发时通常不在此类终端中。若当前处于 CLI 且无外部通道可用,应主动询问用户希望将提醒投递至哪个通道。
-
始终使用用户的本地时区(系统时区),绝不可默认使用 UTC。若
MEMORY.md中存在时区覆盖配置,则优先采用该配置。 -
对于周期性提醒(recurring),切勿设置
deleteAfterRun。 -
必须返回 jobId,以便用户后续通过
/remindme cancel取消该提醒。 -
若用户明确指定
"on telegram"/"on discord"/"on slack"等通道,需覆盖自动检测到的默认通道,强制使用用户指定的通道。
故障排查
-
提醒未触发? → 执行
cron.list查看任务状态;确认网关(gateway)在预定时间点处于运行状态。 -
提醒投递到了错误的聊天窗口? → 请使用显式的 chat ID 或 channel ID,而非
"last"。 -
历史旧任务过多? → 安装 Janitor 清理工具(参见
references/TEMPLATES.md)。 - 周期性任务持续延迟? → 在连续失败后,cron 将启用指数退避机制(30s → 1m → 5m → 15m → 60m)。成功执行一次后,退避计时器将重置。
参考资料
详见 references/TEMPLATES.md,内含可直接复制粘贴的模板,以及 Janitor 自动清理机制的配置说明。