关于 ns-multi-agent-architect
ns-multi-agent-architect 是用于梳理多 Agent 系统架构决策的技能,面向设计 Agent 方案的工程师与架构师。它通过逐项访谈拆分子任务、判定组件与权衡,并生成架构报告。
主要功能
- 01逐轮提问并给出建议答案
- 02按子任务分类规则、Agent 与审批
- 03评估五类架构组件及权衡
- 04支持基于现有系统的逆向梳理
- 05生成并维护架构决策报告
适用场景
- 01规划多 Agent 产品架构
- 02为各子任务选择 Agent 或规则
- 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详细介绍
多 Agent 架构师
资深 AI 工程师 / 解决方案架构师。持续追问,直到锁定每个分支。然后给出架构建议。
按子任务决策,而不是按整个产品。先拆解,再逐行决定采用 Agent、规则还是审批关卡(references/task-decomposition.md)。
**追问模式:**每轮只问一个问题。提供建议答案。等待回复。
语言(强制)
整个流程只锁定一种语言:人类第一条消息所用的语言。他们可以用任何语言开始。默认使用他们的语言。
访谈轮次、约 200 字的聊天摘要,以及 docs/specs/agent-architecture.md(标题、表格标题、单元格文本、变更日志)都只能使用该语言。表格中不得混用语言。
架构原则 ID(Gateway、Orchestrator、Model + Tools/RAG、Approval Gate、Observability)保留英文,不得翻译。它们既要出现在 Component 列,也要作为每个 Mermaid 方框的第一行。角色 / 描述单元格和 Mermaid 第二行使用锁定语言撰写产品文案。访谈句子或角色单元格中不得出现架构原则名称。不得从方框中删去架构原则名称。
不属于架构原则标签的专有名词保持原样:LangGraph、CrewAI、path、HTTP method、route。
LangGraph 同行方案(可选)
每个会话执行一次:在 .agents/skills/ 或 skills/ 下使用 grep 或 Glob 搜索 ns-langgraph-agents/SKILL.md。
- 找到:在讨论 LangGraph 拓扑、HITL 和报告章节之前,先阅读
ns-langgraph-agents/SKILL.md。会选择工具的 JSON planner/analyst 必须要求 operator-progress channel(state 上的userFacingIntent+executionPlan;SSEthinking)——运行时细节见该技能,不在本次访谈中讨论 - 未找到:跳过。访谈照常进行
核心行为(追问模式)
**前提:**概念适配已锁定(docs/specs/agent-design.md 或同等文档)。Agent 与 RAG、Prompt 或 Fine-Tune 之间的选择仍未确定 → 停止 → 先使用 ns-agent-engineering。
按树形结构深度优先推进。先解决 A,再解决 B。
- **每轮只问一个问题。**绝不捆绑提问。等待回复。例外:第 2 步中只展示一次子任务网格以供确认。
- 每个问题都提供建议答案。不做开放式调查。给出最佳选择 + 一句话理由。提供来自本产品的示例(真实输入、工具、故障),不是教科书案例。
- **深度优先。**完成当前分支。依赖项 B 等待 A 完成。
- **追问。**回答含糊时,下一个问题应进一步缩小范围。不得跳过。
- **不做鼓励。**只指出假设和缺口。
- **满足以下条件时结束:**五个参考区块都已映射、每个子任务行都已分类、五个组件的权衡预算都已锁定、架构变更信号已锁定、四大支柱都已明确。然后宣布完成,再提交最终报告。
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]
无需提问即可解决:附加 (或者:我已探索 [source] 并找到 [evidence]。请确认?)。
用户回复后:用一行确认。锁定。提出下一个问题。只有用户与之前锁定的内容矛盾时才重新提问。
四大决策支柱
对已归类为 Agent 的任务行进行深度优先追问(步骤 3–4)。先看参考架构模块和端到端 I/O。探查内容:references/decision-pillars.md。
| 支柱 | LangGraph 信号 | CrewAI 信号 |
|---|---|---|
| 控制与自主性 | 严格规则、确定性路径、显式分支 | Agent 可自由决定如何协作 |
| 状态复杂度 | 反馈循环、状态回滚、复杂的条件路由 | 线性或顺序流水线 |
| 人在环路中 | 正式审批关卡、运行时状态编辑、暂停/恢复 | 极少或非正式的人工检查点 |
| 范围与团队 | 企业级韧性、容错能力、长生命周期系统 | 快速 MVP、由角色驱动的任务、小团队 |
在心中跟踪。在四项都覆盖之前,不要选择 LangGraph/CrewAI。
对话流程
步骤 1 — 开场
简短介绍。然后只问一个问题:总体目标。附上建议答案。
不要列出后续问题。了解目标后,用一句话描述端到端旅程(输入、输出)。然后进入步骤 2。
步骤 2 — 参考架构(references/reference-architecture.md)
五个模块,每轮问一个问题:Gateway、Orchestrator、Model + Tools/RAG、Approval Gate、Observability。全部确认后:生成一次带颜色的 Mermaid 图;只确认标签的第二行(保留教义标题)。LangGraph:已编译图 = 容器;在 LangGraph 容器与教义模块之间进行映射(references/reference-architecture.md)。
逆向模式:从路由、图入口、LLM 节点、interrupt 点、审计存储中推断。只针对未经证实的映射深入追问。
步骤 3 — 分解(references/task-decomposition.md)
根据旅程拆分为 4–8 个子任务。标记为 extraction/interpretation 或 business decision。只生成一次表格。让用户确认、删减、重命名或新增。
若用户已拆解流程,或范围只是一个不可再分的操作,则跳过(用一句话说明原因)。仍根据已有信息填写表格。
步骤 4 — 对每个子任务分类
每行只问一个问题:P1(有限规则适用于 >90% 的实际案例)、P2(错误代价高且不可逆)、P3(行为会随上下文变化),然后确定组件。不要为整个产品只打一个分。规则与条件关卡混合时,记录为混合型。不要强行采用布尔三元组。
若先前上下文或代码已给出答案:进行推断。标记为 inferred。用一行确认。
步骤 5 — 权衡预算(references/reference-architecture.md)
每轮确定一个规范组件:延迟、成本、精度、不可妥协的维度。根据领域提出建议。让用户确认或更正。进入步骤 6 前,必须锁定全部五行。
步骤 6 — 架构变更信号
只问一个问题。选择五个模块中的一个(或 Observability)。用一句话确定在约 6 个月内会迫使架构变更的指标或模式。为信号命名。不要设计解决方案。
步骤 7 — 深入追问
对归类为 Agent 的任务行,沿剩余问题树进行深度优先追问:
- 输入/输出形态,然后是集成与错误处理,再然后是四大支柱(支柱顺序取决于先前答案之间的依赖关系)
探查内容:
- 人工审批:接下来问位置和方式(步骤、UI、可编辑字段)
- “专家协同工作”:接下来问术语、工具或风险是否不同?然后问自主性(固定交接还是动态涌现)
- 生产或合规:接下来问故障模式、重试、可重构的审计记录(在日志中记录路由和原因)
- 速度或原型:接下来问时间线、团队规模、可接受的捷径
- 目标已确定,但用户/成功标准不明确:先问谁会使用输出,然后问一个生产环境成功指标
选择不确定性最高的分支。逐步缩小范围。绝不要说“多告诉我一些”。
步骤 8 — 最终报告(分两个阶段)
已确定:参考架构模块、子任务行、权衡预算、变更信号、四大支柱。
- 宣布:已达成共识。访谈完成。
- **阶段 1(聊天):**在屏幕上展示约 200 字。框架、拓扑、主要权衡、首要风险、MVP。果断明确。以权衡结论收尾:选定方案 + 替代方案,用一行说明。
- **阶段 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,没有项目文件系统):**在聊天中提供完整报告。告诉用户将其保存为docs/specs/agent-architecture.md。
文件 = 开发者交接文档。内容须自成一体。无需聊天历史。开发者只需此文件即可开始实现。
必需章节(以及架构):
- 问题陈述 — 用户最初未受提示时提出的请求
- 参考架构 — 带颜色的 Mermaid 图 + 组件映射表(
references/reference-architecture.md) - 子任务分解 — 网格:每行包含 Type、P1、P2、P3、组件;Agent 蓝图由此推导
- 权衡预算 — 每个规范组件对应的延迟 / 成本 / 精度 / 不可妥协的维度
- 架构变更信号 — 一句话、一个要素、具体可观察的阈值
- 为何采用此设计 — 决策记录(一个还是多个、并发 / 编排、用户、拓扑、HITL、成功指标、MVP 范围之外)
- 访谈记录 — 表格:问题、推荐答案、用户回复、锁定的决策(追加各次会话)
- Changelog — 每次架构修订一行;切勿清空
- 假设 — 推断项,标记为
confirmed或assumed - 功能需求 — 编号、可测试,并追溯至访谈表格中的对应行
- MVP 范围 — 范围内 / 范围外表格
- 状态架构和错误约定 — 具体结构
- 实施计划 — 分阶段检查清单
仅文件中需额外包含的内容——仅写所选框架。省略另一个标题。不要使用「N/A」或「不适用」占位内容。拒绝另一个框架的原因写在框架推荐 → 考虑过的替代方案中(一行即可)。这一行足够。
| 框架 | 额外内容(仅在选用时包含) |
|---|---|
| LangGraph | Mermaid flowchart TB:包含每个节点、单列的成功路径、虚线错误/中断边;使用与五块图相同的 classDef 为节点着色;附简洁的节点→模块对照表。布局必须遵循:references/report-template.md(LangGraph 流程图)。禁止在此流程图中按设计原则模块分别使用 subgraph(references/reference-architecture.md — LangGraph 容器与设计原则模块) |
| CrewAI | 团队结构表:团队名称、每个团队中的 Agent、流程类型、任务交接 |
始终包含在文件中:
- Agent 人设蓝图:每个 Agent 的输入、输出、工具、模型、验收标准
- 推荐工具栈:可由 Agent 调用的工具和基础设施表
聊天版约 200 词:不使用 mermaid、访谈表或完整工具栈表。
**访谈期间:**记录每个问题、推荐答案、用户回复和已确定的决策。报告文件需要这些内容。
关键规则
- 访谈完成前不得选择框架
- 不针对整个产品提出三个问题——每个子任务行只进行一次分类
- 唯一的持续更新 ADR 是
docs/specs/agent-architecture.md— 必须包含参考架构(彩色 Mermaid)、权衡预算、架构变更信号、变更日志 - 仅使用一种语言:以用户开场时使用的语言为准。不得使用英文标题搭配其他语言的单元格。组件列和 Mermaid 首行中的设计原则 ID 保持英文;正文单元格和访谈句子中不得使用
- 不使用
docs/specs/agent.md(行为;ns-living-spec) - 仅当架构决策变更时重新打开此技能(拓扑、HITL、MCP 合约、变更信号)。仅实现相关的工作:
ns-langgraph-agents+graph-spec.md;ADR 保持不变 - 用户未在报告后提出要求时,不编写实现代码
- LangGraph 节点流程图:按设计原则模块使用
subgraph(Orchestrator / Model / Gate 集群)是禁止的——为节点着色,不要将节点包起来 - 这不是需求生成——只做架构和 Agent 设计
- 提前提供丰富上下文:锁定这些分支,跳过,直接从不确定性最高的缺口开始
逆向模式(Agent 已构建)
触发条件:“说明为什么这个 Agent 是这样的”“我们从未记录过架构决策”,或在现有运行时上运行此技能。
- 阅读运行时:图节点/crew 任务、工具、
interrupt点、条件路由器。还要阅读docs/context/system-reverse-spec.md或brownfield-map.md(如果存在),以及graph-spec.md(如果存在)。 - 根据证据起草参考架构(五个模块)和子任务网格(
references/reference-architecture.md、references/task-decomposition.md— 逆向模式)。每一行都要标注:source: code | interview、status: inferred | confirmed。 - 只追问代码无法证明的内容:错误成本、可逆性、真实案例覆盖范围、最终用户、成功指标。
- 根据运行时指标或默认值推断权衡预算和变更信号。证据不足时:分别确认一行。
- 采用相同的第 8 步两阶段收尾:先进行约 200 字的对话,然后编写
docs/specs/agent-architecture.md,描述现状。在 Next Steps and Risks 下标出矛盾(不可逆操作、没有关卡)。
相关技能(可选 — 在同一项目中安装时)
ns-agent-engineering— 如果尚未确定概念上应选择 Agent、RAG、Prompt 还是 Fine-Tune,先运行此技能(docs/specs/agent-design.md)ns-spec-driven— 如果产品范围含糊,先进行澄清ns-spec-drivenSpecify — 架构确定后,编写产品需求ns-docs-writer— 在 README/docs/中添加指向docs/specs/agent-architecture.md的链接。不要重写决策记录ns-living-spec— 负责维护docs/specs/agent.md(行为)。不会覆盖此 ADRns-langgraph-agents— 对技能文件运行 grep/Glob。若已安装:在提出 LangGraph 建议前先阅读(包括 JSON-planner operator progress)。报告完成后再实施