ドキュメント · ガイド
AstrBot を任意のモデルで
AstrBot(AstrBotDevs/AstrBot)は QQ、Telegram、Discord、Lark などのプラットフォームにモデルをつなぐチャットボットフレームワークです。設定はすべて data/cmd_config.json 一つにあります。magpie はそこに OpenAI 互換の magpie ソースと magpie の各モデルの項目を加え、選んだものを AstrBot の既定のチャットモデルにします。そのためボットで magpie のすべてのモデル(DeepSeek、GLM、Kimi、Qwen、OpenAI や Anthropic のキー、ChatGPT や Copilot のサブスクリプション)が、AstrBot の WebUI にキーを入れずに使えます。
AstrBot の設定
- AstrBot を一度起動する最初の起動で
data/cmd_config.jsonが書かれます。4.10 以降(provider_sourcesのある設定)が必要です。 - magpie にプロバイダーを追加プロバイダー ページで API キーを追加するか、サブスクリプションにサインインします。
- AstrBot の行でモデルを選ぶエージェント ページで AstrBot に magpie のモデルを選びます。
- AstrBot を再起動するAstrBot は起動時にだけ設定を読みます。再起動するとボットが新しいモデルを使います。
magpie astrbot deepseek/deepseek-v4-pro # そのあと AstrBot を再起動
magpie は AstrBot のルートをこの順で探します:ASTRBOT_ROOT、デスクトップ版の ~/.astrbot、astrbot init を実行したフォルダー(ホーム、~/astrbot、~/AstrBot。README とソースのクローンが置く場所)。ほかの場所で動かす AstrBot は、ASTRBOT_ROOT をそのフォルダーにして magpie を起動してください。
cmd_config.json に書かれるもの
4.10 から AstrBot はチャットプロバイダーを二つのリストに分けます。provider_sources はエンドポイントとキー、provider の各項目はあるソースのモデル一つです。magpie は id magpie のソース(OpenAI Compatible、ゲートウェイの /v1、AstrBot と分かるキー付き。そのため magpie の使用量で AstrBot の分として数えられます)と、各モデルの項目 magpie/<プロバイダー>/<モデル> を加え、agent_runner.config.model.provider_id を選んだものにします(agent_runner 以前のファイルでは provider_settings.default_provider_id)。
///data/cmd_config.json { "provider_sources": [ …, {"id": "magpie", "provider": "openai", "type": "openai_chat_completion", "provider_type": "chat_completion", "enable": true, "key": ["…"], "api_base": "http://127.0.0.1:3425/v1", …} ], "provider": [ …, {"id": "magpie/deepseek/deepseek-v4-pro", "provider_source_id": "magpie", "model": "deepseek/deepseek-v4-pro", "modalities": ["text", "tool_use"], "max_context_tokens": …} ], "agent_runner": {"runner_type": "local", "config": {"model": {"provider_id": "magpie/deepseek/deepseek-v4-pro"}}} }
どのモデルにも tool_use が付きます。ないと AstrBot はモデルのツールを外しますが、ゲートウェイはどのモデルでもツール呼び出しを渡せます。画像は magpie が知るそのモデルの対応どおりに付きます。magpie がコンテキストウィンドウを知らないときは 0 で、AstrBot が自分で調べます。
再起動が要る理由
AstrBot は起動時にファイル全体をメモリに読み、WebUI は保存のたびにファイル全体を書き戻します。そのため magpie の変更には AstrBot の再起動が要り、再起動前に WebUI で保存すると上書きされます。magpie のチェックは magpie のソースが消えたことに気づき、接続し直すよう知らせます。
agent_runner.runner_type が local でないとき(外部のエージェントランナー)は、AstrBot はチャットモデルを使わず、magpie のチェックもそう知らせます。
自分の設定
最初に書く前に、magpie はファイルを cmd_config.json.before-magpie にコピーします。自分のソースとモデルはバイト単位でそのままで、WebUI で magpie の項目に加えた変更(ソースの timeout や proxy、モデルのオフ、extra body)も残ります。/provider で一つのチャットに選んだモデルは AstrBot 自身のデータベースにあり、そのままです。AstrBot は UTF-8 BOM 付きでファイルを書き、magpie もそれを保ちます。
Docker の AstrBot
Docker の AstrBot は magpie がつなぐ対象ではありません。data フォルダーは magpie が知らないボリュームで、このマシンのループバック上のゲートウェイはコンテナのものではないからです。
元に戻す
magpie で行を既定に戻すと、magpie のソースとモデルを外し、既定のチャットモデルを接続前のものに戻します(その後 AstrBot で別のものを選んでいれば、それが残ります)。自分のモデルを選ぶこともでき、magpie のモデルは切断するまでリストに残ります。どちらのあとも AstrBot を再起動してください。
magpie astrbot default # そのあと AstrBot を再起動
よくある質問
AstrBot で DeepSeek、GLM、Kimi、Qwen は使えますか?
使えます。magpie が cmd_config.json に OpenAI 互換の magpie ソースと各モデルの項目を加え、選んだものを既定のチャットモデルにします。AstrBot を再起動すると使えます。
ボットが前のモデルのままです。
AstrBot は起動時にだけ cmd_config.json を読むので、再起動してください。その前に WebUI で保存すると magpie の変更が上書きされます。
magpie のソースが消えました。
WebUI の保存がファイル全体を書き戻したためでしょう。magpie で AstrBot をもう一度接続し、AstrBot を再起動してください。
Docker の AstrBot でも使えますか?
自動ではつなぎません。magpie はコンテナのデータボリュームを知らず、このマシンのループバックはコンテナのものではありません。
同じモデルを他のエージェントでも:nanobot を任意のモデルで、QwenPaw を任意のモデルで、OpenClaw を任意のモデルで、magpie で Cherry Studio にすべてのモデルを。エラーが出るときは よくあるエラーの直し方、または Discord で質問してください。