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が同梱されています。

セットアップ方法

  1. インストール – AstrBotプラグインマーケットまたはリポジトリのReleaseページからZIPをダウンロードし、AstrBot WebUI(➕ → ファイルから)を使用して追加します。
  2. 依存関係 – 必要なパッケージのほとんどはAstrBotに既に含まれています。必要に応じて、次を実行してください:
    pip install fastapi uvicorn
    # Python <3.11の場合
    pip install "tomli>=2.0; python_version < '3.11'"
    
  3. 再起動 (オプション) – プラグインが表示されない場合は、AstrBotを再起動します。
  4. 設定 – プラグインの設定ページ(またはそのWebUI)を開き、以下を行います:
    • ボットに監視させたい各会話のUMOを追加します(そのチャットで/sidと送信して取得します)。
    • プロアクティブプロンプト、タイミング設定、おやすみ時間帯などを入力します。
  5. 保存 – ボットはリストされたセッションを監視し、スケジュールに従ってプロアクティブメッセージを送信します。

会話識別子(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から直接取得されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト