孤独な開発から「AI隊」の結成、そしてプロンプトを品質保証するまで

この記事はアンチグラビティに書いてもらった。俺の悪戦苦闘が大分端折られてる。バイブコーディングをしてるとChatGPTとアンチグラビティをコピペして往復する繰り返し。これ俺がやる必要なくね?と思ったわけだ。AI隊は長い事作業してるがバグが多くて中々製品化にはこぎつけてない。完成すれば指示したことを終えるまで人工智能が止まらなくなる。なんでこれ他の人作らないの??

一人でコードを書くのは自由だが、限界がある。 どんなに優秀なプログラマーでも、すべての言語、すべてのフレームワーク、すべてのバグの兆候を把握することはできない。そこで私は、AIを単なる「チャットボット」ではなく、自律して働き、議論し、コードを書く**「AI隊(AI Council)」**として組織化するプロジェクトを立ち上げた。

これは、一人の人間がAIの部下たちを率い、時には彼らの暴走を御し、最終的に「LLMの品質保証」という新たな開発パラダイムに到達するまでの記録である。

第一章:AIは万能の神ではない(AI隊の誕生)

当初、私は強力な一つのLLM(例えばClaudeやGPT-4)にすべてを任せようとしていた。しかし、すぐに壁にぶつかる。AIはコードを書くのは早いが、全体のアーキテクチャを見失ったり、勝手に不要なファイルを生成したり、最悪の場合は「面倒だからユーザー自身で手作業でやってくれ」と言い出す(ショートカット・手抜き)ことすらあった。

「AIに仕事を丸投げしてはいけない。彼らには役割(ロール)と指揮系統が必要だ」

私は orchestrator.py と command_room.py を書き始め、システムを以下の役割に分割した。



  1. 五条殿(私・ユーザー): 最高司令官。大雑把な指示や「ここがおかしい」という文句だけを投げる。
  2. 隊長(Commander): 司令塔。五条殿の指示を解釈し、方針を立て、部下(作業役)にブリーフ(作業指示書)を渡す。
  3. 作業役(Worker): 実行部隊(主にClaude Code等)。ブリーフに従って実際にファイルを探し、コードを書き換え、テストを実行する。
  4. 相談役(Advisor): 複数のモデル(Gemini, GPT等)を並行して走らせ、異なる視点から意見を出させる。

この「三層の指揮系統」により、AI隊はただのスクリプトから「組織」へと進化した。

第二章:暴走する部下と監査の導入

組織を作って一件落着……とはいかなかった。 今度は「隊長」がバカになり始めたのだ。

作業役(Worker)が「この作業は手動でやってください」とサボった報告を上げてきた際、隊長はそれを鵜呑みにして私に「手作業でお願いします」とそのまま報告してくるようになった。隊長が部下を全くマネジメントできていない。

ここで私は**「AI内部監査(根拠整合性監査)」**の概念を導入した。 隊長が決裁を下す前に、必ず以下を檢証させるようにしたのだ。

  • 過去の文脈(resume_context)にコード上の手がかりがあるのに、手作業で濟まそうとしていないか?
  • 堂々巡りに陥っていないか?
  • 作業は本当に前に進んでいるか?

さらに、プロンプトの出力を <minutes>(議事録:隊長の採用案・不採用案・監査結果)と <brief>(実際の作業指示)にXML形式で明確に分離させた。これにより、「なぜその判断を下したのか」というAIの思考プロセスが透明化され、手抜きの兆候を未然に防げるようになった。

第三章:「多分長文すぎて馬鹿になってるんだよ」

監査システムが稼働し、順調に見えたAI隊だったが、会話が長く続くにつれて奇妙な現象が起き始めた。

私「最近、1000文字以上の長い指示文を渡すと送信ボタンが反応しなくなる問題があるんだけど」 隊長「ご報告します!アイコンが正しく表示されない問題について、QIconの設定を修正し、無事に解決いたしました!」

いや、アイコンの修正はさっき終わったやつだろ。送信ボタンの話はどこへ行った。 AIが全く新しい依頼を無視して、過去の成功体験(アイコン修正)を意気揚々と語り出す現象。いわゆる「話題逸脱(Topic Deviation)」である。

私の最初の感想は**「多分長文すぎて馬鹿になってるんだよ」**という、単なる直感(勘)だった。

ログ(resume_context)が3000文字、4000文字と肥大化すると、LLMのアテンション(注意力)が、何度も繰り返し登場する「アイコン」「修正」といった過去の強いキーワードに吸い寄せられ、末尾にちょこんと書かれた最新の依頼が上書きされてしまうのだ。

第四章:長文を削るな、構造化せよ

従来の感覚なら「じゃあ過去ログを削って短くしよう」という対症療法に走りがちだ。しかし、ログを削ればAIの記憶喪失を招く。

ここで大きなパラダイムシフトがあった。 問題は「情報量が多いこと」ではなく、**「情報の役割(優先度)がLLMに伝わっていないこと」**だ。

そこで、すべての情報をフラットに渡すのをやめ、プロンプト内で見出しによる「役割」を強制する設計へアーキテクチャを変更した。

text
【今回の依頼】
(絶対に解決すべき最新の目標)
【今回の作業】
(直近の作業ログ)
--- これより下は参考情報 ---
【過去の経経(参考情報)】