团队构建器 是做什么的?
用于按需浏览和组建代理团队的交互式菜单。支持平面目录或领域子目录的代理集合。
何时使用
- 您有多个代理角色(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 获取完整的代理列表。解析每一行:
- 插件代理 以
插件名:为前缀(例如ecc:security-reviewer)。使用:之后的部分作为代理名称,插件名称作为领域。 - 用户代理 没有前缀。从
~/.claude/agents/或./agents/读取相应的 Markdown 文件以提取名称和描述。 - 内置代理(例如
Explore、Plan)被跳过,除非用户明确要求包含它们。
对于从 Markdown 文件加载的用户代理:
- 子目录布局: 从父文件夹名称中提取领域
- 平面布局: 收集所有文件名前缀(第一个
-之前的文本)。一个前缀仅在至少出现在 2 个文件名中时才被视为领域(例如engineering-security-engineer.md和engineering-software-architect.md都以engineering开头 → 工程领域)。具有唯一前缀的文件(例如code-reviewer.md、tdd-guide.md)归入“通用” - 从第一个
# 标题提取代理名称。如果未找到标题,则从文件名派生名称(去掉.md,将连字符替换为空格,转换为标题大小写) - 从标题后的第一个段落提取一行摘要
如果在运行 claude agents 并探测文件位置后未找到任何代理,请通知用户:“未找到代理。请运行 claude agents 验证您的设置。”然后停止。
步骤 2:呈现领域菜单
可用的代理领域:
1. 工程 — 软件架构师, 安全工程师
2. 营销 — SEO 专家
3. 销售 — 发现教练, 外呼战略师
请选择领域或指定具体代理(例如 "1,3" 或 "安全 + SEO"):
- 跳过没有代理的领域(空目录)
- 显示每个领域的代理数量
步骤 3:处理选择
接受灵活输入:
- 数字:"1,3" 选择工程和销售领域的所有代理
- 名称:"安全 + SEO" 对已发现的代理进行模糊匹配
- "来自工程的所有" 选择该领域中的每个代理
如果选择了超过 5 个代理,按字母顺序列出它们并请用户缩小范围:“您选择了 N 个代理(最多 5 个)。请选择要保留的代理,或说“前 5 个”以使用按字母顺序排列的前五个。”
确认选择:
已选择:安全工程师 + SEO 专家
他们应该做什么?(描述任务):
步骤 4:并行生成代理
- 读取每个所选代理的 Markdown 文件
- 如果尚未提供,提示输入任务描述
- 使用 Agent 工具并行生成所有代理:
subagent_type: "general-purpose"prompt: "{代理文件内容}\n\n任务:{任务描述}"- 每个代理独立运行 — 无需代理间通信
- 如果某个代理失败(错误、超时或空输出),在行内记录失败信息(例如,“安全工程师:失败 — [原因]”)并继续处理成功代理的结果
步骤 5:综合结果
收集所有输出并呈现统一报告:
- 按代理分组的结果
- 综合部分突出显示:
- 各代理之间的一致意见
- 建议中的冲突或矛盾
- 推荐的后续步骤
如果只选择了 1 个代理,则跳过综合部分,直接呈现输出。
规则
- 仅动态发现。 切勿硬编码代理列表。目录中的新文件会自动出现在菜单中。
- 每个团队最多 5 个代理。 超过 5 个会产生收益递减和过多的令牌消耗。在选择时强制执行。
- 并行派遣。 所有代理同时运行 — 使用 Agent 工具的并行调用模式。
- 并行 Agent 调用,而非 TeamCreate。 此技能使用并行的 Agent 工具调用进行独立工作。TeamCreate(一个用于多代理对话的 Claude Code 工具)仅在代理需要辩论或相互回应时使用。
示例
用户:团队构建器
Claude:
可用的代理领域:
1. 工程 (2) — 软件架构师, 安全工程师
2. 营销 (1) — SEO 专家
3. 销售 (4) — 发现教练, 外呼战略师, 提案战略师, 销售工程师
4. 支持 (1) — 执行摘要
请选择领域或指定具体代理:
用户:安全 + SEO
Claude:
已选择:安全工程师 + SEO 专家
他们应该做什么?
用户:检查我即将上线的 Next.js 电商网站
[两个代理并行生成,各自将其专业知识应用于代码库]
Claude:
## 安全工程师发现
- [发现...]
## SEO 专家发现
- [发现...]
## 综合
两个代理都认为:[...]
冲突:安全建议使用 CSP 阻止内联样式,SEO 需要内联 Schema 标记。解决方案:[...]
后续步骤:[...]