mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-09 02:43:29 +08:00
166 lines
6.3 KiB
Markdown
166 lines
6.3 KiB
Markdown
---
|
||
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需要内联模式标记。解决方案:[...]
|
||
后续步骤:[...]
|
||
```
|