--- name: team-builder description: 用于组合和派遣并行团队的交互式代理选择器 origin: community --- # 团队构建器 用于按需浏览和组合智能体团队的交互式菜单。适用于扁平化或按领域子目录组织的智能体集合。 ## 使用场景 * 你拥有多个智能体角色(markdown 文件),并希望为某项任务选择使用哪些智能体 * 你希望从不同领域(例如,安全 + SEO + 架构)临时组建一个团队 * 你希望在决定前先浏览有哪些可用的智能体 ## 前提条件 智能体文件必须是包含角色提示(身份、规则、工作流程、交付物)的 markdown 文件。第一个 `# Heading` 用作智能体名称,第一段用作描述。 支持扁平化和子目录两种布局: **子目录布局** — 领域从文件夹名称推断: ``` 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 ``` ## 配置 智能体目录按顺序探测,结果会被合并: 1. `./agents/**/*.md` + `./agents/*.md` — 项目本地智能体(两种深度) 2. `~/.claude/agents/**/*.md` + `~/.claude/agents/*.md` — 全局智能体(两种深度) 所有位置的结果会合并,并按智能体名称去重。同名情况下,项目本地智能体优先于全局智能体。如果用户指定了自定义路径,则使用该路径代替。 ## 工作原理 ### 步骤 1:发现可用智能体 使用上述探测顺序在智能体目录中进行全局搜索。排除 README 文件。对于找到的每个文件: * **子目录布局:** 从父文件夹名称提取领域 * **扁平化布局:** 收集所有文件名前缀(第一个 `-` 之前的文本)。一个前缀只有在出现在 2 个或更多文件名中时才符合领域资格(例如,`engineering-security-engineer.md` 和 `engineering-software-architect.md` 都以 `engineering` 开头 → Engineering 领域)。具有唯一前缀的文件(例如 `code-reviewer.md`, `tdd-guide.md`)归入 "General" 类别 * 从第一个 `# Heading` 提取智能体名称。如果未找到标题,则从文件名派生名称(去除 `.md`,用空格替换连字符,并转换为标题大小写) * 从标题后的第一段提取一行摘要 如果在探测完所有位置后未找到任何智能体文件,则通知用户:"未找到智能体文件。已检查:\[探测的路径列表]。期望:这些目录中的 markdown 文件。" 然后停止。 ### 步骤 2:呈现领域菜单 ``` 可用的代理领域: 1. 工程领域 — 软件架构师、安全工程师 2. 市场营销 — SEO专家 3. 销售领域 — 发现教练、外拓策略师 请选择领域或指定具体代理(例如:"1,3" 或 "security + seo"): ``` * 跳过智能体数量为零的领域(空目录) * 显示每个领域的智能体数量 ### 步骤 3:处理选择 接受灵活的输入: * 数字:"1,3" 选择 Engineering 和 Sales 中的所有智能体 * 名称:"security + seo" 对发现的智能体进行模糊匹配 * "all from engineering" 选择该领域中的每个智能体 如果选择的智能体超过 5 个,则按字母顺序列出它们,并要求用户缩小范围:"您选择了 N 个智能体(最多 5 个)。请选择保留哪些,或说 'first 5' 以使用按字母顺序排列的前五个。" 确认选择: ``` 选定:安全工程师 + SEO专家 他们应该专注于什么任务?(描述任务) ``` ### 步骤 4:并行启动智能体 1. 读取每个所选智能体的 markdown 文件 2. 如果尚未提供,则提示输入任务描述 3. 使用 Agent 工具并行启动所有智能体: * `subagent_type: "general-purpose"` * `prompt: "{agent file content}\n\nTask: {task description}"` * 每个智能体独立运行 — 不需要智能体间通信 4. 如果某个智能体失败(错误、超时或输出为空),则在内联中注明失败(例如,"Security Engineer: failed — \[原因]")并继续处理成功智能体的结果 ### 步骤 5:综合结果 收集所有输出并呈现统一的报告: * 按智能体分组的结果 * 综合部分重点突出: * 各智能体间的共识 * 建议之间的冲突或矛盾 * 建议的后续步骤 如果只选择了一个智能体,则跳过综合部分,直接呈现输出。 ## 规则 * **仅限动态发现。** 切勿硬编码智能体列表。目录中的新文件会自动出现在菜单中。 * **每个团队最多 5 个智能体。** 超过 5 个会产生收益递减和过多的令牌使用。在选择时强制执行。 * **并行分发。** 所有智能体同时运行 — 使用 Agent 工具的并行调用模式。 * **并行 Agent 调用,而非 TeamCreate。** 此技能使用并行 Agent 工具调用来处理独立工作。只有当智能体需要辩论或相互回应时,才需要 TeamCreate(一个用于多智能体对话的 Claude Code 工具)。 ## 示例 ``` User: team builder Claude: 可用代理领域: 1. 工程 (2) — 软件架构师,安全工程师 2. 市场营销 (1) — SEO专家 3. 销售 (4) — 探索教练,外拓策略师,提案策略师,销售工程师 4. 支持 (1) — 执行摘要 选择领域或指定具体代理: User: security + seo Claude: 已选择:安全工程师 + SEO专家 他们应该处理什么任务? User: 在发布前审查我的 Next.js 电商网站 [两个代理并行启动,各自将他们的专长应用于代码库] Claude: ## 安全工程师发现 - [发现内容...] ## SEO专家发现 - [发现内容...] ## 综合分析 双方代理均同意:[...] 冲突点:安全建议的CSP阻止内联样式,SEO需要内联模式标记。解决方案:[...] 后续步骤:[...] ```