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)
- Feishu、DingTalk、Telegram、KOOK、およびREADMEに記載されているその他。 未テストのプラットフォームには疑問符が付けられています。理論上は動作するはずですが、コミュニティからのフィードバックが必要です。
既知の制限(最新リリース時点)
- プロアクティブな返信の品質は、提供するプロンプトと基盤となるLLMに大きく依存します。プロンプトが不適切だと、「キャラクターが崩れた」メッセージが生成される可能性があります。
- 一部のプラットフォームでは追加の設定が必要な場合があります(例:企業向けWeChatではWebhook URLが必要)。
- 起動時の自動トリガーはオプションであり、手動でタスクを作成したい場合は無効にできます。
- 非常に長い返信はデフォルトでは分割されません。分割応答オプションを有効にする必要があります。
詳細情報
- 完全なドキュメントはリポジトリ(
README_EN.md、README_JP.md、およびdocs/フォルダ)にあり、プラグインのWebUIから直接表示できます。 - 著者の注記では、コードはLLMの助けを借りて生成されたと説明されています。リポジトリは定期的に保守・更新されています。
- コミュニティディスカッションはQQグループ1033089808で行われています(バッジにリンク)。
上記の詳細はすべて、プロジェクトのREADMEから直接取得されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト