Skip to main content
models.providers.<id>.localService は、プロバイダーが所有するローカルモデルサーバーを必要に応じて起動します。モデルまたは埋め込みリクエストでそのプロバイダーが選択されると、OpenClaw はヘルスエンドポイントをプローブし、停止している場合はプロセスを起動して、準備が整うまで待ってからリクエストを送信します。高コストなローカルサーバーを一日中稼働させておくことを避けるために使用します。

仕組み

  1. モデルまたは埋め込みリクエストが、設定済みのプロバイダーに解決されます。
  2. そのプロバイダーに localService がある場合、OpenClaw は healthUrl をプローブします。
  3. プローブが成功すると、OpenClaw はすでに稼働中のサーバーを使用します。
  4. プローブが失敗すると、OpenClaw は args を指定して command を起動します。
  5. OpenClaw は readyTimeoutMs が期限切れになるまでヘルスエンドポイントをポーリングします。
  6. リクエストは通常のモデルまたは埋め込みトランスポートを経由します。
  7. OpenClaw がプロセスを起動し、idleStopMs が設定されている場合、処理中の最後のリクエストがその時間にわたってアイドル状態になると、プロセスを停止します。
このために OpenClaw が launchd、systemd、Docker、またはデーモンをインストールすることはありません。サーバーは、最初に必要とした OpenClaw プロセスの通常の子プロセスです。 起動は、設定済みのプロバイダーとコマンド、引数、環境変数の組み合わせごとに直列化されるため、同じサービスに対するチャットリクエストと埋め込みリクエストが同時に発生しても、重複するサーバーは起動されません。各リクエストは応答処理が完了するまで独自のリースを保持するため、アイドル時のシャットダウンは、処理中のすべてのモデルリクエストと埋め込みリクエストが完了するまで待機します。設定済みのプロバイダーエイリアスは別々に扱われます。2 つのエイリアスで異なる GPU ホストを指定しても、同じ Ollama、LM Studio、または OpenAI 互換アダプター ID に統合されることはありません。 別の OpenClaw プロセスが同じ healthUrl ですでに正常なサーバーを稼働させている場合、このプロセスはそのサーバーを管理対象として引き継がずに再利用します(各プロセスが管理するのは、自ら起動した子プロセスだけです)。起動ログと終了ログには、長さを制限して機密情報を編集した子プロセス出力の末尾部分に加え、タイミングと終了の詳細が含まれます。設定済みの環境変数値が出力されることはありません。

設定形式

コールドスタートが遅い場合や生成に時間がかかる場合に、デフォルトのモデルリクエストタイムアウトに達しないよう、プロバイダーエントリ(localService ではありません)に timeoutSeconds を設定します。サーバーの準備状態がベース URL の /models 以外の場所で公開される場合は、必ず明示的な healthUrl を設定してください。

フィールド

Inferrs の例

Inferrs はカスタムの OpenAI 互換 /v1 バックエンドであるため、同じ localService API を inferrs プロバイダーエントリで使用できます。
command を、OpenClaw を実行しているマシン上での which inferrs の結果に置き換えます。Inferrs の完全なセットアップ: Inferrs

ds4 の例

完全なセットアップ、コンテキストサイズの設定、および検証コマンドについては、ds4 を参照してください。

関連項目

ローカルモデル

ローカルモデルのセットアップ、プロバイダーの選択肢、安全性に関するガイダンス。

Inferrs

Inferrs の OpenAI 互換ローカルサーバーを介して OpenClaw を実行します。