.env に追加し、セットアップページでモデルを選ぶだけで十分です。既定値と異なる設定にしたい場合は config.{ENV}.yaml を使います。
設定ファイル
設定の優先順位は、高い順に環境変数、オーバーレイ、
config.devices.yaml と config.llm.yaml、そして config.yaml です。辞書はファイルをまたいでマージされません:オーバーレイで設定したキーは値全体を置き換えるため、オーバーレイで EMAIL_PREDEFINE_CODES を設定すると、追加ではなくデモアカウントがまるごと置き換わります。
ENV はオーバーレイファイルを選び、ログにも記録されます。本番モードを有効にするには PRODUCTION を設定してください。環境名を prod にするだけでは有効になりません。
オーバーレイでは、名前に _KEY、_PASSWORD、_PASS、_PWD、_SECRET、_SK、_TOKEN のいずれかを含む値が、.env の CONFIG_ENCRYPTION_KEY で暗号化されます。
モデル
各用途は、1つのベンダーキーかローカルモデルのどちらかで動きます。初回設定ページ(モデルが未設定の間は./deploy.sh がそのリンクを表示し、以降は 設定 › モデル から)は、どちらを選んでもデータベースに暗号化して保存し、再起動なしに適用します。そして .env で設定済みの値を上書きすることはありません。保存には .env の SETUP_TOKEN が必要で、モデルを設定済みのあとはログイン済みのセッションも必要になります。
ベンダーキー
次のいずれかをcompose.yaml のそばの .env に書き、反映させます:
docker compose restart は .env を読み直しませんが、up -d は読み直します。./deploy.sh は、自分の環境変数として渡されたキーを .env に書き込むため(OPENROUTER_API_KEY=sk-or-... ./deploy.sh)、初回実行では追加の手順は要りません。
それぞれのキーは、対話(モデル選択)、視覚(検査報告の写真やスキャンページ)、テキスト(指標抽出、ファイルのタイトル、要約、日記の文)という3つの用途でモデルを選びます。各キーが選ぶモデルと、その取得先は 冒頭の表にまとまっています。モデル名は自由に変更できます。初回設定ページではキーの横に表示され、.env では各条目が model_env として名指す変数(たとえば OPENROUTER_CHAT_MODEL)で置き換えられます。ベンダーのモデルは、実際のリクエストが1回成功してから保存されます。
ローカルモデル
キーがない場合、local、local-utils、local-ocr の各条目が、この端末上の OpenAI 互換サーバーからすべての用途にモデルを提供します。Mirobody が同梱するプリセットのランタイムは llama.cpp の llama-server です。初回設定ページがサーバーを見つけ、提供しているモデルを一覧し、選んだサイズを読み込みます。同じ選択を .env に書くと次のようになります:
UTILS_OCR_MODEL は4つ目の用途です。ほかのどのモデルより先に検査報告の写真やスキャンページを読む文書 OCR モデルで、その中の表組みはモデルを使わず見出しで読み取ります。出荷時の値は local-ocr 条目です。.env の HF_ENDPOINT で、一度きりのモデルダウンロード先を Hugging Face のミラーに指定できます。
.env にベンダーキーがあると、ローカルの条目より優先されます。キーがある間、初回設定ページは 100% この端末で動かす を拒否します。キーを残したままローカルモデルを動かすには:
doctor レポート
mirobody doctor は見つかったキーとローカルサーバー、各用途が選んだ条目を表示し、使えるものがない用途には直し方を示します。--probe を付けると各用途に実際のリクエストを1回送り(ツール呼び出し、スキーマに沿った回答、画像、OCR の各パス)、ローカルサーバーがその条目の指すモデルを実際に動かしているか確認します。ベンダーでは数トークン、ローカルモデルでは数分かかります。
モデルを変更する
- ある用途を別の条目に向ける。
UTILS_VISION_MODEL、UTILS_TEXT_MODEL、UTILS_OCR_MODELは、条目名、条目名のリスト(キーかサーバーがあるものを先頭から採用)、provider/model形式の文字列、インライン条目のいずれかを取ります。同名の環境変数はファイルより優先されます。例:UTILS_VISION_MODEL=qwen-utils。 - 対話の既定モデルを変更する。
DEFAULT_MODELにMODELSの条目名を指定します。未設定の場合は、キーかサーバーがある最初の条目が既定になります。 - キーを別のゲートウェイ経由にする。
.envの<PREFIX>_BASE_URL(PREFIXはキー名から_API_KEYを除いたもの)は、そのキーを読むすべての条目を別の OpenAI 互換エンドポイントへ振り向けます。例:OPENROUTER_BASE_URL。ANTHROPIC_BASE_URLは Anthropic 自身の SDK も読むため、他のツール用にすでに設定済みのマシンでは Mirobody も一緒に向け先が変わります。mirobody doctorは各用途が実際に解決したエンドポイントを表示します。 - ベンダーを追加する。
config.llm.yamlのMODELSに条目を追加し、llm_type: openai、base_url、model、そしてシークレットを保持する.env変数の名前をapi_keyに設定します。視覚用途に使う条目はsupports_image: trueを宣言する必要があります。追加はconfig.llm.yaml自体に対して行ってください。オーバーレイにMODELSブロックを書くと表全体が置き換わってしまいます。
デプロイ設定
エージェントの挙動を決めるキーはエージェントで説明しています。
シークレット
PG_ENCRYPTION_KEY は CONFIG_ENCRYPTION_KEY とは別の値で、チャットメッセージやアップロードしたファイルなど、保存されたコンテンツを暗号化します。DATABASE_DECRYPTION_KEY(16進数)は各 provider が保存するデバイスの認証情報を暗号化します。どちらのキーも環境間でコピーしないでください。これらのシークレットを自分で生成し、別のホストへ移す方法はサーバーへのデプロイで説明しています。
拡張ディレクトリ
エンジンは起動時に3種類のディレクトリ一覧を走査します。追加するだけで、パッケージを編集せずにエンジンを拡張できます。
オーバーレイでこれらのいずれかを設定するとリスト全体が置き換わるため、既定の条目を自分の条目と一緒に書いてください。インストール済みのパッケージは、
mirobody.tools、mirobody.agents、mirobody.providers の各エントリーポイントを通じて同じ3つを拡張できます。
すべての設定キーの完全なリファレンスは にあります。