Pancakes-Labs/astrbot_plugin_proactive_chat
一个能让 Bot 在私聊和群聊中发起主动消息的插件,拥有上下文感知、持久化数据、动态情绪、免打扰时段和 TTS 集成。还有独立 WebUI,可进行个性化配置。 An AstrBot plugin that enables Bot to send proactive messages in private and group chats, featuring context awareness, persistent data, dynamic emotions, do-not-disturb periods, and TTS integration. It also boasts an independent WebUI for personalized.
这是什么
astrbot_plugin_proactive_chat 是 AstrBot(一个开源 AI 聊天机器人平台)的插件。它允许机器人在对话沉默一段时间后自主发起消息。该插件适用于私聊和群聊,分别记住每个会话,并且可以调整提示词、时间、情绪、TTS 等。
核心功能
| 功能 | 说明 |
|---|---|
| 定时触发 | 在可配置的不活动期后,机器人会在最小-最大范围内选择一个随机延迟,然后发送一条消息。 |
| 启动时自动创建任务 | 插件加载时,可以在没有任何用户命令的情况下自动安排第一个主动任务。 |
| 多会话支持 | 可以同时在多个私聊和群聊中启用该功能;每个会话都有自己的计数器和计时器。 |
| 上下文感知 | 机器人可以获取对话历史或最近的平台消息(或两者),并将其提供给 LLM,以便回复符合当前话题。 |
| 个性与动态情绪 | 提示词可以使用 {{unanswered_count}} 和 {{current_time}} 等占位符,根据用户忽略机器人的次数,让机器人听起来更“孤独”、“兴奋”等。 |
| 持久化 | 未完成的任务保存到磁盘,因此机器人重启不会丢失已安排的消息。 |
| 免打扰时段 | 可以定义机器人在该时段内绝不发送主动消息的安静时段(例如 23-7)。 |
| TTS 集成 | 如果 AstrBot 配置了 TTS 服务,插件可以发送语音消息(可选地同时发送文本)。 |
| 分段回复 | 长回复可以拆分为多条短消息,并带有逼真的打字停顿。 |
| Web UI | 从 1.2.0 版本开始,插件附带内置 WebUI,显示状态、待处理任务、通知、文档,并允许您在不接触代码的情况下编辑配置。 |
如何运行
- 安装 – 从 AstrBot 插件市场或仓库的 Release 页面下载 zip,并通过 AstrBot WebUI(
➕ → 从文件)添加。 - 依赖 – 大多数必需的包已包含在 AstrBot 中。如果需要,请运行:
pip install fastapi uvicorn # 对于 Python <3.11 pip install "tomli>=2.0; python_version < '3.11'" - 重启(可选) – 如果插件未出现,请重启 AstrBot。
- 配置 – 打开插件的配置页面(或其 WebUI),然后:
- 添加您希望机器人监控的每个会话的 UMO(在该聊天中发送
/sid获取)。 - 填写主动提示词、时间设置、免打扰时段等。
- 添加您希望机器人监控的每个会话的 UMO(在该聊天中发送
- 保存 – 机器人现在将监控所列会话,并根据计划发送主动消息。
获取会话标识符(UMO)
- 在目标聊天中发送
/sid(或您的自定义唤醒词)。 - 机器人会回复类似内容:
UMO: 「default:GroupMessage:123456789」 UID: 「987654321」 - 复制
default:后引号内的部分 – 例如default:GroupMessage:123456789– 并将其粘贴到插件的 会话列表 中。
平台覆盖
该插件可在 AstrBot 能够发送 主動消息(主动消息)的任何地方工作。已测试的平台包括:
- QQ 官方机器人(WebSocket 和 Webhook)
- OneBot v11(个人 QQ)
- 飞书、钉钉、Telegram、KOOK,以及 README 中列出的其他平台。 未测试的平台用问号标记;它们理论上应该可行,但需要社区反馈。
已知限制(截至最新版本)
- 主动回复的质量在很大程度上取决于您提供的提示词和底层 LLM。糟糕的提示词可能会产生“不合角色”的消息。
- 某些平台可能需要额外配置(例如,企业微信需要 webhook URL)。
- 插件启动时的自动触发是可选的,如果您希望手动创建任务,可以禁用它。
- 很长的回复默认不会拆分;您必须启用 分段回复 选项。
查找更多信息
- 完整文档位于仓库中(
README_EN.md、README_JP.md和docs/文件夹),也可以直接从插件的 WebUI 查看。 - 作者说明代码是在 LLM 的帮助下生成的;仓库会定期维护和更新。
- 社区讨论在 QQ 群 1033089808(徽章中有链接)进行。
以上所有细节均直接取自项目的 README。
相关
- 项目
- 项目
- 项目
- 项目
- 项目