这是一个为AstrBot开发的智能定时任务插件,它可以帮助用户设置智能化的定时提醒和自动执行任务,并支持与AI进行自然语言交互。
- 支持设置一次性或重复性的定时提醒
- 支持设置自动执行任务,到时间后AI会自动执行指定操作
- 支持设置指令任务,到时间后直接执行指定指令并转发结果
- 支持调用其他LLM函数,实现更复杂的自动化任务
- AI智能化提醒,生成自然语言的提醒内容
- 支持多种重复模式:每天、每周、每月、每年
- 支持法定节假日判断,可设置仅在工作日或节假日触发的提醒和任务
- 支持会话隔离,群聊中每个成员可以有独立的提醒和任务
- 支持远程群聊管理,可以在当前群聊中为其他群聊设置、查看和管理任务
- 简单的命令管理系统
- 持久化存储提醒和任务数据
- 将插件文件夹
astrbot_plugin_sy
复制到 AstrBot 的 plugins 目录下 - 重启 AstrBot
插件会注册为AI工具,可以直接用自然语言设置提醒,例如:
- "帮我设置一个提醒,明天早上8点提醒我去上班"
- "每天晚上10点提醒我睡觉"
- "每个工作日早上8点提醒我打卡"
除了提醒外,还可以设置任务,让AI在指定时间自动执行操作:
- "设置一个任务,明天早上8点发送今日天气预报"
- "每天中午12点帮我汇总今日新闻"
- "每个天下午5点提醒所有人下班,工作日触发"
- "帮我删了之前布置的开会任务"
指令任务是一种特殊的任务类型,不需要AI处理,直接执行指定的指令:
- 可以定时执行其他插件的指令,如获取配置、查看状态等
- 执行结果会直接转发给用户
- 不消耗LLM资源,执行效率更高
- 支持复杂指令,使用
--
分隔符避免指令被错误解析 - 优化了执行等待时间,支持长时间运行的指令(可以在设置里增加等待时间)
插件提供以下命令用于管理提醒和任务:
- 添加提醒: /rmd add <内容> <时间> [开始星期] [重复类型] [节假日类型] 例如:
/rmd add 写周报 8:05 mon weekly
/rmd add 上班打卡 8:30 daily workday
(每个工作日)/rmd add 休息提醒 9:00 daily holiday
(每个法定节假日)
- 添加任务: /rmd task <内容> <时间> [开始星期] [重复类型] [节假日类型] 例如:
/rmd task 发送天气预报 8:00 daily
/rmd task 工作安排 9:00 mon weekly workday
(每周一工作日)
- 添加指令任务: /rmd command <指令> <时间> [开始星期] [重复类型] [节假日类型] 例如:
/rmd command /weather 9:00 daily
(每天9点获取天气)/rmd command /news 18:00 mon weekly
(每周一18点获取新闻)/rmd command /rmd--ls 8:00 daily
(使用--避免指令被错误分割)/rmd command /complex--command 10:00
(执行复杂指令)/rmd command /rmd--ls----before--每日提醒 8:00 daily
(自定义标识放在开头)/rmd command /rmd--ls----after--执行完成 8:00 daily
(自定义标识放在末尾)
-
查看所有提醒和任务: /rmd ls
-
删除指定提醒或任务: /rmd rm <序号> 例如:删除第1个提醒
/rmd rm 1
-
查看帮助信息: /rmd help
插件支持远程群聊管理功能,可以在当前群聊中为其他群聊设置、查看和管理任务:
远程群聊命令列表:
- 在指定群聊中添加提醒: /rmdg add <群聊ID> <内容> <时间> [开始星期] [重复类型] [节假日类型] 例如:
/rmdg add 1234567890 写周报 8:05 daily
- 在指定群聊中添加任务: /rmdg task <群聊ID> <内容> <时间> [开始星期] [重复类型] [节假日类型] 例如:
/rmdg task 1234567890 发送天气预报 8:00 daily
- 在指定群聊中添加指令任务: /rmdg command <群聊ID> <指令> <时间> [开始星期] [重复类型] [节假日类型] 例如:
/rmdg command 1234567890 /weather 9:00 daily
/rmdg command 1234567890 /rmd--ls----before--每日提醒 8:00 daily
(自定义标识放在开头)/rmdg command 1234567890 /rmd--ls----after--执行完成 8:00 daily
(自定义标识放在末尾)
- 查看指定群聊的提醒和任务: /rmdg ls <群聊ID> 例如:
/rmdg ls 1234567890
- 删除指定群聊中的提醒或任务: /rmdg rm <群聊ID> <序号> 例如:
/rmdg rm 1234567890 1
- 查看远程群聊帮助信息: /rmdg help
提醒和任务支持以下重复类型:
none
: 一次性(默认)daily
: 每天重复weekly
: 每周重复monthly
: 每月重复yearly
: 每年重复
在重复类型的基础上,还可以指定节假日类型:
workday
: 仅在工作日触发(法定节假日不触发)holiday
: 仅在法定节假日触发
会话隔离功能使群聊中的每个成员都能拥有自己独立的提醒和任务列表,其他成员无法看到或操作。
- 关闭状态:群聊中所有成员共享同一组提醒和任务列表
- 开启状态:群聊中每个成员都有自己独立的提醒和任务列表
会话隔离功能默认关闭,可以通过管理面板的插件配置开启:
- 进入AstrBot管理面板
- 找到"插件管理">"本插件"
- 点击"配置"按钮
- 将"启用会话隔离"选项勾选,然后保存
注意:切换会话隔离模式不会导致数据丢失,只会改变提醒和任务的可见性。
插件会在 /data/plugin_data/ai_reminder
目录下自动创建 reminder_data.json
文件用于存储提醒和任务数据。
插件支持以下配置选项,可通过管理面板进行设置:
- 启用会话隔离:群聊中每个成员拥有独立的提醒和任务列表
- 启用上下文功能:使用用户对话上下文生成更自然的提醒内容
- 关闭上下文时的提示词模板:自定义禁用上下文时的提醒提示词
- 最大上下文数量:限制使用的对话上下文条数(默认5条)
配置保存在 data/config/ai_reminder_config.json
文件中,也可通过管理面板配置。
法定节假日数据会缓存在 /data/plugin_data/ai_reminder/holiday_cache.json
文件中,缓存期为30天,过期后会自动更新。
- 提醒:到时间后会提醒用户做某事,例如"提醒我去开会"
- 任务:到时间后AI会自动执行指定的操作,例如"发送天气预报"或"调用某个函数"
- 指令任务:到时间后直接执行指定的指令并转发结果,不需要AI处理,例如"/memory_config"
当指令包含空格时,系统可能会错误解析。使用 --
分隔符可以避免这个问题:
# 错误的方式(会被错误解析为 /rmd)
/rmd command /rmd ls 08:01 daily
# 正确的方式(完整指令 /rmd ls)
/rmd command /rmd--ls 08:01 daily
指令任务支持自定义标识,使用 ----
分隔符可以自定义显示的文字和位置:
# 自定义标识放在开头
/rmd command /rmd--ls----before--每日提醒 8:00 daily
# 自定义标识放在末尾
/rmd command /rmd--ls----after--执行完成 8:00 daily
# 位置可选:before(开头)、after(末尾)、start(开头)、end(末尾)
# 如果不使用 ---- 分隔符,默认显示 [指令任务]
指令执行完成后,结果会自动转发给用户,包括:
- 文本消息
- 图片、文件等多媒体内容
- 错误信息(如果执行失败)
法定节假日数据使用第三方API获取:http://timor.tech/api/holiday 数据会在本地缓存,避免频繁调用API。
- AstrBot 框架 v3.4.15+(会话隔离功能需要此版本以上)
- APScheduler
- Python 3.7+
- 作者:kjqwdw
- 版本:v1.3.6
新增功能:
- 新增远程群聊管理功能:可以在当前群聊中为其他群聊设置、查看和管理任务
- 新增
/rmdg
指令组:包含完整的远程群聊管理命令 - 支持跨群聊任务管理:无需切换到目标群聊即可管理任务
- 指令任务:指令任务增加前后缀修改功能
如需帮助,请参考 AstrBot插件开发文档
如有问题或建议,请访问以下地址反馈: 反馈