ローカル AI タスク
wslc とローカル AI は相性の良い組み合わせです。GA 発表では、WSL containers API が解放するシナリオとして次が挙げられています。
“Access functions to run Linux containers programmatically in your native Windows apps – unlocking scenarios like running local AI workloads or using cloud-based containerized applications locally.”
このステップでは、Windows 上で Foundry Local を使って AI モデルをローカル実行し、その OpenAI 互換 API を Windows 側と wslc コンテナーの両方から呼び出す構成を試します。推論はデバイス上で完結し、クラウドには送信されません。
構成と役割分担
担当 役割 Foundry Local (Windows 側) モデルの取得・ハードウェア アクセラレーション・推論を担当します。利用可能な GPU / NPU を自動検出し、なければ CPU で動作します wslcコンテナー (Linux 側)推論結果を利用するアプリケーションを動かします。開発環境を汚さず、使い捨てで試せます
推論エンジンは Windows 側に置くため、ハードウェア アクセラレーションは Foundry Local が自動で選択します。アプリケーションは OpenAI 互換 API を呼ぶだけなので、既に OpenAI SDK を使っているコードも少ない変更で接続できます。
前提と注意事項
注意: Foundry Local の CLI はパブリック プレビューです。コマンドや動作は今後変更される可能性があります。最新の情報は Foundry Local CLI リファレンスを参照してください。
wingetによるインストールはユーザー単位で行われるため、通常は管理者権限なしで完了します (組織のポリシーによっては管理者権限が必要な場合があります)。- 初回はモデルと実行プロバイダーをダウンロードするため、インターネット接続が必要です。
- Intel NPU を搭載した Windows では、Intel NPU ドライバーをインストールすると NPU で高速化できます。
手順 1 — Foundry Local をインストールする
PowerShell で以下を実行します。
winget install Microsoft.FoundryLocal
インストールを確認します。
foundry --version
既にインストールされている場合は、最新版に自動でアップグレードされます。
操作画面イメージ

INFO: インストール後にサーバー接続エラー (例:
Request to local service failed) が表示された場合は、foundry server restartを実行してください。
手順 2 — ローカル サーバーを固定ポートで起動する
Foundry Local のローカル サーバーは、起動のたびに動的なポートを割り当てます。後の手順で URL を固定して使えるように、ポートを指定して起動し、アイドル時に停止しないようにします。
foundry server start --port 39839 --idle-timeout 0
サーバーが既に起動している場合は、同じオプションで再起動します。
foundry server restart --port 39839 --idle-timeout 0
サーバーの状態とエンドポイントの URL を確認します。
foundry server status
デーモンの状態・ローカル サービスの URL・プロセス ID などが表示されます。Web URLs が http://127.0.0.1:39839 と表示されていれば起動できています。起動時には、実行プロバイダー (WebGPU や OpenVINO など) のダウンロードが行われます。
操作画面イメージ

INFO: ローカル サーバーは Windows のループバック アドレス (
127.0.0.1) でのみ待ち受けます。そのため、他の PC からはアクセスできません。wslcコンテナーからの接続方法は手順 5 で説明します。
手順 3 — モデルを試す
利用できるモデルを一覧表示します。
foundry model list
ここでは小規模な qwen2.5-0.5b を使用します。次のコマンドで対話セッションを開始します。初回はモデルがダウンロードされます。
foundry chat qwen2.5-0.5b
プロンプトに質問を入力すると、ローカルで生成された応答が返ります。対話セッションを終了するには /exit と入力します。
操作画面イメージ

INFO:
qwen2.5-0.5bのようなエイリアスを指定すると、Foundry Local がお使いのハードウェアに最適なモデル (GPU 用、NPU 用など) を自動的に選択します。たとえば GPU を搭載した PC では GPU 版がダウンロードされます。
次の手順で使用するモデル ID を確認します。--verbose を付けると Model ID 列が表示されます。
foundry model list --verbose
Model ID 列のうち、上の foundry chat でダウンロードされたもの (Cached 列に印が付いているもの) を使用します。モデル ID は qwen2.5-0.5b-instruct-generic-gpu:4 のようにバージョン付きで表示され、お使いのハードウェアによって異なります。
操作画面イメージ

INFO:
qwen2.5-0.5bのすべてのバリアント (CPU 版、GPU 版など) は、次のコマンドで確認できます。foundry model list --verbose --variants --search qwen2.5-0.5b
参考: バリアントの一覧

注意: モデルのダウンロードには時間がかかります。ネットワーク環境によっては数分から十数分要します。
手順 4 — Windows 側から API を呼び出す
ローカル サーバーは OpenAI 互換 API を提供します。ベース URL は http://localhost:39839/v1 です (手順 2 で指定したポート)。
まず、モデルをローカル サーバーに読み込みます。<モデル ID> には、手順 3 で確認したモデル ID を指定してください。
foundry model load <モデル ID>
注意: モデルを読み込まずに API を呼び出すと、HTTP 400 エラー (Model '...' is not loaded. Please load the model before getting a ChatClient.) になります。foundry chat を終了した直後は読み込まれたままですが、サーバーを再起動すると読み込みは解除されます。
参考: 読み込み前に呼び出した場合のエラー画面

次に API を呼び出します。
$body = @{
model = "<モデル ID>"
messages = @(@{ role = "user"; content = "Explain WSL containers in one sentence." })
} | ConvertTo-Json -Depth 5
Invoke-RestMethod -Uri http://localhost:39839/v1/chat/completions -Method Post -ContentType "application/json; charset=utf-8" -Body $body
既定の表示では choices : {@{...}} のようになり、回答の本文が見えません。回答だけを表示するには次のようにします。
(Invoke-RestMethod -Uri http://localhost:39839/v1/chat/completions -Method Post -ContentType "application/json; charset=utf-8" -Body $body).choices[0].message.content
操作画面イメージ

INFO: モデルを読み込んだ後は、
modelにバージョン付きのモデル ID、バージョンなしのモデル ID、エイリアス (qwen2.5-0.5b) のいずれを指定しても応答が返ります。
INFO: JSON を PowerShell のハッシュテーブルから生成しているため、Windows PowerShell 5.1 と PowerShell 7 のどちらでも同じ書き方で実行できます (
curl.exe -d '...'で JSON を直接書くと、PowerShell のバージョンによって引用符の扱いが異なり、JSON が壊れる場合があります)。
この API を自作のアプリケーションから呼び出せば、ローカル AI を組み込んだアプリケーションが構築できます。 OpenAI SDK を使っている場合は、ベース URL を上記に変更するだけで接続できます。
手順 5 — wslc コンテナーから API を呼び出す
次に、wslc で起動した Linux コンテナーから、Windows 側の Foundry Local を呼び出します。推論結果を使うアプリケーションをコンテナーで動かすイメージです。
wslc のコンテナー内では localhost はコンテナー自身を指します。コンテナーから Windows ホストに接続するには、host.wslc.internal というホスト名を使用します。
host.wslc.internal への通信は Windows のループバック (127.0.0.1) に転送されるため、127.0.0.1 でのみ待ち受けている Foundry Local にも届きます。このホスト名は、wslc の設定ファイル (settings.yaml) の hostLoopback で変更・無効化できます (既定値は host.wslc.internal)。設定ファイルについては、ステップ 1「WSL と wslc のセットアップ」 の「6. ストレージの配置を変更する」を参照してください。
ここでは、モデルの一覧を返す GET /v1/models で疎通を確認します。
wslc run --rm curlimages/curl -s http://host.wslc.internal:39839/v1/models
結果を PowerShell で見やすく表示する場合は、次のようにします。
(wslc run --rm curlimages/curl -s http://host.wslc.internal:39839/v1/models | ConvertFrom-Json).data.id
--rm を指定しているため、コンテナーは実行後に自動で削除されます。
操作画面イメージ

INFO: 実機での確認では、
localhost、host.docker.internal、Windows の LAN の IP アドレス、コンテナーのゲートウェイ (172.17.0.1)、Windows のホスト名はいずれも接続できませんでした。コンテナーから Windows 上のサービスに接続する場合はhost.wslc.internalを使用してください。また、Foundry Local 0.10.x では、REST リファレンスに記載されている
/openai/statusは 404 を返しました。疎通確認には/v1/modelsを使用してください。
INFO:
host.wslc.internalの動作は、wslc settingsで生成される設定ファイルのテンプレートと実機の結果に基づいています (2026 年 10 月時点)。コンテナーからPOST /v1/chat/completionsを呼び出せることも実機で確認しています。
手順 6 — 停止する
作業が終わったら、Foundry Local のサーバーを停止します。
foundry server stop
注意: 停止後に foundry server status を実行すると、State は Not running と表示されますが、前回のプロセス ID や URL がそのまま表示される場合があります。
操作画面イメージ

まとめ
- Foundry Local により、Windows 上でハードウェアに最適化されたローカル AI 推論を実行できました
- OpenAI 互換 API により、Windows 側のアプリケーションからローカル AI を呼び出せます
wslcコンテナーからはhost.wslc.internalで Windows 上のローカル AI に接続できます- 推論は Windows 側、アプリケーションは
wslcコンテナー側という役割分担で、開発環境を汚さずにローカル AI を試せます