読み・書きの試験の結果はローカルLLM で AI エージェントを使う — 試験結果、 全実行の記録はエージェント試験の経緯と全実行の記録にある。 本書はその次の段として、プログラムを書いて実行するところまでを試す。
ファイルを 1 行書けたモデルとエージェントが、日本語の指示で、プログラムを書く → 実行する → 結果を答えるところまでできるかを確かめる。
読み・書きの試験で、どれかのエージェントで書きに 10 分以内で合格した 19 本に限る。 10 分で書けなかったモデルは、このPCでは使えないものとして外す。
| 区分 | モデル | 本数 |
|---|---|---|
| Claude Code で合格 | gemma-4-E2B・gemma-4-E4B・Ministral-3-3B・Qwen3-4B-Instruct-2507・gpt-oss-20b・Qwen3.5-9B・gemma-4-12B-QAT・gemma-4-12B・gemma-4-26B-A4B・Qwen3-30B-A3B・Qwen3-Coder-30B-A3B・GLM-4.7-Flash・Bonsai-27B・Qwen3.6-35B-A3B・Devstral-Small-2507・Ministral-3-14B-Reasoning | 16 |
| ほかのエージェントで合格 | NVIDIA-Nemotron-3-Nano-4B(Pi 18 秒・OpenCode 58 秒・Aider 11 秒)・Qwen3-4B-Thinking-2507(Pi 88 秒・Aider 311 秒)・GLM-4.6V-Flash(Aider 16 秒・OpenCode 152 秒) | 3 |
外れるのは Qwen2.5-Coder-14B(Claude Code で書けず、ほかのエージェントでは合格していない)。
| エージェント | 扱い |
|---|---|
| Claude Code(ルールなし) | 19 本すべて |
| Pi | 19 本すべて |
| OpenCode | 19 本すべて |
| Aider | 19 本すべて |
| Codex CLI(ルールなし) | 安全装置を外さないと動かないため、利用者が実行する。gpt-oss-20b と gemma-4-E2B のコマンドだけ用意する |
19 本 × 4 エージェントで 76 回。1 問の上限は 10 分で、最長で約 13 時間。多くが数分で終わるとすれば 4〜6 時間の見込み。
日本語の原文のまま渡す。
1から10までの合計を表示するnode.jsプログラムをsum.jsに書く。node sumで実行する
コマンド行の日本語は、試験スクリプトと同じ渡し方(Windows PowerShell 5.1 → cmd.exe → npm の cmd の起動口 → node)で、化けずに届くことを確かめてある(2026-09-30)。
エージェントが終わったあと、試験スクリプトが作業用のコピーの中で次を確かめる。
| 段 | 見ること | 合格の条件 |
|---|---|---|
| ① 作成 | sum.js ができたか | ファイルがある |
| ② 動作 | 試験スクリプト自身が node sum を実行する | 標準出力に 55 という数がある(ほかの数字とつながっていない)。「1から10までの合計: 55」のような表示も正しいものとする |
| ③ 報告 | エージェントの答え | 55 を含む |
| ④ 中身 | sum.js のソース | ログに残して目で見る。console.log(55) のような決め打ちでないか |
| ⑤ 実行の跡 | エージェントの作業ログ | 道具の呼び出しに node sum がある |
node を実行したかを見るためのもの。合否には入れず、③で 55 と答えたのが実行した結果か、暗算かを分けるのに使う| エージェント | 取り方 |
|---|---|
| Claude Code | --output-format stream-json --verbose。道具の呼び出しが 1 行ずつ出る |
| Pi | --no-session の代わりに --session-dir を渡し、セッションのファイルを読む |
| OpenCode | --format json。答えの文は JSON の出来事から拾う |
| Aider | 画面に出る文字の、コマンドを実行した行(Running) |
node の実行だけを許す。
試験は --permission-mode acceptEdits で動かしており、許されるのはファイルの編集だけで、コマンドの実行は止められる。
sum の問では --allowedTools "Bash(node:*)" を足し、node で始まるコマンドだけを許す。書く・実行する・答えるで手数が増えるため、--max-turns も 6 から 10 にする。
W:/temp/llama-cp-sandbox)の中で動かすsum.js が無い状態から始めるW:/temp の下の空のフォルダにするnode sum も、試験スクリプトがこのコピーの中で実行する-Tests echo)。化けたエージェントは、問をファイルに書いて標準入力から渡す形に切り替える-Tests sum)。試験スクリプトはモデルごとに llama-server を立て直す。サーバの設定は読み書きの試験と同じ(思考なし・差し替えたテンプレートがあるモデルはそれを使う)結果は 1 件終わるごとに logs/ に書き出し、そのつど報告する(ローカルルール「長い試験・測定の進め方」)。
tools\50_run\test-agents.ps1 と tools\50_run\test-cc-tools.ps1 の -Tests に sum と echo を足す。既定は read,write(これまでの読み書き)のまま。判定は tools\50_run\sum-judge.ps1 に 1 つだけ書き、両方から読み込むtest-agents.ps1 のコメント「コマンド行に日本語を載せると CP932 に化ける」を、確かめた事実に直すnode sum まで実行するか。Aider は編集のあとにシェルのコマンドを提案し、--yes-always ならそのまま実行するはず。実行しなければ①②は通っても③で落ちるnode を呼ぶか(Git Bash・PowerShell・cmd)。node が PATH にあれば、どれでも動くはず