Infrastructure / Self-hosted AI Agent
Windows 11 に OpenClaw をネイティブインストールしてみた #
以前 Windows Server 2019 への OpenClaw ネイティブインストールを検証しました。
今回は Windows 11 でも同じネイティブルートを試してみました。
Server 2019 で苦労した数々の障害は Windows 11 でも再現するのか、
あるいはすんなり動くのか——その検証記録を公開します。
Windows 11
ネイティブインストール
pnpm
GPUStack
Self-hosted AI
本記事は「Windows Server 2019 に OpenClaw をインストールしてみた(完全版)」の続編です。
Server 2019 での検証内容はそちらをご参照ください。
なぜ WSL2 ではなくネイティブルートを選んだのか #
Windows 11 では wsl --install 一発で WSL2 と Ubuntu が動くため、
通常は WSL2 ルートが圧倒的に楽です。
それでもネイティブルートを選んだのは、Windows マシンそのものを操作させたいという目的があるからです。
| やりたいこと | WSL2 | ネイティブ |
|---|---|---|
| ファイル操作(Linux 側) | ◎ | △ |
| ファイル操作(Windows 側) | ○(/mnt/c 経由) | ◎ |
| Web ブラウジング・検索 | ◎ | ◎ |
| コード実行・自動化 | ◎ | ◎ |
| PowerShell 実行 | ○(呼び出し経由) | ◎ |
| Windows サービス管理 | △ | ◎ |
| レジストリ操作 | ✕ | ◎ |
| WMI・COM 操作 | ✕ | ◎ |
| Windows GUI 操作 | ✕ | ◎(スキル有効化で) |
| systemd サービス化 | ◎ | ✕ |
| 安定性・フル機能 | ◎ | △ |
Windows を「なんでも操作できるエージェント」として使いたいならネイティブ一択です。
情報収集・コード生成・タスク自動化メインなら WSL2 の方が楽です。
環境構成 #
OpenClaw ホスト
- Windows 11
- OpenClaw v2026.4.5(pnpm インストール)
- Node.js v22.14.0
- Gateway ポート:18789
モデル・検索バックエンド
- GPUStack + vLLM 0.17.1
- Qwen2.5-14B-Instruct
- SearXNG(オンプレ)
- Custom Provider(OpenAI 互換)
インストール手順 #
Git for Windows をインストール #
npm の依存解決に git が必要です。管理者 PowerShell で実行します。
curl.exe -L -o git.exe "https://github.com/git-for-windows/git/releases/download/v2.47.1.windows.1/Git-2.47.1-64-bit.exe" .\git.exe /VERYSILENT /NORESTART Start-Sleep -Seconds 30PowerShell を閉じて開き直し、
git --versionで確認します。Node.js 22 LTS をインストール #
curl.exe -L -o nodejs.msi "https://nodejs.org/dist/v22.14.0/node-v22.14.0-x64.msi" msiexec /i nodejs.msi /quiet /norestart Start-Sleep -Seconds 30PowerShell を閉じて開き直し、
node --versionでv22.x.xと表示されれば OK です。スクリプト実行ポリシーと pnpm のセットアップ #
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force npm install -g pnpm pnpm setupPowerShell を閉じて開き直します。
OpenClaw を pnpm でインストール #
$env:NODE_OPTIONS="" pnpm add -g openclaw@2026.4.5ダウンロード完了後、ビルドスクリプトを承認します。
pnpm approve-builds -g # スペースキーで全選択 → Enter → y pnpm add -g openclaw@2026.4.5openclawのビルドに約2分かかります。PATH を Machine レベルで永続化 #
新しい PowerShell を開くたびに PATH が消える問題を防ぎます。
$paths = @( 'C:\Program Files\nodejs', "$env:APPDATA\npm", "$env:LOCALAPPDATA\pnpm" ) $current = [System.Environment]::GetEnvironmentVariable('PATH','Machine') $entries = ($current -split ';') + $paths | Select-Object -Unique [System.Environment]::SetEnvironmentVariable('PATH', ($entries -join ';'), 'Machine') $env:PATH = ($entries -join ';') Write-Host "openclaw:" (Get-Command openclaw -EA SilentlyContinue).Sourceオンボーディング #
$env:NODE_OPTIONS="" openclaw onboardウィザードで以下を設定します。
- セキュリティ警告:
Yesで続行 - Setup mode:
QuickStart - Config handling(既存設定が検出された場合):Reset でまっさらから開始
- モデルプロバイダー:Custom Provider
- Base URL:
http://<GPUStack の IP>/v1 - API Key の提供方法:Paste API key now
- Endpoint compatibility:
OpenAI-compatible - Model ID:GPUStack で動いているモデル名
- チャンネル:Skip for now
- スキル依存関係:Skip for now
- Web 検索:SearXNG Search → URL を入力
- Hooks:
session-memoryのみ有効化
「Config handling」画面が出た場合
別マシンや過去のインストールで作った設定ファイルが残っていると、
オンボーディング冒頭にExisting config detected→Config handlingという選択肢が表示されます。
まっさらからやり直す場合は Reset を選択してください。- セキュリティ警告:
contextWindow を手動修正 #
オンボーディング完了後、OpenClaw がモデルのコンテキスト長を誤検出することがあります。
設定ファイルを直接修正します(プロバイダー名は環境に合わせて変更してください)。$config = Get-Content "$env:USERPROFILE\.openclaw\openclaw.json" | ConvertFrom-Json $config.models.providers.'custom-10-255-253-205'.models[0].contextWindow = 32768 $config.models.providers.'custom-10-255-253-205'.models[0].maxTokens = 8192 $config | ConvertTo-Json -Depth 20 | Set-Content "$env:USERPROFILE\.openclaw\openclaw.json" -Encoding UTF8Gateway 起動・動作確認 #
$env:NODE_OPTIONS="" openclaw gateway run[gateway] readyが表示されたら別ウィンドウでダッシュボードを開きます。$env:NODE_OPTIONS="" openclaw dashboardmainセッションで会話できれば完了です。ocstart.ps1 をデスクトップに保存 #
毎回 PATH と NODE_OPTIONS を設定する手間を省くショートカットを作ります。
$script = @' param([switch]$Stop) $env:NODE_OPTIONS="" $paths = @('C:\Program Files\nodejs', "$env:APPDATA\npm", "$env:LOCALAPPDATA\pnpm") foreach ($p in $paths) { if (($env:PATH -split ';') -notcontains $p) { $env:PATH += ";$p" } } if ($Stop) { openclaw gateway stop; exit } $action = Read-Host "[1] Gateway起動 [2] 停止 [3] ダッシュボード [4] TUI [5] ステータス`n> " switch ($action) { '1' { openclaw gateway run } '2' { openclaw gateway stop } '3' { openclaw dashboard } '4' { openclaw tui } '5' { openclaw gateway status; openclaw doctor } } '@ $script | Out-File "$env:USERPROFILE\Desktop\ocstart.ps1" -Encoding UTF8 $ws = New-Object -ComObject WScript.Shell $sc = $ws.CreateShortcut("$env:USERPROFILE\Desktop\OpenClaw起動.lnk") $sc.TargetPath = "powershell.exe" $sc.Arguments = "-ExecutionPolicy Bypass -File `"$env:USERPROFILE\Desktop\ocstart.ps1`"" $sc.Save() Write-Host "完了"
GPUStack 側の設定 #
GPUStack 管理画面でモデルのバックエンドパラメータに以下を追加してモデルを再起動します。
--max-model-len 32768
--generation-config vllm
--enable-auto-tool-choice
--tool-call-parser hermes保存後に「変更はインスタンスを削除して再作成した後にのみ適用されます」と表示されます。モデルを停止→再起動してください。
Server 2019 との比較 #
Windows 11 で改善された点
- WSL2 が選択肢として使える
- ネイティブルートも Server 2019 と同じ手順でそのまま動いた
- Microsoft Store が使えるため各種ツールの入手が容易
Server 2019 と同じ挙動だった点
- npm 版では MODULE_NOT_FOUND が発生する可能性(pnpm 推奨)
- PATH の永続化が必要
NODE_OPTIONSのクリアが必要- contextWindow の手動修正が必要
- GPUStack のバックエンドパラメータ設定が必要
Server 2019 での検証後に Windows 11 でオンボーディングを実行したところ、
既存の設定ファイルが検出されて
Config handling の選択肢が表示されました。別マシンで設定済みのファイルが共有されている場合や、
同一マシンで再インストールした場合に表示されます。
まっさらからやり直す場合は Reset を選択します。
動作確認チェックリスト #
openclaw --versionが表示される[gateway] readyがログに表示される- ダッシュボード(
http://127.0.0.1:18789)がブラウザで開く mainセッションでチャットに返答が返ってくる- GPUStack ログに
POST /v1/chat/completions HTTP/1.1" 200 OKが表示される - セッション画面の TOKENS が
xxxxx / 32768になっている - SearXNG 検索が機能する
まとめ #
Windows 11 でのネイティブインストールは、Server 2019 で確立した手順をほぼそのまま流用できました。
pnpm を使う・PATH を永続化する・NODE_OPTIONS をクリアするという3つの原則は Windows 11 でも変わりません。
Server 2019 と違う点として、Windows 11 では WSL2 が使えるため、
用途によってルートを使い分けられるのが大きなメリットです。
Windows そのものを操作させたい場合はネイティブ、
AI エージェントとしての汎用用途なら WSL2 と、目的に合わせて選択してください。
Windows 11 ネイティブインストールは Server 2019 より簡単ではありませんが、
確立された手順通りに進めれば確実に動きます。
最初から pnpm を使うことがもっとも重要なポイントです。