階層型エージェント構成案の Phase 1。--parallel で同時に投げたとき、合計の生成速度が単発の何倍になるかを測る。
帯域律速のため N 倍にはならない見込みで、1.3 倍未満なら並列を諦めて逐次実行の構成に単純化する。
--parallel 1 / 2 / 4 で同時リクエストを投げ、合計 tok/s と VRAM 使用量を測る(Qwen3-4B で 57 → 99 → 131 tok/s、8 本で 151 tok/s。VRAM は 3.7 GB のまま。tools\50_run\bench-parallel.cmd)関連: 階層型エージェント構成案
小さなドラフトモデルで先読みして生成を速める手法。本命とドラフトを同居させると VRAM の余裕は約 200 MiB と見積もっており、 帯域を使い切っている本PCでは効果が出ない可能性もある。
llama-server --help で、ドラフトモデル指定のオプション名を確かめる(-md のほかに --spec-type draft-simple が要る。--draft-max は --spec-draft-n-max に替わった)tools\50_run\bench-spec.cmd)RAM を 32GB に増設し、画面表示を内蔵GPU に任せたところ、CPU 側に重みを置くモデルが大きく速くなった (Qwen3.5-9B 8.1 → 14.6 tok/s、gpt-oss-20b 5.9 → 19.0 tok/s)。KV を q8_0 にすればコンテキスト 16384 も使える。 実行計画の結論と方針は RAM 16GB の実測に基づいたままで、再測定と合わなくなっている。
-ncmoe 40 で 16.6 tok/s、39 以下は VRAM があふれて落ちる)関連: ローカルLLM 実行計画(第10章の「32GB での再測定」)
Claude Code は共通ルールを読ませず思考を切れば、20GB 以下の 20 本中 15 本が 15 分以内に読み・書きの両方に合格した。 時間切れになったモデルは Pi・OpenCode・Aider でも試した。
cc1.cmd を作り直す(gemma-4-E4B・思考なし・ホーム W:\temp\cc1-home。読みの 1 問が 40 秒・2 ターンで正答)Pi は、Claude Code(ルールなし)で通らなかった 3 本でしか試していない。そのうち 2 本では Claude Code より良い結果だった。 Claude Code で速かったモデルを Pi でも試し、どちらを使うかを決める。
tools\50_run\test-agents.cmd -Agent pi。E4B と gpt-oss-20b は Claude Code の 2〜3 倍速く合格。E2B の読みは 3 回中 1 回だけ答えた)関連: ローカルLLM で AI エージェントを使う — 試験結果(第 3 章)
-ncmoe 40 で 16.6 tok/s 出たが、測ったのはプロンプトを入れない tg64 で、KV キャッシュはほぼ空だった。
39 以下では VRAM があふれて 7〜14 tok/s に落ちるため、コンテキストを使うと 40 でもあふれる可能性がある。
-nkvo)で、-ncmoe を振って生成速度と VRAM を測る(深さ 16384・KV q8_0 で 40 は 0.35 tok/s、44 は 12.9 tok/s。-nkvo は 16384 で 4.4、65536 で 1.3 tok/s)--n-cpu-moe 44、65536 は使えない)関連: ローカルLLM 実行計画(第10章の「32GB での再測定」)
並列スロットは 4 本同時で 2.3 倍になったが、プロンプトは短い文 1 行で測った。 長い資料を渡すと読み込み(pp)が同時に走るため、倍率が変わる可能性がある。
--parallel 1 / 2 / 4 の合計 tok/s と所要時間を測る(tools\50_run\bench-parallel.cmd にプロンプトを渡す引数を足す。1,213 トークンで 47 → 74 → 90 tok/s)関連: 階層型エージェント構成案(第6章 Phase 1)
温度 0・同じ seed でも、ドラフトありの 4 構成はすべて単体と違う出力になった。仕組み上は一致するはずで、 まとめて検証するときの計算順の違いと推測しているが、確かめていない。採用は見送ったため急がない。
-ub・-b を変えると出力が変わるかを見て、計算順の違いで説明できるかを確かめる(-b ではなく同時に処理する本数を変えて確かめた。単体 5 本同時でもコードが同じ位置・同じ文言にずれ、ドラフト固有ではないと分かった)関連: Speculative Decoding 調査(第5章の結果)
「1から10までの合計を表示するnode.jsプログラムをsum.jsに書く。node sumで実行する」を日本語のまま渡し、 書きの試験に 10 分以内で合格した 19 本を Claude Code・Pi・OpenCode・Aider で総当たりに試す。
-Tests に sum・echo を足し、日本語が化けるとしたコメントを直す(判定は tools\50_run\sum-judge.ps1)関連: 初期プログラミングの検証計画
llama.cpp・エージェント・Node.js を最新にして、これまでの試験をやり直す。版が上がると結果が変わりうるため、閉域網へ持っていく前に、持っていく版で結果を取り直す。
bin\llama.cpp-b10612 に残したC:\Tools\nodejs)--list-devices は CUDA から見た値で 3287 MiB と出るため、比べるときは同じ測り方にそろえる)logs/bench-versions-20261001.txt)tools/50_run/run-sum-sets.ps1 で 3 セット以上流す)sum-table.ps1 -Sets で結果のファイルから作るようにした)sum-table.ps1)に入れる(判定は sum-judge.ps1 の Get-SumMark・Format-SumCell。テスト 36 件)tools/50_run/run-sum-matrix.ps1)run-sum-matrix.ps1・test-agents.ps1・test-cc-tools.ps1。決め方は試験結果の「これからの時間切れの決め方」。paths.ps1 の Get-LlmTimeout にまとめ、-TimeoutSec を渡せばそちらを使う。CPU 版は Intel GPU と同じ 15 分。テスト tests/paths.tests.ps1)関連: 試験の経緯と全実行の記録(「試験した版」)
これまで LM Studio に向けていた接続先を、llama-server(127.0.0.1:8080)へ切り替える。
llama-server は Anthropic 形式の /v1/messages に直接応答するため、変換の層を挟まずに繋がる。
Claude Code は最初の要求だけで約 63,000 トークンある。VRAM 4GB には KV キャッシュが載らないため、
コンテキスト 65536・KV キャッシュを RAM 側(-nkvo)・q8_0 で起動する。
初回は 157 秒かかるが、2回目以降は共通部分が再利用されて 14 秒になる。
tools/50_run/run-server-cc.cmd)と Claude Code の起動(root の cc1.cmd)をスクリプトにする関連: ローカルLLM 実行計画(導入手順の Step 5)
共通ルールが改められ、コンソールのコードページを変えること(chcp・OutputEncoding・SetConsoleOutputCP 等)が禁止になった。
このリポジトリのスクリプトと資料に該当する記述がないかを調べる。
N: ドライブが廃止され、プロジェクトは W:、共有ツールは T: で参照することになった。 ソース・資料・設定に N: を書いている箇所がないかを調べ、あれば直す案を出す。
%~dp0 からの相対指定か、PATH 上の名前で呼んでいる)。直す箇所はないネットに出られない別の PC(Intel の内蔵 GPU)で同じ試験を流せるように、モデル以外も含めて 1 つにまとめる。
llm-bundle-20261008.7z(0.83 GB)・models(16.7 GB)・drivers(0.7 GB)の 3 つに分けた)関連: 閉域網へ持っていく配布物
全体を見直して見つけた、start-agent.ps1・paths.ps1・make-offline-bundle.ps1 の弱いところ。現地でつまずく順に並べた。
CLAUDE_CODE_ATTRIBUTION_HEADER=0 を渡す(cc1.cmd は渡している。無いと遅くなるかを測ってから直す)(2026-10-06。E4B の読み書きを 2 回ずつ測った。切ると読み 37・35 秒、切らないと 380・36 秒で、10 倍遅い回があった。start-agent.ps1 と test-cc-tools.ps1 で切る。これまでの試験は、このセッションの .claude/settings.json から引き継いで切れていた)/health の確認が通ってしまう。起動前に空きを見て、使用中なら「使用中」と出して止める(paths.ps1 の Test-LlmPortFree。start-agent.ps1 は使用中なら使っているプログラム名を出して止める。テストは tests/paths.tests.ps1)config.cmd に LLM_PORT を足し、start-agent と試験のスクリプトの既定にする(現地で変えるのは config.cmd だけ、を保つ)(paths.ps1 の $LlmPort。start-agent.ps1・test-agents.ps1・test-cc-tools.ps1・test-aider-followup.ps1 は -Port を省くとこれを使う。配布物の config.cmd と使い方にも足した)paths.ps1 の Add-LlmKillOnClose。実機で、窓を閉じたとき・PowerShell だけを強制終了したときのどちらも止まることを確かめた。テストは tests/paths.tests.ps1)-ngl を付けないため、Vulkan でも 12B-QAT は CPU だけで動く。Vulkan のときは大きさに関わらず -ngl 99 にする(2026-10-06。この PC の 12B-QAT で、CPU 版はプロンプト 14.8・生成 3.8 tok/s、Intel に全部載せるとプロンプト 68.8・生成 3.4 tok/s。既定のままでは 49 層中 12 層が NVIDIA に、残りが CPU に載っていた。NVIDIA も見える PC では Intel だけを使う --device を付ける。paths.ps1 の Get-LlmGpuArgs)config.cmd を Encoding.Default で読むため、pwsh 7 では日本語のパスが化ける。CP932 と決めて読み、%USERPROFILE% などの %変数% も環境変数で展開する(paths.ps1 の Read-LlmConfig。テストは Windows PowerShell 5.1 と pwsh 7 の両方で流す)SHASUMS256.txt の取得に失敗したらその場で止める。npm の中に claude.exe が無ければ「置き場が変わった」と出す(make-offline-bundle.ps1。curl に -f を付けた。付けないと 404 でもエラーの HTML を保存して終了コード 0 になることを確かめた。取得に失敗したら途中のファイルを消して止める)関連: 閉域網へ持っていく配布物
develop の内容を release・master へ取り込む。
--no-ff でマージする--no-ff でマージし、注釈付きタグを打つ配布物には入らないが、開発用の PC の置き場を変えたときに取り残されるものと、確かめる手段が無いもの。
C:\AI-models に改め、スクリプトと資料の C:\AI_Models をすべて書き換えるstart-agent・test-cc-tools と役目が重なる test-cc.ps1・run-server-*.cmd・bench.cmd を消し、資料に出てくる名前を書き換える(消す対象は作業のときに 1 つずつ示す)cc1.cmd は、いちばん使えそうな組み合わせを動かす入口として残す。start-agent を呼ぶ形に書き換え、サーバの起動から停止までを 1 本で済ませる(直接書いた W:\temp も無くなる)C:\AI-models に改めた今の形に直すtests/ を作り、sum-judge.ps1 の判定(✅・☑️・❌)をテストする。ランチャーは tools/40_test/(tests/sum-judge.tests.ps1 の 22 件。tools/40_test/run-tests.cmd で流す。表のマスを作る sum-table.ps1 の Format-Cell は、☑️ を入れるときにテストを足す)Ministral を Mistral にまとめ、フォルダ名を Hugging Face のリポジトリ名に大小まで揃えた。試験で使えなかった 6 本(Qwen2.5-Coder-14B・Muse-Glimmer-30B・Qwen3.8-27B・GLM-4.6V-Flash・Nemotron-3-Nano-4B・Qwen3-0.6B)と空のフォルダを消し、約 52 GB 空けた)bin/llama.cpp-b11302(1.1 GB)を消す(試験は b11320 で取り直した)tmp/ に残る 9/29 の試験の跡(agent-home・home-norules・sandbox)と、展開済みの llama.cpp の zip 2 本(0.6 GB)を全部消す