閉域網へ持っていく配布物

ネットに出られない別の PC(Intel の内蔵 GPU)で、ローカル LLM とエージェントを試せるように、モデル以外も含めて 1 つにまとめて運ぶ
📅 作成: 2026-10-02 / 更新: 2026-10-10

目次

  1. 目的と持っていく先
  2. 持っていくもの
  3. どこに置いても動く形にする
  4. エージェントとモデルごとの起動用 cmd
  5. 作業の手順と未確認のこと

この文書の位置づけ

どのモデルとエージェントの組み合わせが動くかはローカルLLM で AI エージェントを使う — 試験結果にある。 本書は、その結果をもとに、閉域網の PC へ持っていく配布物の中身と作り方を決める。

目的と持っていく先

ネットにつながらない別の PC へ、ローカル LLM(llama.cpp)・Node.js・エージェント・試験スクリプト・モデルをまとめて運び、そこで同じ試験を流せるようにする。 現地では何もダウンロードしない。

持っていく先の PC

PCCPUGPU(ドライバ)メモリ扱い
PC-ACore i7-1355U(10 コア)Iris Xe(32.0.101.7085)32 GB本命。メモリを 2 枚にして UHD から Iris Xe の表示に変わった
PC-BCore i7-1355U(10 コア)Iris Xe(32.0.101.7085)32 GB本命。PC-A と同じ構成
PC-CCore i7-1185G7(4 コア)Iris Xe(30.0.101.1338、2022 年)16 GB手を加えずに試す

現地で測った速さ(gemma-4-E4B UD-Q3_K_XL、llama-bench)

PC使う版入力の処理(pp512)生成(tg64)
PC-AVulkan(Intel GPU)163 tok/s7.5 tok/s
PC-ACPU だけ34 tok/s8.4 tok/s
PC-CVulkan(Intel GPU)129 tok/s2.4 tok/s
PC-CCPU だけ68 tok/s7.0 tok/s

持っていくもの

種類中身作り方
llama.cppb11320 の Vulkan 版(Intel GPU)・CPU 版・CUDA 版(NVIDIA がある PC のため)GitHub の公式リリースを展開したフォルダをそのままコピーする。exe は同じフォルダの DLL を使うので、フォルダの中身を分けない
Node.jsv26.10.0 の zip 版と msi 版の両方zip 版はインストールも管理者の権限も要らない。msi 版は、インストールして使いたい PC のために添える
エージェントPi・OpenCode・Claude Code(npm 版と単体の claude.exe の両方)こちらで zip 版 Node.js のフォルダの中に npm でインストールし、そのフォルダごと運ぶ。インストール時に取ってくる OS 用の実行ファイルも中に入った状態で運べる
モデルgemma-4-E4B(Q4_K_M、5.0 GB)・gemma-4-E2B(Q4_K_M、3.2 GB)・Ministral-3-3B(Q4_K_M、2.0 GB)・gemma-4-12B-QAT(Q4_0、6.5 GB)差し替え用のテンプレートがあるもの(いまは Ministral-3-3B)は .jinja も一緒に運ぶ
試験スクリプトtools/50_run/ の sum・読み書き・ベンチの試験置き場所を引数と 1 つの設定で変えられるようにしてから運ぶ(第 3 章)
起動用の cmdエージェントとモデルの組み合わせごとの cmd第 4 章
GPU ドライバIntel 第 11〜14 世代向け 32.0.101.7092(gfx_win_101.7092.exe)Intel の公式サイトから取得済み。入れるかは現地で決める

持っていかないもの: Aider(試験で、書いたプログラムを自分では実行しなかった)・Codex(試験は利用者が流していた)。

Claude Code は利用条件を確かめてから配る。 npm で公開されているが、ライセンスは Anthropic の利用条件に従う。社内の閉域網へ持ち込んで使ってよいかを、配る前に確かめる。

どこに置いても動く形にする

配布物は 1 つのフォルダにまとめ、どのドライブ・どのフォルダに置いても動くようにする(Y:\ の直下でも、D:\llm\ の下でも)。 スクリプトと cmd は、自分の置き場所(%~dp0・$PSScriptRoot)から相対で全部を探す。

配布物のフォルダ構成

<配布先>\
  bin\
    llama.cpp-b11320-vulkan\
    llama.cpp-b11320-cpu\
    llama.cpp-b11320-cuda\
    node\                  zip 版 Node.js。中に npm で入れたエージェント
    claude\                単体の claude.exe
  installers\
    node-v26.10.0-x64.msi
    gfx_win_101.7092.exe
    drivers\               Intel GPU ドライバ
  models\                  .gguf(既定の置き場。設定で別の場所にもできる)
  run\                     起動用の cmd(第 4 章)
  tools\50_run\            試験スクリプト・起動用の start-agent.ps1・paths.ps1
    templates\             .jinja
  .claude\settings.json    試験が作業フォルダに置く設定
  README.html              このプロジェクトの README(試験が作業フォルダにも写す)
  notes\                   資料(html と画像)。元の階層のまま写すので、README からのリンクが切れない
  config.cmd               場所の設定(下の表)
  使い方.html              現地での手順(持っていくもの・設定・動かす順番・試験・うまく動かないとき)
  work\                    エージェントの作業フォルダ・空のホーム(実行時に作る)
  logs\                    試験の結果(実行時に作る)

場所を決め打ちしているところ(直す箇所)

いまの試験スクリプトで、場所をリテラルで書いているのは次のとおり。 これを config.cmd の 1 か所にまとめ、現地で違う場所(例: C:\AI-models)にあるときは、そこだけを書き換えればよい形にする。

いまの値使っているところ設定の名前配布物での既定
C:\AI-modelstest-agents.ps1・test-cc-tools.ps1・test-aider-followup.ps1 の -ModelDirLLM_MODEL_DIR<配布先>\models
W:/temp/llama-cp-sandboxエージェントの作業フォルダ(3 本とも)LLM_WORK_DIR<配布先>\work
W:/temp/llama-cp-agent-homePi・OpenCode の空のホーム(test-agents.ps1)(LLM_WORK_DIR の下)<配布先>\work\agent-home
W:/temp/llama-cp-homeClaude Code の空のホーム(test-cc-tools.ps1)(LLM_WORK_DIR の下)<配布先>\work\cc-home
bin/llama.cppllama-server の場所(-LlamaDir)LLM_BACKEND自動(第 4 章)
11434llama-server のポート(start-agent.ps1 と試験 3 本の -Port)LLM_PORT11434(使用中なら起動前に止まる)
tools/50_run/templates差し替え用のテンプレート—<配布先>\tools\50_run\templates(スクリプトの置き場所からの相対なので、そのまま)
PATH の node・pi・opencode・claudeエージェントの起動—cmd の中で <配布先>\bin\node を PATH の先頭に足す

引数で渡せば、その回だけ設定より優先する(いまの -ModelDir などと同じ)。

読み込みは tools/50_run/paths.ps1 が受け持つ。root に config.cmd があればその set 行を読み、無ければ環境変数、それも無ければ開発用の PC の場所(上の表の「いまの値」)にする。 開発用の PC には config.cmd を置かないので、今までどおりの場所で動く。

作業フォルダは配布物の中でも、プロジェクトの git の外に置く。 試験では、作業フォルダがリポジトリの中にあると、モデルがリポジトリの root を推測して本物のファイルを読みにいった。配布物は git のリポジトリではないので <配布先>\work でよいが、開発用のこの PC で流すときは今までどおり外に置く。

エージェントとモデルごとの起動用 cmd

ダブルクリックで、llama-server を立ててエージェントを開けるようにする。エージェントとモデルの組み合わせごとに 1 本を run\ に置く。

cmd の名前(例)中身
pi-gemma-4-E4B.cmdE4B で llama-server を立て、Pi をそれにつないで開く
claude-gemma-4-E4B.cmd同じく Claude Code(npm 版)。claude-exe-… は単体の claude.exe
opencode-gemma-4-E4B.cmd同じく OpenCode
server-gemma-4-E4B.cmdllama-server だけを立てる(エージェントを自分で開くとき)
bench-gemma-4-E4B.cmdVulkan 版(Intel GPU)と CPU 版で、llama-bench の速さを測る
list-devices.cmdVulkan 版から見える GPU を表示する(1 本だけ)

モデル 4 本 × 6 種類(Pi・OpenCode・Claude Code の npm 版と単体版・サーバだけ・速さ)+ list-devices.cmd の 25 本。cmd は手で書かず、組み立てのスクリプトがモデルの一覧から生成する。中身はどれも tools\50_run\start-agent.ps1 を引数付きで呼ぶだけ。

cmd がすること

  1. config.cmd を読む(モデルの場所など)
  2. llama.cpp の版を選ぶ。LLM_BACKEND が空なら、Vulkan 版の --list-devices に GPU が出れば Vulkan 版、出なければ CPU 版
  3. ポート(LLM_PORT、既定 11434)が空いているかを見る。使用中なら、使っているプログラム名を出して止める
  4. llama-server を立てる。オプションは試験と同じ(-c 65536 -np 1 -fa on -ctk q8_0 -ctv q8_0 --reasoning off、テンプレートがあれば --chat-template-file)
  5. エージェントの接続設定を work\ の下の空のホームに書き、そのホームでエージェントを開く(利用者のいつもの設定には触れない)

Intel GPU でのオプションの確かめ(-fa・-ctk q8_0 が効くか、-ngl)は、この PC の Iris Xe では試験と同じオプションで動いた。現地でも同じ値から始める。

作業の手順と未確認のこと

手順

別の場所に置いて確かめた結果

配布物をプロジェクトの外へ写し(モデルは除く)、config.cmd の LLM_MODEL_DIR を開発用の PC のモデルの場所に書き換えて流した。 PATH は配布物の bin\node と Windows の最小限だけにし、この PC に入っている Node.js・エージェントを使わないようにした。

確かめたこと結果
list-devices.cmd✅ Intel GPU(Vulkan0)が見えた
bench-gemma-4-E2B….cmd✅ 書き換えた場所からモデルを見つけ、Vulkan 版と CPU 版で測れた(この PC は NVIDIA もあるので、Vulkan 版の値は NVIDIA と合わせた速さ)
Pi の試験(E4B)✅ 日本語の確認・sum とも合格。版は配布物の pi 0.99.2・node v26.10.0
Claude Code npm 版の試験(E4B)✅ 日本語の確認・sum とも合格
Claude Code 単体版の試験(E4B)✅ sum 合格(bin\claude を PATH の先頭にして claude.exe を使わせた)
OpenCode の試験(E4B)✅ sum 合格
起動用の cmd(Pi・E2B)✅ Vulkan 版を自動で選び、サーバを立て、Pi を開き、閉じたらサーバを止めた(入力をつながなかったので Pi はすぐ終わった。対話はまだ試していない)
開発用の PC での試験✅ config.cmd なしで、今までの場所のまま動いた

試験は速さを見るものではないため、サーバは CUDA 版で動かした。

Claude Code は試験のときより 1 つ新しい 2.1.287 を入れた。 3 回ずつ流した試験は 2.1.286 だった。npm の版が自動で上がっていたため、配布物にはいま入っている 2.1.287 を入れている。

未確認のこと