2024年12月、3日間で ai-multiagent を集中開発。ユーザーリクエストからフルスタックコードを Agent 分割で生成。

Agent 構成

src/agents/ に役割ごとのクラスを並べた。

Agent 役割
RequirementsAgent 要件定義 Markdown 生成
BackendAgent Hono + API 実装
FrontendAgent React UI
InfraAgent インフラ設定
DocumentationAgent ドキュメント生成
FullstackAgent 一括生成版
IntegratorAgent 統合

LLM 呼び出しは src/utils/llm.ts に寄せて、各 Agent はプロンプトと出力ファイルだけ持つ形にした。server.ts / api.ts でリクエストを受けて、vitest も入れてある。

export class RequirementsAgent {
  async run(userRequest: string) {
    const result = await callLLM({
      systemRole: 'You are a highly skilled software architect.',
      userPrompt: `ユーザー要求: "${userRequest}" ...`,
    });
    return { result, file: { 'requirements.md': result } };
  }
}

コミットログ

  • 12/15 ファイル分割・API エンドポイント実装
  • 12/19 フルスタックバージョン完成

学び

Agent 分割は コンテキスト長と責務分離 に効く。1 Agent に全部任せるより、Requirements → 各実装 Agent の順が安定する。要件を先に Markdown で固めて、それを後段の Agent が読む、という流れにすると、各 Agent のプロンプトが短く保てて出力もブレにくかった。

逆に FullstackAgent(全部1発)も用意して比べたけど、責務を分けた方が結果が安定する、という体感だった。この「分けると安定する」が、2025年の並列管理 UIMetricShip の方向につながっていく。ChatGPT 模倣 → MetricShip シリーズの第3章。