← プロジェクト一覧 atelier-kyo-manager →

NexusCore

マルチエージェント与えられた目標に向かって、自分で手順を組み立てて作業を進めるAIプログラム。質問に答えるだけのチャットAIと違い、「調べる→書く→確認する」を自律的に行うAI開発フレームワーク。12の専門エージェントが協調動作し、 要件分析→設計→コード生成→テスト→品質保証まで自動化。

なぜ作ったか

ソフトウェア開発の各フェーズ(要件定義「何を・何のために作るか」を言葉に整理して関係者で合わせる最初の作業。ここが曖昧だと手戻りが最大になる・設計・実装・テスト・レビュー)は、本来それぞれ異なる視点と専門性が必要です。一人のエンジニアが全フェーズを兼務すると、どうしても視点が偏ります。そこで各フェーズに専門のAIエージェントを割り当て、協調させることで、一人開発でも多様な視点での品質担保を実現できないか——という構想から生まれました。

アーキテクチャ

12の専門エージェント

エージェントは大きく3つのグループに分かれています:

① 開発パイプライン(上流→下流)

Requirement(要件分析)
    ↓ 要件仕様書
Planner(実装計画)
    ↓ 実装プラン
Architect(アーキテクチャ設計)
    ↓ 設計書
Coder(コード生成)
    ↓ コード
Tester(テスト自動生成)
    ↓ テスト結果
Guardian(品質ゲート判定)
    ↓ 合格/不合格

② 品質保証・分析

エージェント 役割
Debugger エラー修正・デバッグ
Mutation Tester テストスイートの強度測定(ミューテーションテスト)
Postmortem 失敗分析・事後検証

③ ガバナンス・管理

エージェント 役割
Policy ポリシー適用(コーディング規約等)
Constitutional Council ガバナンス・意思決定
Knowledge Curator ナレッジ管理

設計上の判断と理由

Q: なぜ12エージェントに分割したのか?

1つの巨大エージェントに全役割を担わせることも可能ですが、あえて分割した理由は:

Q: なぜ2層の品質ゲートにしたのか?

LLMルーティングタスクの内容に応じて、どのLLM(AIモデル)に処理させるかを振り分ける(ルーティング=経路選択する)仕組み。品質とコストのバランスを取るのが目的(8プロバイダー)

Task → LLM Router → [品質ティア: GPT-5.5 / Sonnet 4.6 / Gemini 3.1 Pro]
                     [軽量ティア: Claude / 代替プロバイダー / DeepSeek / Moonshot]
                      ↕
                 Budget Manager(日次上限・フォールバック制御)

33種のタスクを自動分類し、最適なLLMにルーティングします。コード生成などの重要タスクは品質ティアLLM(AI)を能力と値段のランク(ティア=階層)で分けて使い分けること。難しい仕事は高性能・高コストのモデルへ、簡単な仕事は低コストのモデルへ振り分けて、全体のコストを下げる、チャットや分類は軽量ティアに振り分け、月額コストを最適化しています。

面接で聞かれそうなポイント

「ミューテーションテストとは?」

通常のテストは「コードが正しく動くか」を検証します。ミューテーションテストは逆に「テストが本当にバグを見つけられるか」を検証します。

具体的には:

  1. 本体コードに意図的に小さなバグ(ミュータント)を注入する
  2. テストを実行する
  3. テストがバグを検出(kill)できればOK、見逃せばテストが不十分

例:if a > 0if a >= 0 に変えて、テストが失敗するか確認する。失敗しなければ a == 0 の境界値テストが漏れていることになります。

「Authority Runnerとは?」

変更の重要度に応じて、実行の自動化レベルを3段階に切り替える仕組みです:

レベル 名称 動作
1 HUMAN_CONTROLLED 人間の承認が必要
2 PARTIALLY_AUTONOMOUS 重要な変更のみ人間確認
3 FULLY_AUTONOMOUS 完全自動実行

技術スタック


用語の平易な解説(専門用語を読み解く)

🤖 マルチエージェント(multi-agent)

一言で: 「複数のAIに役割を分担させて、一緒に1つの仕事を仕上げる仕組み」。

🏗️ アーキテクチャ(architecture)

一言で: 「システム全体の構造設計・骨組み」。

🚪 品質ゲート(quality gate)

一言で: 「品質基準を満たすまで次の工程へ進めない、関所のような仕組み」。

🔍 静的解析(せいてきかいせき)・Pylint / Mypy / Bandit

一言で: 「コードを実行せずに、文字として読んで問題を見つける検査」。

📊 カバレッジ(coverage)

一言で: 「テストがコードのどれくらいの割合を網羅しているか、を示す数値」。

🔀 LLMルーティング(LLM routing)

一言で: 「タスクの内容に応じて、最適なAI(LLM)に振り分ける仕組み」。

🔁 フォールバック(fallback)・ティア(tier)

一言で: 「メインが故障した時、自動で予備に切り替える仕組み」と「階層・ランク」。

🌐 FastAPIApplication Programming Interface(エーピーアイ)の略。あるプログラムの機能を、別のプログラムから呼び出せるようにした「窓口」。予約システムがLINE社の機能とやり取りするのもAPI経由(ファストエーピーアイ)・Gradio(グラディオ)

一言で: 「Webサービスを簡単に作るためのPython道具」。

🔁 CIContinuous Integration(シーアイ・継続的インテグレーション)の略。コードを変更するたびに自動でテストとチェックを回し、壊れていないかを常に確認する仕組み/CD(シーアイスラシーディー)・pytest

一言で: 「更新のたびに自動でテスト・公開まで回す仕組み」と「テストを書く道具」。