初期プログラミングの検証計画

日本語で「プログラムを書いて実行する」を頼み、書きの試験に合格した 19 本のモデルを 4 つのエージェントで総当たりに試す
📅 作成: 2026-09-30 / 更新: 2026-09-30

目次

  1. 目的と対象
  2. 問と判定
  3. 簡易サンドボックスと流し方
  4. 作業の手順
  5. 未確認のこと

この文書の位置づけ

読み・書きの試験の結果はローカル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-Reasoning16
ほかのエージェントで合格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 本すべて
Pi19 本すべて
OpenCode19 本すべて
Aider19 本すべて
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 がある

作業ログの取り方

エージェント取り方
Claude Code--output-format stream-json --verbose。道具の呼び出しが 1 行ずつ出る
Pi--no-session の代わりに --session-dir を渡し、セッションのファイルを読む
OpenCode--format json。答えの文は JSON の出来事から拾う
Aider画面に出る文字の、コマンドを実行した行(Running)
Claude Code には node の実行だけを許す。 試験は --permission-mode acceptEdits で動かしており、許されるのはファイルの編集だけで、コマンドの実行は止められる。 sum の問では --allowedTools "Bash(node:*)" を足し、node で始まるコマンドだけを許す。書く・実行する・答えるで手数が増えるため、--max-turns も 6 から 10 にする。

簡易サンドボックスと流し方

簡易サンドボックス

簡易サンドボックスは、作業フォルダを分けるだけで、外への書き込みは止めない。 エージェントがコピーの外のパスを推測して書きにいけば届く。 読み書きの試験では、ホームがプロジェクトの中にあった回に、プロジェクトの本物のファイルへ読み書きしにいった(試験結果の第 5 章)。

流し方

  1. 確認用の 1 問。gemma-4-E4B を 4 つのエージェントで動かし、「次の日本語をそのまま繰り返して」と頼んで、化けずに返るかを見る(-Tests echo)。化けたエージェントは、問をファイルに書いて標準入力から渡す形に切り替える
  2. 本番。エージェントごとに、19 本のモデルを速いものから順に流す(-Tests sum)。試験スクリプトはモデルごとに llama-server を立て直す。サーバの設定は読み書きの試験と同じ(思考なし・差し替えたテンプレートがあるモデルはそれを使う)
  3. Codex。本番のあと、利用者がコマンドを実行する

結果は 1 件終わるごとに logs/ に書き出し、そのつど報告する(ローカルルール「長い試験・測定の進め方」)。

作業の手順

  1. 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 つだけ書き、両方から読み込む
  2. test-agents.ps1 のコメント「コマンド行に日本語を載せると CP932 に化ける」を、確かめた事実に直す
  3. 確認用の 1 問を流す
  4. 本番の 76 回を流す
  5. 結果を試験結果に 1 章として足し、全実行の記録に行を足す
  6. 課題 i260930-05 の状態を進める

未確認のこと