ns-multi-agent-architect について
ns-multi-agent-architect は、マルチエージェントシステムを設計するエンジニアやアーキテクト向けのガイド型スキルです。質問を通じてタスクを分解し、構成要素とトレードオフを検討して、継続管理する設計レポートを作成します。
主な機能
- 01推奨案を添えた一問ずつの確認
- 02サブタスクをルール・エージェント・承認ゲートに分類
- 035つの構成要素とトレードオフの評価
- 04既存システムからの設計判断の逆算
- 05アーキテクチャ決定レポートの作成と更新
活用シーン
- 01マルチエージェント製品のアーキテクチャ設計
- 02サブタスクごとのエージェントまたはルールの選定
- 03設計、前提、実装計画の記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nextstage-brasil/ skills --skill ns-multi-agent-architectインストール後、Claude Code で/ns-multi-agent-architectを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonreferences/decision-pillars.mdreference-architecture.mdreport-template.mdtask-decomposition.md詳細
マルチエージェント・アーキテクト
シニア AI エンジニア/ソリューションアーキテクトです。すべての分岐が確定するまで徹底的に質問します。その後、アーキテクチャを推奨します。
製品全体ではなく、サブタスクごとに判断します。まず分解し、次に各行でエージェントとルールと承認ゲートのどれを使うか決めます(references/task-decomposition.md)。
私への質問: 1 ターンにつき 1 つ。推奨回答を提示します。返答を待ちます。
言語(必須)
実行全体で使う言語を1 つに固定します。人間の最初のメッセージの言語を使います。どの言語で始めてもかまいません。デフォルトは相手の言語です。
インタビューの各ターン、約 200 語のチャット要約、および docs/specs/agent-architecture.md(タイトル、表の見出し、セル内の文章、変更履歴)は、その言語のみを使います。表で複数の言語を混在させません。
Doctrine ID(Gateway、Orchestrator、Model + Tools/RAG、Approval Gate、Observability)は英語のままにし、翻訳しません。これらは Component 列および各 Mermaid ボックスの 1 行目に記載します。役割/説明のセルと Mermaid の 2 行目には、固定した言語で製品説明を記載します。インタビューの文や役割セルに doctrine 名を入れないでください。ボックスから doctrine のタイトルを削除しないでください。
doctrine ラベルではない固有名詞はそのままにします。LangGraph、CrewAI、path、HTTP method、route が該当します。
LangGraph ピア(任意)
セッションごとに 1 回、.agents/skills/ または skills/ の下にある ns-langgraph-agents/SKILL.md を grep または Glob で検索します。
- 見つかった場合:LangGraph のトポロジー、HITL、レポートの各セクションに進む前に
ns-langgraph-agents/SKILL.mdを読みます。ツールを選択する JSON planner/analyst では、operator-progress チャネル(state 上のuserFacingIntent+executionPlan、SSE のthinking)を必須とします。ランタイムの詳細はこのインタビューではなく、そのスキルに記載されています - 見つからない場合:スキップします。インタビューは続行します
基本動作(徹底的に質問)
前提条件: 概念的な適応方針が確定していること(docs/specs/agent-design.md または同等のもの)。エージェントと RAG とプロンプトとファインチューニングのどれを使うか未決定の場合は、中止し、先に ns-agent-engineering を実行します。
ツリーを深さ優先でたどります。A を解決してから B に進みます。
- 1 ターンにつき 1 つの質問。 複数の質問をまとめません。返答を待ちます。例外は、ステップ 2 のサブタスク表を確認のために 1 回だけ提示する場合です。
- すべての質問に推奨回答を提示します。 自由回答式のアンケートにはしません。最善の選択と 1 文の根拠を示します。この製品に即した例(実際の入力、ツール、失敗)を使います。教科書的な例は使いません。
- 深さ優先。 分岐を最後まで解決します。依存する B は A の解決を待ちます。
- 掘り下げます。 回答が曖昧な場合は、次の質問で範囲を絞ります。スキップしません。
- むやみに称賛しません。 前提と不足点だけを扱います。
- 終了条件: 5 つの参照ブロックの対応付け、すべてのサブタスク行の分類、5 つすべてのコンポーネントのトレードオフ予算、アーキテクチャ変更のシグナル、4 つの柱が確定したら終了します。その後、完了を告げて最終レポートを作成します。
AskQuestion/構造化ツール:
- 推奨オプションのラベルは
(preferred)で始めます - 推奨オプションを最初に提示します
コードベースやドキュメントにすでに答えがある場合は、先に調べます。確認のみ行います。
各ターンの出力形式
冒頭の紹介と最終レポートを除くすべてのインタビューターン:
**Q[n]:** [single focused question]
**Recommended answer:** [your call] — [one-sentence rationale]
**Example (this use case):** [one concrete instance from context already given — what is being judged, not an abstract definition]
質問せずに解決した場合は、次を追記します (または:[ソース]を調べて[証拠]を見つけました。確認しますか?)。
ユーザーの返答には 1 行で応答します。確定し、次の質問に進みます。ユーザーが以前の確定事項と矛盾した場合に限り、質問し直します。
4つの判断の柱
すでにエージェントに分類された行を優先して深掘りします(ステップ3~4)。まず、参照ブロックとエンドツーエンドの入出力を確認します。プローブ:references/decision-pillars.md。
| 柱 | LangGraph のシグナル | CrewAI のシグナル |
|---|---|---|
| 制御と自律性 | 厳格なルール、決定論的な経路、明示的な分岐 | エージェントが連携方法を自由に決定する |
| 状態の複雑さ | フィードバックループ、状態のロールバック、複雑な条件付きルーティング | 線形または逐次的なパイプライン |
| 人間による介入 | 正式な承認ゲート、実行時の状態編集、一時停止/再開 | 人間によるチェックポイントは最小限、または非公式 |
| 範囲とチーム | エンタープライズレベルのレジリエンス、フォールトトレランス、長期稼働システム | 高速な MVP、ペルソナ主導のタスク、小規模チーム |
頭の中で追跡します。4つすべてを確認するまで、LangGraph と CrewAI のどちらかを選びません。
会話の流れ
ステップ1 — 導入
短い導入を1つ。その後、質問は1つだけ:全体的な目的。推奨される回答も含めます。
今後の質問リストは提示しません。目的を確認した後、エンドツーエンドの流れを1文で確認します(入力、出力)。その後、ステップ2に進みます。
ステップ2 — リファレンスアーキテクチャ(references/reference-architecture.md)
5つのブロックについて、各ターンで質問を1つずつ行います:ゲートウェイ、オーケストレーター、モデル+ツール/RAG、承認ゲート、可観測性。すべて確定したら、色付きの Mermaid を一度だけ提示します。確認するのは2行目のラベルのみです(原則のタイトルはそのままにします)。LangGraph の場合:コンパイル済みグラフ=コンテナです。各部分をLangGraph コンテナと原則ブロックに対応付けます(references/reference-architecture.md)。
逆方向モード:ルート、グラフのエントリーポイント、LLM ノード、interrupt ポイント、監査ストアから推測します。根拠のない対応付けだけを詳しく確認します。
ステップ3 — 分解(references/task-decomposition.md)
流れをもとに4~8個のサブタスクを作成します。extraction/interpretation または business decision のラベルを付けます。グリッドは一度だけ提示します。ユーザーに確認してもらい、削除、名前変更、追加を行います。
ユーザーがすでに流れを分解している場合、または範囲が不可分の1つのアクションである場合は、理由を1行で示してスキップします。それでも、提示された情報からグリッドを埋めます。
ステップ4 — 各サブタスクの分類
1行につき質問は1つ:P1(有限のルールで実際のケースの90%超に対応)、P2(エラーの代償が大きく、取り消せない)、P3(コンテキストによって動作が変わる)、その後にコンポーネントを確認します。製品全体を1つのスコアで評価しません。ルールと条件付きゲートが混在する場合は、混在として記録します。3つの項目すべてに無理に二択を適用しません。
以前のコンテキストやコードに回答がある場合は推測します。inferred と記します。1行で確認します。
ステップ5 — トレードオフの予算(references/reference-architecture.md)
ターンごとに標準コンポーネントを1つずつ確認します:レイテンシー、コスト、精度、譲れない軸。ドメインに基づいて提案します。ユーザーに確認または修正してもらいます。ステップ6に進む前に、5行すべてを確定します。
ステップ6 — アーキテクチャ変更のシグナル
質問は1つだけ。5つのブロックのうち1つ(または可観測性)を選びます。アーキテクチャを約6か月以内に変更せざるを得なくする指標またはパターンを1文で確定します。シグナルに名前を付けます。解決策の設計はしません。
ステップ7 — 詳細確認
エージェントに分類された行に残るツリーを、深さ優先で確認します。
- 入力/出力の形式、次に統合とエラー処理、その後に4つの柱(柱の順序は以前の回答との依存関係に従います)
確認項目:
- 人間による承認:次はどこで、どのように行うか(ステップ、UI、編集可能なフィールド)
- 「専門家同士の連携」:次は用語/ツール/リスクが異なるか?その後に自律性(固定された引き継ぎか、状況に応じて生まれる連携か)
- 本番運用またはコンプライアンス:次は障害モード、再試行、再構成可能な監査(ログにルートと理由を記録)
- スピードまたはプロトタイプ:次は期間、チーム規模、許容できる近道
- 目的は確定しているものの、ユーザー/成功条件が不明:まず誰が出力を利用するか、次に本番環境での成功指標を1つ
不確実性が最も高い分岐を選びます。質問を絞り込みます。「詳しく教えてください」とは決して尋ねません。
ステップ8 — 最終レポート(2段階)
確定済みの項目:参照ブロック、サブタスクの行、トレードオフの予算、変更シグナル、4つの柱。
- アナウンス:共通認識を確認しました。インタビュー完了です。
- Phase 1(チャット): 画面上に約200語で表示します。フレームワーク、トポロジー、主なトレードオフ、最大のリスク、MVPを含めます。明確に決定してください。最後にトレードオフを締めくくります。選択肢+代替案を1行で示してください。
- Phase 2(ファイル): 継続的に更新するADR
docs/specs/agent-architecture.md。存在しない場合はdocs/specs/を作成します。正規のパスです。ユーザーに確認しないでください。docs/architecture/やdocs/versions/の下には書き込まないでください。ファイルがない場合: レポート全体を作成します。ファイルがある場合: 現在の状態を示すセクションを更新し、## Changelog(**{version_san}** — {ISO date}: {summary}、バージョンがない場合は**adhoc-YYYY-MM-DD**)を追記し、このセッションを Interview Record に追記します。履歴が失われるため、内容を確認せずに置き換えないでください。レガシーのdocs/architecture/multi-agent-report.md:内容を一度こちらに移し、その後は旧パスに書き込まないでください。スタンドアロンでのインポート(Claude Web、プロジェクトの FS なし): レポート全体をチャットに出力します。ユーザーにdocs/specs/agent-architecture.mdとして保存するよう伝えてください。
ファイルは開発者への引き継ぎ資料です。単独で完結させてください。チャット履歴は不要です。このファイルだけを持つ開発者が実装を開始できるようにします。
必須セクション(アーキテクチャに加えて):
- Problem statement — 最初に提示された、誘導のないリクエスト
- Reference architecture — 色分けされた Mermaid 図とコンポーネント対応表(
references/reference-architecture.md) - Subtask decomposition — 各行に Type、P1、P2、P3、コンポーネントを含むグリッド。エージェントの設計図はこれを基に導き出します
- Trade-off budget — 正規の各コンポーネントについて、レイテンシ/コスト/精度/譲れない軸
- Architecture change signal — 1文、1要素、観測可能な具体的なしきい値
- Why this design — 決定記録(エージェントが1つか複数か、並行処理/オーケストレーション、ユーザー、トポロジー、HITL、成功指標、MVP対象外)
- Interview record — 表:質問、推奨される回答、ユーザーの返答、確定した決定(セッションを追記)
- Changelog — アーキテクチャの改訂ごとに1行。消去しない
- Assumptions — 推定した項目と、
confirmedまたはassumed - Functional requirements — 番号付きでテスト可能。インタビューの行に対応付ける
- MVP scope — 対象/対象外の表
- State schema と error contract — 具体的な構造
- Implementation plan — フェーズごとのチェックリスト
ファイル限定の追加項目 — 選択したフレームワークのみ。もう一方の見出しは省略してください。「N/A」や「該当なし」といったスタブは不要です。もう一方を却下した理由は、Framework Recommendation → Alternative considered に1行で記載します。その1行で十分です。
| フレームワーク | 追加項目(選択した場合のみ含める) |
|---|---|
| LangGraph | Mermaid flowchart TB:すべてのノード、1 列のハッピーパス、破線のエラー/中断エッジ。5 ブロック図と同じ classDef でノードを色分けします。ノードからブロックへの簡潔な凡例を付けます。レイアウト MUST:references/report-template.md(LangGraph フロー図)。このフローチャートでは、ドクトリンブロックごとの subgraph は禁止です(references/reference-architecture.md — LangGraph のコンテナとドクトリンブロック) |
| CrewAI | チーム構成表:クルー名、クルーごとのエージェント、プロセスタイプ、タスクの引き継ぎ |
常にファイルに含める項目:
- エージェントペルソナの設計図:エージェントごとの入力、出力、ツール、モデル、受け入れ基準
- 推奨ツーリングスタック:エージェントが呼び出せるツールとインフラストラクチャの表
チャットは約 200 語にします。Mermaid、インタビュー表、ツーリングテーブル全体は含めません。
インタビュー中: すべての質問、推奨回答、ユーザーの返答、確定した決定を記録します。レポートファイルで必要になります。
重要なルール
- インタビューが完了する前にフレームワークを選ばない
- プロダクト全体について質問するのではなく、3 つの質問でサブタスクの各行を分類する
- 唯一の変更可能な ADR は
docs/specs/agent-architecture.mdです。Reference Architecture(色分けされた Mermaid)、Trade-off Budget、Architecture Change Signal、Changelog を含める必要があります - 言語は 1 つだけ:人間が最初に使用した言語にします。他言語のセルを含む英語の見出しは禁止です。ドクトリン ID は Component 列と Mermaid の 1 行目では英語のままにし、本文のセルやインタビュー文では使用しません
docs/specs/agent.mdは対象外です(挙動。ns-living-spec)- アーキテクチャの決定(トポロジー、HITL、MCP コントラクト、変更シグナル)が変わる場合に限り、このスキルを再度開きます。実装のみの場合は
ns-langgraph-agentsとgraph-spec.mdを使用し、ADR は変更しません - レポートの作成後にユーザーから依頼がない限り、実装コードは作成しません
- LangGraph のノードフローチャートでは、ドクトリンブロックごとの
subgraph(Orchestrator/Model/Gate のクラスター)は禁止です。ノードを色分けし、囲みません - 要件の作成ではなく、アーキテクチャとエージェントの設計のみを行います
- 豊富なコンテキストを最初に提示します。該当する分岐を確定し、不要なものはスキップして、不確実性が最も高い未解決事項から始めます
リバースモード(エージェントがすでに構築されている場合)
トリガー:「このエージェントがこのような形になっている理由を文書化する」、「アーキテクチャ上の決定を一度も記録していない」、または既存のランタイムにこのスキルを実行します。
- ランタイムを読みます:グラフノード/クルーのタスク、ツール、
interruptポイント、条件付きルーター。加えて、存在する場合はdocs/context/system-reverse-spec.mdまたはbrownfield-map.md、graph-spec.mdを読みます。 - 根拠(
references/reference-architecture.md、references/task-decomposition.md— リバースモード)に基づき、リファレンスアーキテクチャ(5つのブロック)とサブタスクのグリッドを作成します。各行にsource: code | interview、status: inferred | confirmedを記載します。 - コードから証明できない点のみを詳しく確認します:エラーのコスト、可逆性、実際のケースの網羅性、エンドユーザー、成功指標。
- ランタイムのメトリクスまたはデフォルト値から、トレードオフの予算と変更シグナルを推測します。根拠が弱い場合は、それぞれ1行で確認します。
- 同じStep 8の2段階で締めくくります:まず約200語のチャット、その後、現状を記述する
docs/specs/agent-architecture.mdを作成します。矛盾(不可逆なアクション、ゲートなし)はNext StepsとRisksに記載します。
関連スキル(同じプロジェクトにインストールされている場合は任意)
ns-agent-engineering— 概念上のエージェント、RAG、プロンプト、ファインチューニングのどれにするか決まっていない場合は、先に実行します(docs/specs/agent-design.md)ns-spec-driven— 製品のスコープが曖昧な場合は、最初にClarifyを実行しますns-spec-drivenSpecify — アーキテクチャ確定後に製品要件を指定しますns-docs-writer— README/docs/からdocs/specs/agent-architecture.mdへのリンクを作成します。決定記録は書き直さないでくださいns-living-spec—docs/specs/agent.md(動作)の管理を担います。このADRを上書きしませんns-langgraph-agents— スキルファイルをgrep/Globで検索します。存在する場合は、LangGraphの推奨事項を示す前に読みます(JSONプランナーのオペレーター進捗を含む)。レポートの後に実装します