世界を動かす技術を、日本語で。

パーソナルAIファクトリーの構築

2025年7月2日原文(john-rush.com)

概要

  • AIエージェントを工場のように組み合わせて、コード生成・検証・改善を自動化する手法の紹介。
  • 出力(生成コード)は使い捨て とし、プランやプロンプト(入力)を改善して品質向上を図る考え方。
  • 複数のAIモデル (claude、o3、sonnetなど)を役割ごとに使い分け、並行して機能開発を進行。
  • ワークフローの自動化・拡張性 を重視し、エージェントの自己改善サイクルを実現。
  • 今後の課題 として、より高度なエージェント連携や抽象度の高い情報活用を目指す。

AIエージェント工場の構築と運用

  • claude codeを主なインターフェース として利用し、各git-worktreeごとにウィンドウを分割運用。
  • o3・sonnet 4は計画立案sonnet 3.7やsonnet 4は計画実行o3は結果検証 を担当。
  • コード生成に問題があれば、出力を直接修正せず、計画やプロンプトを改善 し再実行。
  • Factorioのような自己増殖型工場 をAIエージェントで再現し、コード生成・検証・自己改善のループを構築。
  • 複数のclaude codeインスタンスとgit worktree を活用し、並行して複数機能の開発を実現。

基本ワークフロー

  • Step 1: 計画立案

    • 高レベルのタスクをclaude codeに指示
    • o3が計画を作成 し、clarificationの質問も実施
    • <task>-plan.mdに依頼内容と実装計画を記載
  • Step 2: 実行

    • sonnet 4が計画を検証・タスクリスト化
    • claude codeが、sonnet 3.7またはsonnet 4でタスクを実行
    • 各ステップごとにコミットを作成 し、ロールバックも容易に
  • Step 3: 検証とフィードバック

    • sonnet 4とo3がコードを計画・依頼内容と照合し検証
    • o3は妥協せず不要な互換性コードやlint無視フラグを指摘
    • 指摘事項はプランテンプレートに反映し、コード自体は直接修正しない

入力重視の理由と実例

  • 出力は使い捨て、計画・プロンプトは蓄積資産
  • ソースでのデバッグは将来すべてのタスクに効果を波及
  • 例:CSV全読み込みからストリーミングに変更→以後の計画で自動チェック

工場のスケールアップ

  • 特定タスクごとに専用エージェント(MCP)を用意

    • 例:clojureコードのスタイルルール適用専用エージェント
    • 例:リトライ処理の共通ライブラリ化
  • 小規模エージェントを組み合わせて複雑なワークフローを構築

    • 例:APIドキュメント+ビジネスケースから統合・テスト・ドキュメントを自動生成
  • 並列実行・反復で効率化

    • 複数エージェントを同時実行し、失敗や不足情報は次回にフィードバック
    • 出力修正を避け、常に入力(計画・指示)を改善

今後の展望と課題

  • エージェント間の自動調整・ワークフロー自動化
  • ビジネスドキュメントの抽象度向上とエージェント活用性の強化
  • より複雑なワークフロー・多エージェント連携の推進
  • プロバイダーごとのトークン制限への柔軟対応(claude max/bedrock間の切り替え等)

結論:本質は「入力を直す」こと

  • 工場はコーヒーを淹れている間にコードを出せるレベル に到達
  • 本質は「出力ではなく入力を直す」こと
  • 制約は変わるが、原則は変わらない

Hackerたちの意見

もっと具体的な情報が知りたいな。例えば、Claudeとo3がどうやり取りしてるのか、セッションの例とか。

おそらく、Goose経由でMCPを使ってClaude Codeに接続してるんだと思う。>「私もGooseとo3を動かしているローカルMCPを持っている。」

私はZen MCPとOpenRouterを使ってる。たまに、私のClaude Codeが「友達に電話」して、Geminiでコードレビューをすることがある。大抵は自分から頼むことはないけど、提案された実装がうまくいくか不安な時に「分析」や「ウルトラスルーキング」をお願いすることがある。無提示で動いてるのを見るのはすごいよ。計画のためには、Geminiに行って作業をチェックしたり、アイデアを出したり、リサーチや完成度の評価をすることが多い。少なくとも私には、その反復が役立ってるみたい。こういうスレッドではみんな「証拠」を求めるけど、何を出せばいいのか分からない。Claudeの計画がどうなってるかのセカンドオピニオンを得るのに4セントかかる感じで、詳細な返答は面白かった。先月OpenRouterに10ドルチャージしたけど、50セントくらい使ったかな。今はClaude Maxを月200ドルで使ってて、GPT Plusも20ドル。OpenRouterのはほんと小銭みたいなもんだね。$0.02 :D

こういうセットアップを評価するのは、結果のコードがどう使われているか知らないと難しいよね。個人用のスタンドアロンアプリで使うなら、納得できるけど。複雑なプロダクションシステムで高品質なコードを書くのは、ちょっと信じがたいな。

この記事やそのワークフローはちょっと曖昧で、よく分からないな。でも、私は複数のエージェントが互いに話し合ったり、非同期エージェントやgitワークツリーを使ったりして、複雑なプロダクションシステムで日常的に作業してる。出力を全く変えないわけではないけど、望んでる出力が得られないときは、ワークフローを見直す必要がある信号だと思ってる。

その通り。私はコーディングの大幅なスピードアップのためにClaude Codeを使ってるけど、すべてのコード変更には目を光らせて、最適なシステムを作るようにしてる。数回だけ放置して動かしたことがあるけど、その結果、顧客が対処しなきゃいけないバグが出たことがあった。

まとめありがとう!「Vibe Specs」についての投稿で、似たような、でもちょっとシンプルなワークフローについて話したよ。https://lukebechtel.com/blog/vibe-speccing 今はこれらのルールをすべてのコードベースで使ってる。基本的にAIに2つのことを違うやり方でやらせるんだ:(1) まず私に質問させる (2) コードを書く前に spec.md ドキュメントを作成する。あなたのとあまり変わらない気がするけど、私は一つのLLMに限定してる。

たくさんの人がこれを試してると思う(当然だけど)、ソロ開発者としてエンジニアリングファーストの考え方で、ガジェットを生み出す機械や工場を作ってる。私はまだゴールには到達してないけど、私にとっての聖杯は、エージェントが生成したe2eテストを通じて得られるコードの自信なんだ(実装とは別にね)。

Claude Codeは今や「プランモード」でこれをネイティブに扱えるようになったね。手動で.mdファイルを扱うのはちょっと遅くて面倒だと思う。

この記事は、まだClaude Codeで「アハ!」って瞬間を経験していない人には、ほとんど理解できないんじゃないかな。あの瞬間は、「claude --dangerously-skip-permissions」を使って難しい問題に取り組ませて、数分間いろんなツールを使って自動で解決するのを見守るときだよ。今日は486アセンブリでマンデルブロ集合の生成器をコンパイル、実行、デバッグさせてみたんだけど、MacのDocker上で動かしてみたら、すごくうまくいったよ! https://gist.github.com/simonw/ba1e9fa26fc8af08934d7bc0805b9...

がんばれ!ここはYCだよ!なんでまだユニコーンになってないの?

誰かの役に立てばいいな。私はClaude maxからプロに20ドルでダウングレードしたけど、使用制限がかなり良いよ。彼らはGemini cliと競争しようとしてるみたいで、今は安く済んで嬉しい。

Hacker Newsで議論の続きを見る