上級 12 分エージェント

Ollamaを使用したOpenClaw:モデルを接続する ローカル

このガイドでは、OpenClawをOllamaに接続して、ローカルモデル上でアシスタントを動かす方法を説明します。内容は、プロバイダーの宣言、サーバーアドレス、確保すべきコンテキストウィンドウ、ツール呼び出しに対応したモデルの選択です。作業の半分は、エラーを表示しない障害を避けることに費やされます。たとえば、切り詰められたコンテキスト、まったく呼び出されないツール、一覧にないモデルなどです。コマンドはOllamaとOpenClawのドキュメントに基づいています。両者は急速に変化しているため、貼り付ける前に読み直してください。このページには、独自テスト、速度測定、モデルランキングはありません。

著者 Thomas P.·更新 2026-10-05·Windows・macOS・Linuxでテスト済み

#OpenClawとOllama:それぞれの役割

OpenClawはゲートウェイです。メッセージングサービスからメッセージを受け取り、言語モデルに転送し、そのモデルが要求するアクションを実行するプロセスです。Ollamaはモデルサーバーです。モデルをメモリに読み込み、デフォルトではhttp://localhost:11434というアドレスのマシンのポート11434で応答します。一方をもう一方に接続するには、OpenClawでOllamaをプロバイダーとして登録し、ローカルモデルをエージェントのメインモデルに指定します。

OpenClawのドキュメントによると、この接続はOllamaのネイティブAPI(エンドポイント/api/chat)を経由します。このAPIはストリーミング応答とツール呼び出しに対応しています。この点は見た目以上に重要です。後で説明するように、アドレスの書き方を誤るだけでゲートウェイが別のモードに切り替わり、ツールが機能しなくなります。

Ollama
モデルを読み込み、コンテキストウィンドウを割り当てて、テキストを生成します。消費するメモリを決めるのはこれです。
OpenClaw
各ターンで、システム指示、利用可能なツールの説明、会話履歴を送信し、その後、モデルが要求したツールを実行します。
モデル
長い指示を保持し、期待される形式でツールを要求できる必要があります。すべてのローカルモデルがこれに対応できるわけではありません。
変化しない点
メッセージング、アシスタントのメモリ、トークン、ゲートウェイのセキュリティは、モデルの提供元にかかわらず、OpenClaw側で設定されたままです。

この接続は、チャットインターフェースの接続よりも扱いが難しくなります。チャットはモデルに数行を送るだけですが、エージェントには、最初のメッセージを送る前から、指示とツール定義を数千トークンもまとめて送ります。Ollamaのデフォルト設定は前者を想定したもので、後者には適していません。

i
ローカルだからといってリスクがないわけではありません
ローカルモデルを使えば、会話をオンラインプロバイダーに送信せずに済みます。ただし、エージェント固有のリスクがなくなるわけではありません。OpenClawは外部から来たコンテンツを読み取り、コマンドを実行する可能性があります。一般に、小さなモデルは大きなモデルよりも、罠を仕掛けたテキストによって容易に誘導されます。この点について、プロジェクトのセキュリティドキュメントも慎重な対応を促しています。ゲートウェイは専用マシン上で、可能な限り少ないツールだけを使って運用し、モデルを変更した後はopenclaw security audit --deepを再実行してください。

#前提条件

ローカルエージェントキット

あなたのマシンで動作するエージェント:エージェント型 Cline、MCP、n8n + Ollama、ローカル自動化。

  • 永久に利用できるオンラインスペース
  • PDF + ファイル
  • 生涯アップデート
OpenClawをインストール済み
起動して診断にも合格するゲートウェイ。インストールについてはここでは扱いません。「DockerでOpenClawをインストールする」ガイドを参照してください。
Ollamaがインストール済みで最新
以下で使用するollama launchコマンドは、最近のバージョンにしか存在しません。インストールについては、ガイド「Ollamaをインストールする」で説明しています。
モデルとそのコンテキスト用のメモリ
重みだけを Q4_K_M にした場合の目安は、70億パラメータのモデルで約 5 GB、140億で 9 GB、320億で 19 GB です。エージェントが要求するコンテキストウィンドウは、この数値に加算されます。
ターミナルへのアクセス
ゲートウェイをホストするマシンと、同じマシンでない場合はOllamaをホストするマシン上で。
ターミナル — 二つのツールを確認
ollama --version
openclaw --version

# Le serveur Ollama répond-il ?
curl http://localhost:11434/api/tags

最後のコマンドは、インストール済みモデルの一覧をJSON形式で返すはずです。接続拒否は、Ollamaが起動していないことを意味します。アプリケーションを起動するか、ターミナルでollama serveを実行してください。この応答が返るまで先に進む必要はありません。

#手順1:64 000トークンのコンテキストを確保する

インストールの失敗原因として最も多い設定で、Ollama側で行い、OpenClaw側では行いません。OllamaがOpenClawについて掲載しているページによると、アシスタントには大きなコンテキストウィンドウが必要で、ローカルモデルでは少なくとも64 000トークンが推奨されています。コンテキスト長に関するページでも、エージェント、ウェブ検索、コードツールについて同じ値が示されています。

一方、Ollamaは、利用可能なビデオメモリに応じてデフォルトのコンテキストウィンドウを選択します。同じドキュメントによれば、VRAMが24 GiB未満では約4,000トークン、24~48 GiBでは32,000トークン、48 GiB以上では256,000トークンです。したがって、12または16 GBのカードでは、サーバーは推奨値の十六分の一のウィンドウで起動します。これを示す通知はありません。Ollamaは超過分をエラーメッセージなしで切り捨てます。

ターミナル — Ollamaを手動で起動(Linux、macOS)
OLLAMA_CONTEXT_LENGTH=64000 ollama serve

Ollamaがすでにアプリケーションとして動作している場合(macOS、Windows)、このコマンドは実行しないでください。二つ目のサーバーがポート11434で競合します。アプリケーションの設定でコンテキスト長を調整してください。LinuxでOllamaをsystemdサービスとしてインストールした場合は、変数をサービス自体で宣言します。

ターミナル — Ollamaをサービスとしてインストール済み(Linux)
sudo systemctl edit ollama.service

# Dans l'éditeur qui s'ouvre, ajouter ces deux lignes :
# [Service]
# Environment="OLLAMA_CONTEXT_LENGTH=64000"

sudo systemctl daemon-reload
sudo systemctl restart ollama
!
64 000トークンにはメモリが必要
コンテキストウィンドウは、モデルの重みに加えてメモリを確保します。会話中は余裕のあるモデルでも、コンテキストを増やすとプロセッサー側にあふれ、エージェントが非常に遅くなることがあります。数値を示していないのはモデルによって異なるためです。ステップ4で確認する ollama ps コマンドに、実際に割り当てられた量が表示されます。あふれる場合は、コンテキストを削るより小さいモデルを選んでください。OllamaのFAQに記載された2つの変数が負荷を軽減します:OLLAMA_FLASH_ATTENTION=1 と OLLAMA_KV_CACHE_TYPE=q8_0。

#ステップ2:ツール呼び出しができるモデルを選ぶ

エージェントはツールを通じてのみ動作します。ファイルを読む、コマンドを実行する、ウェブを検索する、といった操作です。ツール要求を組み立てられないモデルは、メッセージには丁寧に返答しますが、実際には何も実行しません。このページではモデルを順位付けせず、接続する前に確認すべき基準を示します。

「tools」機能
コマンドollama show afficheにはCapabilitiesセクションがあります。そこにはtoolsが含まれていなければなりません。Ollamaのライブラリでは、対応するフィルターがhttps://ollama.com/search?c=toolsにあります。
十分なネイティブウィンドウ
同じコマンドで、モデルの最大コンテキスト長も表示されます。8,000または32,000トークン向けに設計されたモデルは、サーバーの設定にかかわらず、64,000という推奨値には対応できません。
現実的なメモリ予算
モデルの重みとコンテキストは、VRAM内、またはMacのユニファイドメモリ内に一緒に収める必要があります。12 GBのカード(RTX 3060、RTX 4070)では、単純な対話でカードが受け入れられるモデルよりも明らかに小さいモデルを選ぶことになります。16 GB(RTX 4080)と24 GB(RTX 4090)なら、より余裕があります。
長時間の安定性
一つのエージェントは、リクエストごとに複数のツール呼び出しを連続して実行します。非常に小規模なモデルは、形式やツールを間違える頻度が高くなります。どの資料も、まずは低リスクのものから、ご自身のリクエストで試すことに代わるものではありません。
ターミナル — モデルをダウンロードしてから調べる
ollama pull gpt-oss:20b
ollama show gpt-oss:20b

このガイドの以降の説明では、gpt-oss:20bを例として使用します。選択したモデルに置き換えてください。Ollamaの統合ページでは、OpenClaw向けに推奨されるモデルの一覧が更新されています。リリースに応じて変わるため、ここに固定された一覧を掲載するより、そちらを参照するほうが適切です。

i
「クラウド」モデルはローカルモデルではない
Ollamaのライブラリとollama launchコマンドのセレクターには、ラベルがcloudで終わるモデルも表示されます。これらはお使いのマシンではなくOllamaのサーバー上で実行されます。つまり、メッセージが外部に送信されます。完全にローカルでインストールするには、ollama listに表示されるダウンロード済みモデルを選択してください。

#ステップ3:OpenClawでプロバイダーOllamaを設定する

二つの方法があります。一つ目は、Ollamaのコマンドで設定を代わりに書き込む方法です。二つ目は、OpenClawの設定でプロバイダーを自分で宣言する方法です。ゲートウェイがDocker内で動作している場合や、Ollamaが別のマシンにある場合は、後者が不可欠です。

#高速な方法:ollama launch openclaw

ターミナル
# Configurer OpenClaw pour Ollama et démarrer la passerelle
ollama launch openclaw

# Configurer sans rien lancer
ollama launch openclaw --config

Ollama のドキュメントによると、このコマンドはモデルを選択し、OpenClaw が Ollama を使うよう設定してゲートウェイを起動します。ゲートウェイがすでに動作している場合は、新しい設定を自動的に再読み込みします。以前のプロジェクト名も引き続き使用できます。ollama launch clawdbot はエイリアスです。このコマンドは、マシンに直接インストールされ、ターミナルで openclaw コマンドを使用できる OpenClaw を対象としています。手順1の代わりにはなりません。同じページでサーバーのコンテキストを確認するよう求めています。

#手動の方法:プロバイダーを自分で宣言する

OpenClawのドキュメントでは、まず自動検出モードについて説明しています。Ollamaはキーを要求しないため、ダミーキーを指定します。するとOpenClawはhttp://127.0.0.1:11434にあるローカルインスタンスへ問い合わせ、インストール済みのモデルを探します。

ターミナル — プロバイダーを有効にしてモデルを選択する
# N'importe quelle valeur convient : Ollama ne vérifie pas de clé
export OLLAMA_API_KEY="ollama-local"

# Ou l'inscrire dans la configuration d'OpenClaw
openclaw config set models.providers.ollama.apiKey "ollama-local"

# Lister les modèles vus par OpenClaw, puis fixer le modèle principal
openclaw models list
openclaw models set ollama/gpt-oss:20b

モデルは、ollama/の後にollama listで表示される正確な名前(タグを含む)を続ける形式で指定します。ゲートウェイをサービスとして動かす場合は、環境変数よりも設定ファイルへの記載を優先してください。ターミナルでエクスポートした変数は、システムが起動したプロセスには引き継がれません。Dockerインストールでは、各 openclaw コマンドの前に docker compose run --rm openclaw-cli を付けます。

二つ目の方法は、JSON5形式で記述された~/.openclaw/openclaw.jsonファイル内で明示的に宣言することです。これは、Ollamaがゲートウェイのマシン以外で動作している場合、モデルが一覧に表示されない場合、またはエージェントに通知するウィンドウを自分で固定したい場合に使用します。

~/.openclaw/openclaw.json — 明示的な宣言(JSON5)
{
  models: {
    providers: {
      ollama: {
        baseUrl: "http://127.0.0.1:11434",
        apiKey: "ollama-local",
        api: "ollama",
        models: [
          {
            id: "gpt-oss:20b",
            name: "GPT-OSS 20B",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 64000,
            maxTokens: 8192
          }
        ]
      }
    }
  },
  agents: {
    defaults: {
      model: { primary: "ollama/gpt-oss:20b" }
    }
  }
}
baseUrl
ポートを含むOllamaサーバーのアドレスで、それ以外は何も記述しません。Ollamaが別のマシンで動作している場合に変更するのは、この一行だけです。
api: "ollama"
ツール呼び出しを処理する、OllamaのネイティブAPIを明示的に要求します。
apiKey
ダミー値です。プロバイダーを有効にするためだけに使用します。
contextWindow
OpenClawに通知され、履歴の長さの管理に使われるウィンドウです。これは、理論上モデルが受け付けられる長さではなく、Ollamaが実際に読み込む長さに対応していなければなりません。
maxTokens
回答の長さの上限です。
cost
ゼロ:ローカルモデルではトークン単位の課金はありません。
agents.defaults.model.primary
エージェントがデフォルトで使用するモデル。ollama/モデル名 の形式。

この例は OpenClaw のドキュメントに示された構成を踏襲しています。contextWindow と maxTokens の値は私たちの設定なので、お使いのモデルに合わせて調整してください。覚えておくべき点は二つあります。まず、推論モデルでは reasoning を true に設定します。次に、同じドキュメントによれば、明示的な models.providers.ollama エントリが存在すると自動検出は無効になります。その場合、使用したい各モデルを models のリストに記載する必要があります。

!
アドレス末尾に/v1を付けないでください
多くのツールは、OpenAI互換インターフェースを使い、http://localhost:11434/v1のアドレスでOllamaに接続します。OpenClawのドキュメントでは、これを使わないよう明示的に求めています。このモードではツール呼び出しの信頼性が低下し、モデルがツールのJSONをプレーンテキストとして返すことがあります。正しいアドレスはポートで終わります:http://localhost:11434。
ターミナル — 適用して確認する
openclaw gateway restart
openclaw doctor

#Docker内のゲートウェイ、または別のマシン上のOllama

コンテナ内では、localhostはコンテナ自体を指します。そのため、Dockerで起動したOpenClawゲートウェイは、ホストマシンのOllamaをアドレスhttp://localhost:11434で認識できません。ターミナルからはすべて正常に動作するのに、接続は拒否されます。解決策はOllamaが動作している場所によって異なります。

Docker Desktop(macOS、Windows)
host.docker.internal という名前は、コンテナから見たホストマシンを指します。明示的な宣言では、http://host.docker.internal:11434 を baseUrl として指定してください。
Linux上のDocker Engine
この名前はデフォルトでは存在しないため、以下の例のようにextra_hostsを使ってサービスに追加する必要があります。さらにOllamaは、コンテナから到達できるインターフェースで待ち受ける必要がありますが、元の設定ではローカルループバックに限定されているため、そうなっていません。
Ollamaを別のマシンで使用
このマシンのアドレスをローカルネットワークまたはVPN上のbaseUrlに設定し、このマシンでのOllamaのリッスン先も同様に設定します。
docker-compose.override.yml — 調整して使用する例(Linux)
services:
  openclaw-gateway:
    extra_hosts:
      - "host.docker.internal:host-gateway"
ターミナル — Ollamaをローカルループバックの外部で待ち受けさせる(Linuxサービス)
sudo systemctl edit ollama.service

# Dans l'éditeur qui s'ouvre, ajouter ces deux lignes :
# [Service]
# Environment="OLLAMA_HOST=0.0.0.0:11434"

sudo systemctl daemon-reload
sudo systemctl restart ollama

Composeファイルは当方による例であり、OpenClawのドキュメントから抜粋したものではありません。サービス名を、お使いのバージョンのdocker-compose.ymlと比較してください。一方、OLLAMA_HOST変数についてはOllamaのFAQで説明されています。その意味を確認してください。0.0.0.0では、サーバーはマシン上のすべてのインターフェースで待ち受け、OllamaのAPIは認証を一切要求しません。ファイアウォールでポート11434をDockerネットワークまたはローカルネットワークに制限し、このポートにはインターネットから決して接続できないようにしてください。Ollamaサーバーのセキュリティ保護に関する当方のガイドで、これらのルールを詳しく説明しています。

#ステップ4:エンドツーエンドの接続を確認する

「こんにちは」と返すエージェントは、何も証明していません。この応答にはツールもコンテキストも必要ないからです。有用な検証は、モデルサーバーからメッセージングまで、層ごとに進めます。

  1. 01
    Ollama単体でツール呼び出しをテストする
    以下のコマンドを使い、架空のツールを添えて質問をサーバーに送信します。レスポンスには、ツール名を指定し、そのツールに引数を渡すtool_callsフィールドが含まれていなければなりません。モデルが文章で返答する場合、そのモデルはエージェントには適していません。
  2. 02
    OpenClawに見えているものを確認する
    openclaw models list コマンドでモデルが ollama/モデル名 の形式で表示され、openclaw doctor でプロバイダーエラーが報告されないこと。
  3. 03
    回答ではなくアクションを要求する
    制御インターフェースまたはメールから、エージェントにツールの使用を強制する依頼を送ってください。たとえば、ワークスペースのファイル一覧を取得させます。実際に実行しなければならず、何をするかを説明するだけでは不十分です。
  4. 04
    Ollamaが読み込んだ内容を確認する
    このやり取りの直後に、サーバーマシンで ollama ps を実行し、CONTEXT 列と PROCESSOR 列を確認してください。
ターミナル — 1. Ollama上で直接ツールを呼び出す
curl http://localhost:11434/api/chat -d '{
  "model": "gpt-oss:20b",
  "stream": false,
  "messages": [{"role": "user", "content": "Quel temps fait-il à Lyon ?"}],
  "tools": [{
    "type": "function",
    "function": {
      "name": "get_weather",
      "description": "Donne la météo actuelle pour une ville",
      "parameters": {
        "type": "object",
        "properties": {"city": {"type": "string"}},
        "required": ["city"]
      }
    }
  }]
}'
ターミナル — 2 と 4。OpenClaw 側、続いて Ollama 側
openclaw models list
openclaw doctor

# Après un échange avec l'agent
ollama ps

ollama psの出力では、CONTEXT列に、読み込まれたモデルに実際に割り当てられているウィンドウが表示されます。64 000を想定していたのに4096と表示される場合は、OpenClawの設定に何と書かれていても、手順1の設定が反映されていません。PROCESSOR列には、グラフィックカードとプロセッサーの分担が表示されます。求めているのは100% GPUという表示です。混在した分担になっている場合は、モデルとコンテキストがビデオメモリを超えています。

→
問題のあるレイヤーを切り分ける
Ollamaでの直接テスト(4つの確認項目の最初)が失敗する場合、問題はモデルまたはOllamaにあり、OpenClawの設定では修正できません。成功するのにエージェントが動作しない場合は、接続を確認してください。サーバーアドレス、APIモード、コンテキストウィンドウを確認します。この切り分けにより、設定を手当たり次第に変更せずに済みます。

#ひそかに起きる障害:症状と原因

明確なエラー(接続拒否、モデルが見つからないなど)はログで確認できます。以下の障害は、アシスタントが応答を続けるため、より厄介です。ただし、応答の内容は不適切です。

アシスタントが指示を無視する、または的外れな応答をする
最も可能性の高い原因は、コンテキストが切り詰められていることです。システム指示とツール定義が、Ollamaによって読み込まれたウィンドウを超えているため、警告なしに一部が切り捨てられています。ollama psのCONTEXT列を確認し、手順1をやり直してください。
アクションの代わりにJSONが表示される
モデルはツール呼び出しを正しく生成しましたが、ゲートウェイはそれをテキストとして受信しました。これは、/v1 のアドレスを使っているか、OpenAI 互換モードでプロバイダーを宣言している兆候です。ネイティブのアドレスと api: "ollama" に戻してください。
実行することを説明するだけで、何も実行しない
モデルがtools機能を宣言していないか、長い指示の途中で使用するには制限が強すぎます。手順4で説明しているOllamaでの直接テストを再実行し、失敗する場合はモデルを変更してください。
openclaw models listにモデルが表示されない
可能性は三つあります。プロバイダーが有効になっていません(ダミーキーがない、または変数がサービスに渡されていない)。models.providers.ollamaの明示的なエントリは存在しますが、このモデルが一覧にありません。あるいは、モデルがツール呼び出しを宣言していません。私たちが把握しているドキュメントによると、自動検出の対象になるのはツール呼び出しを宣言しているモデルだけであり、この動作はバージョンによって変わっている可能性があります。
コンテキスト設定が効果を発揮しない
OLLAMA_CONTEXT_LENGTH変数をターミナルでエクスポートしたものの、Ollamaはサービスまたはアプリケーションとして動作していたため、サーバーからはその変数が見えていませんでした。サービス内、またはアプリケーションの設定で変数を宣言してから、Ollamaを再起動してください。
応答に非常に長い時間がかかる、または返ってこない
モデルがプロセッサー側にはみ出している(ollama ps の PROCESSOR 列)か、アイドル状態の後にアンロードされ、メッセージごとに再読み込みされています。デフォルトでは、Ollama はモデルを 5 分間メモリに保持します。OLLAMA_KEEP_ALIVE 変数でこの時間を延長できます。
ターミナルではすべて動くのに、ゲートウェイ経由では何も動かない
ゲートウェイはコンテナ内で動作し、自身の localhost 上で Ollama を探します。Docker のセクションを参照してください。
「Model context window too small」
これは静かに失敗するわけではありませんが、戸惑いやすい点です。私たちが知るOpenClawのバージョンは、通知されたウィンドウが小さすぎるモデルを拒否します。明示的な宣言でcontextWindowを確認し、それに応じてOllamaのコンテキストも設定してください。
ターミナル — 両側のログを追跡
# Passerelle OpenClaw
openclaw logs --follow

# Serveur Ollama installé comme service (Linux)
journalctl -u ollama -f

接続を確立した後も、覚えておくべき限界があります。正しく接続されたローカルモデルでも、長時間に及ぶタスクや曖昧なタスクでは、大規模なオンラインモデルと同じように振る舞うとは限りません。ここでは比較結果も処理速度も公開していません。まずは単純で重要度の低い依頼から始め、モデルがどこで行き詰まるかを観察してください。アシスタントを日常的に使う場合は、オンラインプロバイダーを予備モデルとして残しておきましょう。

#手元に置いておきたい公式情報源

このガイドは独自テストに基づくものではありません。所要時間、スループット、スコアはいずれも掲載していません。コマンドとフィールド名は、バージョンごとに変わる両プロジェクトのドキュメントに従っています。ollama launch のオプション、自動検出の挙動、デフォルト値などが対象です。このページとドキュメントに相違がある場合は、ドキュメントを正とします。

Ollama:OpenClawとの統合
https://docs.ollama.com/integrations/openclaw
OpenClaw:プロバイダーOllama
https://docs.openclaw.ai/providers/ollama
Ollama:コンテキスト長
https://docs.ollama.com/context-length
Ollama:FAQ(サーバー変数)
https://docs.ollama.com/faq
OpenClaw:ゲートウェイのセキュリティ
https://docs.openclaw.ai/gateway/security

#さらに詳しく

接続は、サイトの別の場所で詳しく扱っている3つの概念に基づいています:サーバーOllama、コンテキストウィンドウ、ツール呼び出しです。

Ollama のインストール
モデルサーバーのインストール、基本設定、そしてマシンから外部に出られるもの。https://quelllm.fr/guide/installer-ollama
コンテキストウィンドウを理解する
トークンが測るもの、コンテキストがメモリを消費する理由、適切なサイズの決め方。https://quelllm.fr/guide/comprendre-fenetre-contexte
Ollamaでのツール呼び出し
ツール要求の形式と、エージェントを介さずにテストする方法。https://quelllm.fr/guide/appel-outil-ollama-tutoriel
Hermes Agent と Ollama
ローカルモデルに接続した、別のセルフホスト型エージェントです。アプローチを比較できます。https://quelllm.fr/guide/hermes-agent-ollama-guide
DockerでOpenClawをインストールする
ゲートウェイのインストールと更新、VPS での公開ルール。https://quelllm.fr/guide/installer-openclaw-docker
このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。