用途
Team Builder 是一个交互式菜单,用于按需浏览和组合智能体团队。它适用于扁平或按领域子目录组织的智能体集合。
适用场景包括:
- 你拥有多个智能体角色(markdown 文件),想挑选其中一些用于某项任务
- 你想从不同领域临时组建一个团队(例如 Security + SEO + Architecture)
- 你想在决定之前先浏览有哪些可用智能体
前提条件
智能体文件必须是包含角色提示(身份、规则、工作流、交付物)的 markdown 文件。第一个 # 标题用作智能体名称,第一段用作描述。
支持两种布局:
子目录布局 —— 领域从文件夹名推断:
agents/
├── engineering/
│ ├── security-engineer.md
│ └── software-architect.md
├── marketing/
│ └── seo-specialist.md
└── sales/
└── discovery-coach.md
扁平布局 —— 领域从共享的文件名前缀推断。当 2 个及以上文件共享同一前缀时,该前缀算作一个领域。前缀唯一的文件归入 "General"。注意:算法在第一个 - 处分割,因此多词领域(如 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)归入 "General" - 从第一个
#标题提取智能体名称。如果没有标题,则从文件名推导(去掉.md,连字符替换为空格,首字母大写) - 从标题后的第一段提取一行摘要
如果运行 claude agents 并探测文件位置后仍未找到任何智能体,则告知用户:"No agents found. Run claude agents to verify your setup." 然后停止。
第 2 步:展示领域菜单
Available agent domains:
1. Engineering — Software Architect, Security Engineer
2. Marketing — SEO Specialist
3. Sales — Discovery Coach, Outbound Strategist
Pick domains or name specific agents (e.g., "1,3" or "security + seo"):
- 跳过智能体数量为零的领域(空目录)
- 显示每个领域的智能体数量
第 3 步:处理选择
接受灵活输入:
- 数字:"1,3" 选择 Engineering 和 Sales 中的所有智能体
- 名称:"security + seo" 对已发现的智能体进行模糊匹配
- "all from engineering" 选择该领域中的所有智能体
如果选择的智能体超过 5 个,按字母顺序列出并要求用户缩小范围:"You selected N agents (max 5). Pick which to keep, or say 'first 5' to use the first five alphabetically."
确认选择:
Selected: Security Engineer + SEO Specialist
What should they work on? (describe the task):
第 4 步:并行启动智能体
- 读取每个所选智能体的 markdown 文件
- 如果尚未提供任务描述,则提示输入
- 使用 Agent 工具并行启动所有智能体:
subagent_type: "general-purpose"prompt: "{agent file content}\n\nTask: {task description}"
- 每个智能体独立运行 —— 无需智能体间通信
- 如果某个智能体失败(错误、超时或输出为空),内联标注失败(如 "Security Engineer: failed — [reason]"),并继续使用成功智能体的结果
第 5 步:综合结果
收集所有输出并呈现统一报告:
- 按智能体分组的结果
- 综合部分,重点包括:
- 各智能体之间的一致意见
- 建议之间的冲突或张力
- 推荐的后续步骤
如果只选择了 1 个智能体,则跳过综合,直接呈现输出。
规则
- 仅动态发现。 绝不硬编码智能体列表。目录中的新文件会自动出现在菜单中。
- 每队最多 5 个智能体。 超过 5 个会产生递减回报和过多 token 消耗。在选择时强制执行。
- 并行调度。 所有智能体同时运行 —— 使用 Agent 工具的并行调用模式。
- 使用并行 Agent 调用,而非 TeamCreate。 此技能使用并行 Agent 工具调用处理独立工作。仅当智能体之间需要辩论或相互回应时,才需要 TeamCreate(Claude Code 用于多智能体对话的工具)。
示例
用户:team builder
Claude:
Available agent domains:
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
Pick domains or name specific agents:
用户:security + seo
Claude:
Selected: Security Engineer + SEO Specialist
What should they work on?
用户:Review my Next.js e-commerce site before launch
[两个智能体并行启动,各自将专长应用于代码库]
Claude:
## Security Engineer Findings
- [findings...]
## SEO Specialist Findings
- [findings...]
## Synthesis
Both agents agree on: [...]
Tension: Security recommends CSP that blocks inline styles, SEO needs inline schema markup. Resolution: [...]
Next steps: [...]