AuteDevEnglish

AuteDev の仕組み

誰が何をしているのか。1 回の自動開発(run)はどう進むのか。2 枚の図で紹介します。

01登場人物と役割分担

AuteDev は 4 層の登場人物で回っています。いちばん下のローカル LLM たちがアプリを作ります。その仕組み(フレームワーク)を育てているのは Claude Code で、方針を決めるのは人間です。

👤 人間 オーナー

  • 作りたいアプリを伝える(例: 「インベーダーゲームを作って」)
  • できあがったアプリ(最終アウトプット)だけで評価し、機能が足りなければ簡単に指示する。アプリの仕様書なんて、正直見てすらいない
  • AuteDev の目標・方針や仕様の変更を判断する(Claude Code から相談を受けて決める。例: 「INVADERS で 3 回連続 PASS」「特定アプリ専用の処理は入れない」)

🛠 Claude Code フレームワークの開発担当(以前は ChatGPT も)

  • ① 人間の依頼をもとに、AuteDev に渡す仕様書を作成
  • ② AuteDev を起動・監視し、終わったらログを分析して失敗の原因を探す
  • ③ AuteDev 自体を修正する:テストを先に書く → 版を上げる → リリースゲート(1,200 件超のテスト)→ AuteDev のデプロイ → アプリ生成の成功に再現性が出るまで ② に戻る
  • ④ Claude Code のセッションが途切れたときのために、引き継ぎメモを作成

⚙️ AuteDev LangGraph で組んだ自動開発ワークフロー

仕様書を受け取り、下のエージェントたちに順番に仕事を振ります。行き詰まったエージェントは、別のモデルに自動で交代させます。run の最後には、できあがったアプリと一緒に利用手順書も自動で作ります。

リーダー要件の整理・設計・テスト計画
Qwen3.8-Flash-Next(Strata) 詰まったら → Qwen3.8-27B → Gemma-4-26B-A4B-it → gpt-oss-120b
レビュアー設計やテストが仕様どおりか意味をチェック
Gemma-4-26B-A4B-it / Qwen3.8-27B
テスト作成合否を判定するテストコードを書く・作り直す
Gemma-4-26B-A4B-it / Qwen3.8-27B
アプリ作成既製エージェント(OpenHands)でアプリを 2 つ、別々に作る・直す
Qwen3.8-Flash-Next(Strata)+ Qwen3.8-27B

10/1 から作り方を変えました(「案 B」。経緯は下の 02 で):アプリ作りは既製エージェントに任せ、AuteDev は仕様の分析・API規約・テスト・検証に専念。10/2 からは Qwen3.8-Flash-Next を Strata で動かし、2 つ目のアプリは Qwen3.8-27B が同時に作ります。2 つのアプリがそろって落ちるテストは、仕様書の決めていない値がないか、リーダーに「定義をお願い」します。

🖥 ローカル LLM llama.cpp(llama-server)と Strata で自宅 PC 上で動作

モデルは基本的に 1 つずつ、5 枚の GPU にまたがって載せ、役割が替わるたびに入れ替えます。アプリ作成のときだけ、Strata(GPU 1 枚)と Qwen3.8-27B(GPU 2 枚)が同時に動きます。クラウドの AI は使いません。

RTX 5070 Ti 16GBRTX 5060 Ti 16GBRTX 5060 Ti 16GBRTX 5060 Ti 16GBRTX 5060 Ti 16GB= VRAM 80GB

021 回の run の流れ

9 月までの AuteDev は、仕様の分析からコーディング、テスト、修正まで、全部を自分の工程でこなしていました(下の折りたたみにある「案 A」)。ところが INVADERS では約 40 回走らせても PASS がゼロ。止まった原因の多くは、できあがったアプリではなく、AuteDev が途中で自分で作るもの(テストのバグなど)でした。

そこで 9/30〜10/1 に、既製のコーディングエージェントに AuteDev の仕様書と API規約(設計図)を渡して作らせる比較実験をしました。すると 16〜27 分で、AuteDev 本体が約 3 時間かけたのとほぼ同じ出来のアプリができました。一方、設計図を渡さないと時間がかかり、出来も不安定に。つまり AuteDev の強みは「作る」ことではなく、仕様の分析・設計・検証のほうだと分かったのです。

この結果を受けて、10/1 から作り方を切り替えました。これを「案 B」と呼んでいます。AuteDev は仕様の分析・設計(API規約)・受け入れテスト作りと答え合わせに専念し、アプリそのものは既製のコーディングエージェント(OpenHands)が 2 つ、別々に作ります。成績のよいほうのアプリが受け入れテストに全部通れば PASS です。

ポイントは、2 つのアプリがそろって落ちたテストの扱いです。別々に作ったアプリが同じところでつまずくなら、悪いのはアプリよりも、テストか仕様書のほうかもしれません。そこで AuteDev はテストをすぐ直さず、まずリーダーに「○○の定義をお願いします」と聞き返します。

作業チェック(ゲート)テスト実行
📄 仕様書SPEC (例: taskboard / INVADERS)Claude Code が作成 → 実物を見る
要件の整理Requirementsリーダー
設計(API規約)Architect / api_contractリーダー
設計の抜け漏れ・根拠のチェックContract Gate + evidence audit
設計を凍結(Freeze)
受け入れテストの計画とコードTest plan → Acceptance testsテスト作成
テストの静的チェック・意味チェックquality gate + semantic auditレビュアー
受け入れテストを確定(アプリを作る側には見せない)
アプリ A を作るagent build A (OpenHands)Qwen3.8-Flash-Next(Strata・GPU 1 枚)
アプリ B を作るagent build B (OpenHands)Qwen3.8-27B(GPU 2 枚)

2 つは同時に、仕様書と API規約だけを見て作る(制限時間 30 分)

両方のアプリで受け入れテストAcceptance on both builds → cross-check
全部通った
🎉 PASS
片方だけ落ちた
アプリのバグ → 修正ラウンドで直すimplementation failure → fix rounds
両方そろって落ちた
テストか仕様が誤っている可能性ありsuspect
そろって落ちたテストについて
定義依頼「○○の定義をお願いします」contract clarificationリーダーが 1 件ずつ判定
仕様が足りなかった → 値を定義するdefine (+ setup operation)
実はアプリが誤っていたimplementation bug (SPEC quote)
テストが誤っていたtest defect (SPEC quote)
回答のレビュー(問題があれば 1 回差し戻し)clarification auditレビュアー
必要なテストだけ作り直す → レビューregenerate → auditテスト作成 + レビュアー
両方のアプリに定義を反映して再採点recheck both builds

定義依頼は 最大 3 ラウンド。それでも通らなければ NOT PASS で、別のモデルが原因を分析した「次の run へのメモ」を残す

run の最後に
📦 成果物:アプリ一式 + 📘 利用手順書project files + USAGE_GUIDE.md

※ 定義では、たとえば「インベーダーの数」や「残りの命」を直接セットする操作を API規約に足すことがあります。ゲームクリアやゲームオーバーのような、長く遊ばないとたどり着けない場面をテストで作るためです。ただし足せるのは原因(数・位置など)だけで、「ゲームオーバー」という結果そのものはセットできません。結果へ移るのは、いつもの操作に任せます。10/2 の v188 からは、こうした操作を最初の設計の段階で用意します。

※ 全部のテストの半分以上が両方のアプリでそろって落ちたときは、アプリではなくテストの土台(準備や後片付け)の不具合を疑います。

9 月までの流れ(案 A:AuteDev のワーカーが自分でコードを書いていたころ)
作業チェック(ゲート)テスト実行
📄 仕様書SPEC (例: taskboard / INVADERS)Claude Code が作成 → 実物を見る
要件の整理Requirementsリーダー
設計Architectリーダー
設計の抜け漏れチェックContract Gate
設計を凍結(Freeze)
テスト作成Test Generateテスト作成 + レビュアー
テストの意味チェックSemantic Audit
コーディングCoding (OpenHands)ワーカー
実装と設計の突き合わせImplementation Contract Gate
テスト実行Quality: Public + Acceptance tests
全部通った
🎉 PASS
失敗あり
原因を診断Diagnose (Public / Acceptance)
テスト側の不具合fixture / test bug
テストを安全に修理・再生成test repair / regenerate
設計の穴contract gap
設計の見直しcontract reconcile / review
実装のバグimplementation bug
コードを修正code repair (coding)
再検証 → 前進していれば続行re-validate → validated progress?

同じ失敗を繰り返したら 別のモデルに交代。それでも進まなければ run 終了(NOT PASS)

run の最後に
📦 成果物:アプリ一式 + 📘 利用手順書project files + USAGE_GUIDE.md

利用手順書は LLM を使わず、仕様書・設計・実際に生成されたコードから確かめられることだけをプログラムで書き出します(起動方法は実際のコードから取るので、「書いてあるとおりにしたら動かない」が起きにくい)。

※ 実際のワークフローには、テスト計画の監査、ハーネス復旧、スコープ確認など 20 を超える工程があります。上の図は主な流れだけを抜き出したものです。

03run が終わったあと

NOT PASS なら、Claude Code がログと「次の run へのメモ」を分析します。そして「特定のアプリ専用ではない、一般的な直し方」でフレームワークを修正し、版を上げて次の run を回します。節目では Claude Fable にもレビューを頼みます。この繰り返しで、版番号は 180 を超えました。作ったアプリにはそれぞれアプリ ID が付き、どの run で作ったかを記録しています。

その日々の結果は、開発ログで日々更新しています。

次に読む作ったアプリローカル LLM だけで自動開発したアプリの紹介。見た目はまだしょぼいけど、人間は 1 行も書いていません。タスクボードとインベーダーゲーム。