比較:ErisPulse と NoneBot2
Tip
この記事を読むべきタイミング:Python ボットフレームワークでコードを書く予定があり、NoneBot2 と ErisPulse の間で選定を行っているときにお読みください。コードを書かない場合は読み飛ばして構いません。
一言でいった両者の位置づけの違い:
- NoneBot2:プラグインエコシステムが最も充実した非同期ボットフレームワーク。イベント処理モデルが成熟しており、コミュニティの蓄積は10年以上
- ErisPulse:OneBot12 統一イベントモデルを核とするボット SDK。1つの handler で自然にクロスプラットフォーム対応が可能で、モジュールレベルのホットリロードとエコシステムサービス契約がネイティブ設計として組み込まれている
どちらも「開発者がコードを書く」フレームワークであり、インストールしてすぐに使える製品ではありません。
設計差異の対照表
| 観点 | ErisPulse | NoneBot2 |
|---|---|---|
| クロスプラットフォーム方式 | OneBot12 統一イベントモデルがコアに組み込まれており、handler はプラットフォームの差異を意識する必要がない | アダプターごとにイベントモデルが異なり、クロスプラットフォーム対応は統一メッセージ抽象化プラグイン(例:alconna)に依存 |
| プラグイン体系 | モジュール = PyPI パッケージ + epsdk CLI によるインストール + モジュールマーケットのインデックス |
プラグイン = PyPI パッケージ(nonebot-plugin-*)、ストアサイトで検索、pip でインストール |
| 送信 API | SendDSL チェーン送信:@、返信、リトライ、タイムアウト、一括送信を1行で完了 | Matcher 側の send / 各アダプターの API、統一メッセージ抽象化はプラグインが提供 |
| ホットリロード | モジュール/アダプターレベルのホットリロード、保存するだけで即時反映、プロセスは再起動しない | dev モードでのプロセス全体 reload(ファイル変更時にプロセスを再起動) |
| AI 統合 | フレームワークは AI 依存ゼロ。モジュールがサービス契約を宣言するだけで自動的に QvQChat エージェントのツールになる。ApiMCP によりボットを Claude などの MCP クライアントに逆方向へ公開することも可能 | コミュニティプラグインを必要に応じて組み合わせ |
| 管理ツール | 公式 Dashboard Web パネル、epsdk CLI、ErisPulse-App モバイルクライアント |
コミュニティ WebUI プラグイン、nb-cli |
| 本番環境機能 | 3次元スコープ、所有権の自動回収、シャドウモジュールのカナリアリリース、モジュール間 RPC サービス契約 | 依存性注入、フックシステム、コミュニティソリューション |
| ストレージ | 統一 KV + SQL API(sqlite/mysql/postgres を設定で切り替え) | 各プラグインが独自にソリューションを選択 |
どんなときにどちらを選ぶか
NoneBot2 を選ぶべきケース:エコシステムにすでに存在する特定のプラグインが必要な場合や、チームがそのイベントモデルに深く精通している場合。プラグインの蓄積は圧倒的な強みであり、その他の違いはコードで補うことができますが、エコシステムだけは補えません。
ErisPulse を選ぶべきケース:クロスプラットフォームの一貫性が核心的な要件である場合(統一イベントモデル + 16 個のプラットフォームアダプター);「コードを変更しても再起動不要」の開発リズムを望む場合;モジュールの機能を AI ツールボックスに直接組み込みたい場合で、別途 LLM をつなぎたくない場合。
Note
この比較は双方の公開ドキュメントに基づいて整理したものです。NoneBot2 のプラグインエコシステムとコミュニティ規模が著しく大きいことは客観的事実です。意思決定の際は相手側の公式ドキュメントをご確認ください。
次のステップ
- ErisPulse での書き心地を見たい方:5分クイックスタート
- 統一イベントモデルの詳細を知りたい方:基本概念
- 「グループ内 AI アシスタント」系オールインワンプラットフォームと比較している方:比較:AstrBot と LangBot