团队构建器 是做什么的?
交互式菜单,用于按需浏览和组建智能体团队。支持扁平目录或领域子目录的智能体集合。
何时使用
- 当你拥有多个智能体角色(markdown 文件)并希望为某个任务选择使用哪些智能体时
- 当你希望从不同领域(例如:安全 + SEO + 架构)组成一个临时团队时
- 当你希望在决定前先浏览可用的智能体时
前提条件
智能体文件必须是包含角色提示(身份、规则、工作流程、交付物)的 markdown 文件。第一个 # 标题 用作智能体名称,第一个段落用作描述。
支持扁平目录和子目录布局:
子目录布局 — 领域从文件夹名称推断:
agents/
├── engineering/
│ ├── security-engineer.md
│ └── software-architect.md
├── marketing/
│ └── seo-specialist.md
└── sales/
└── discovery-coach.md
扁平布局 — 领域从共享文件名前缀推断。当前缀在2个或更多文件中共享时,该前缀被视为一个领域。具有唯一前缀的文件归入“通用”。注意:算法在第一个 - 处分割,因此多词领域(例如 product-management)应改用子目录布局:
agents/
├── engineering-security-engineer.md
├── engineering-software-architect.md
├── marketing-seo-specialist.md
├── marketing-content-strategist.md
├── sales-discovery-coach.md
└── sales-outbound-strategist.md
配置
通过两种方法发现智能体,按智能体名称进行合并和去重:
claude agents命令(主要)— 运行claude agents获取 CLI 已知的所有智能体,包括用户智能体、插件智能体(例如ecc:architect)和内置智能体。这无需任何路径配置即可自动涵盖 ECC 市场安装。- 文件 glob(备用,用于读取智能体内容)— 智能体 markdown 文件从以下路径读取:
./agents/**/*.md+./agents/*.md— 项目本地智能体~/.claude/agents/**/*.md+~/.claude/agents/*.md— 全局用户智能体
当名称冲突时,较早的来源优先:用户智能体 > 插件智能体 > 内置智能体。如果用户指定了自定义路径,则可使用该路径替代。
工作原理
步骤 1:发现可用智能体
运行 claude agents 获取完整的智能体列表。解析每一行:
- 插件智能体前缀为
plugin-name:(例如ecc:security-reviewer)。使用:之后的部分作为智能体名称,插件名称作为领域。 - 用户智能体没有前缀。从
~/.claude/agents/或./agents/读取对应的 markdown 文件以提取名称和描述。 - 内置智能体(例如
Explore、Plan)会被跳过,除非用户明确要求包含它们。
对于从 markdown 文件加载的用户智能体:
- 子目录布局: 从父文件夹名称提取领域
- 扁平布局: 收集所有文件名前缀(第一个
-之前的文本)。只有当某个前缀出现在2个或更多文件名中时,它才被视为一个领域(例如engineering-security-engineer.md和engineering-software-architect.md都以engineering开头 → Engineering 领域)。具有唯一前缀的文件(例如code-reviewer.md、tdd-guide.md)归入“通用” - 从第一个
# 标题提取智能体名称。如果未找到标题,则从文件名派生名称(去掉.md,将连字符替换为空格,首字母大写) - 从标题后的第一个段落提取一行摘要
如果在运行 claude agents 并探测文件位置后未找到任何智能体,请告知用户:“未找到智能体。请运行 claude agents 验证您的设置。”然后停止。
步骤 2:呈现领域菜单
可用智能体领域:
1. Engineering — Software Architect, Security Engineer
2. Marketing — SEO Specialist
3. Sales — Discovery Coach, Outbound Strategist
选择领域或指定具体智能体(例如 "1,3" 或 "security + seo"):
- 跳过零个智能体的领域(空目录)
- 显示每个领域的智能体数量
步骤 3:处理选择
接受灵活的输入:
- 数字:"1,3" 选择 Engineering 和 Sales 中的所有智能体
- 名称:"security + seo" 在已发现的智能体中进行模糊匹配
- "all from engineering" 选择该领域中的每个智能体
如果选择了超过5个智能体,则按字母顺序列出它们并要求用户缩小范围:“您选择了N个智能体(最多5个)。请选择保留哪些,或说“first 5”以按字母顺序使用前五个。”
确认选择:
已选择:Security Engineer + SEO Specialist
他们应该处理什么任务?(描述任务):
步骤 4:并行启动智能体
- 读取每个选定智能体的 markdown 文件
- 如果尚未提供任务描述,则提示输入
- 使用 Agent 工具并行启动所有智能体:
subagent_type: "general-purpose"prompt: "{智能体文件内容}\n\n任务:{任务描述}"- 每个智能体独立运行 — 无需智能体间通信
- 如果某个智能体失败(错误、超时或空输出),则内联记录失败信息(例如 “Security Engineer:失败 — [原因]”),并继续处理成功智能体的结果
步骤 5:综合结果
收集所有输出并呈现统一报告:
- 按智能体分组的结果
- 综合部分,突出显示:
- 各智能体之间的一致意见
- 各推荐之间的冲突或矛盾
- 推荐的后续步骤
如果只选择了1个智能体,则跳过综合部分,直接呈现输出。
规则
- 仅动态发现。 切勿硬编码智能体列表。目录中的新文件会自动出现在菜单中。
- 每个团队最多5个智能体。 超过5个会产生收益递减和过多的 token 消耗。在选择时强制执行。
- 并行派遣。 所有智能体同时运行 — 使用 Agent 工具的并行调用模式。
- 并行 Agent 调用,而非 TeamCreate。 此技能使用并行 Agent 工具调用来完成独立工作。TeamCreate(Claude Code 中用于多智能体对话的工具)仅在智能体必须辩论或相互响应时才需要。
示例
用户:team builder
Claude:
可用智能体领域:
1. Engineering (2) — Software Architect, Security Engineer
2. Marketing (1) — SEO Specialist
3. Sales (4) — Discovery Coach, Outbound Strategist, Proposal Strategist, Sales Engineer
4. Support (1) — Executive Summary
选择领域或指定具体智能体:
用户:security + seo
Claude:
已选择:Security Engineer + SEO Specialist
他们应该处理什么任务?
用户:在启动前审查我的 Next.js 电商网站
[两个智能体并行启动,各自将专业知识应用于代码库]
Claude:
## Security Engineer 发现
- [发现...]
## SEO Specialist 发现
- [发现...]
## 综合
两个智能体一致认为:[...]
冲突:安全建议 CSP 阻止内联样式,SEO 需要内联 schema 标记。解决方案:[...]
后续步骤:[...]