AstrBotはQQ、Telegram、WeChat Work、Feishu、DingTalk、Slackなど複数のIMプラットフォームに接続できるオープンソースのAgentチャットボット基盤です。LLM対話、マルチモーダル処理、MCP連携、知識ベース、ペルソナ設定などを1つのバックエンドで提供します。個人のAI相棒から企業のカスタマーサポート、自動化アシスタントまで想定した本番運用向けの構成になっています。
コアは`astrbot/core`にあり、`core_lifecycle.py`がプラットフォーム接続・Agent実行・DB・プラグインを起動時に束ねます。メッセージは各プラットフォームのアダプター(`astrbot/core/platform/sources/lark/server.py`など)がWebhookやWebSocketで受信し、イベントキューに積みます。`astrbot/core/agent/`配下のAgentランナー(Dify、Coze、DashScope、DeerFlowなど)がLLM呼び出しとツール実行を担当し、`tool_executor.py`がMCPツールやコマンドを橋渡しします。応答生成は`builtin_stars/astrbot/main.py`のようなStar(組み込みプラグイン)がフィルターとpriorityでイベントを横取りし、会話管理は`conversation_mgr.py`とSQLite実装(`db/sqlite.py`)が担います。CLI(`astrbot/cli`)はuv経由で`init`「run」「plug」などのサブコマンドを提供し、Dockerfileはpython:3.12-slim上にuvで依存を固定してmain.pyを起動する構成です。
- STEP 01
`uv`をインストール後、READMEのワンクリック導入コマンドを実行するとAstrBotが初回起動し、macOSではセキュリティチェックのため10〜20秒ほど待たされます。
- STEP 02
初回起動時に`astrbot init`相当の初期化が走り、`data/`配下に設定ファイルとSQLiteデータベースが作成されるのを確認できます。
- STEP 03
WebUI(ポート6185)にアクセスすると、ダッシュボードでLLM Provider(OpenAI、Gemini、Llamaなど)やIMプラットフォームの接続情報を入力する画面が表示されます。
- STEP 04
QQやTelegramなど任意のプラットフォームを設定して`help`コマンドを送ると、`builtin_commands`が応答し、`sid`「reset」「stats」などの組み込みコマンド一覧が使えることが分かります。
- STEP 05
プラグイン導入コマンド(`astrbot plug`)を試すと、1000件超のマーケットプレイスから任意の拡張プラグインをワンクリックで追加できます。
- STEP 06
Dockerで動かす場合は`docker build`後に`docker run`し、コンテナ内でffmpegやNode.jsなどの依存が既に揃っている点が確認できます。
実行すると、WebUIとWeb ChatUIを備えたAgentチャットボットのバックエンドが手に入り、複数IMプラットフォームに同時接続したLLM対話サービスをすぐに稼働させられます。会話履歴・トークン使用量統計・ペルソナ設定・プラグイン管理までWebUIから一元操作できる状態になります。
Agent Sandboxやprocess_sandbox(bubblewrap、seatbelt)はOS依存のサンドボックス機構を使うため、実行環境によって利用可否や挙動が変わる可能性があります。
builtin_stars内のスキル(documents、pdf、spreadsheetsなど)はスクリプト実行を伴うため、外部ファイルを扱う際の権限設定を確認する必要があります。
マルチプラットフォーム接続は各社API仕様(Lark暗号化検証など)に依存し、アプリ側の認証情報設定を誤ると接続確立まで到達しません。
複数IMプラットフォームで同じLLM Agentを使い回したい個人開発者や、社内ナレッジベース連携のチャットボットを試作したいチームに向いています。ファイル構成(core_lifecycle、agent/runners、platform/sources、builtin_stars)とDockerfile、CLIコマンド群から機能範囲と起動手順が具体的に確認できるため、実際に導入せずともREADMEとソース構造の対応関係から動作イメージを判断できます。