名称: agent-orchestrator
描述: |
用于通过自主子智能体编排复杂任务的元智能体技能。将宏观任务分解为子任务,生成带有动态创建 SKILL.md 文件的专用子智能体,协调基于文件的通信,整合结果,并在完成后解散智能体。
通过将复杂任务分解为子任务、生成自主子智能体并整合其工作成果,来编排复杂任务。
分析宏观任务,并将其分解为独立的、可并行执行的子任务:
1. 确定最终目标和成功标准
2. 列出所有需要的主要组件/交付物
3. 确定组件间的依赖关系
4. 将独立工作分组为并行子任务
5. 为顺序性工作创建依赖关系图
分解原则:
- 每个子任务应能独立完成
- 最小化智能体间的依赖
- 优先选择宽泛、自主的任务,而非狭窄、相互依赖的任务
- 为每个子任务包含清晰的完成标准
为每个子任务创建一个子智能体工作空间:
python3 scripts/create_agent.py <agent-name> --workspace <path>
这将创建:
<workspace>/<agent-name>/
├── SKILL.md # 为该智能体生成的技能文件
├── inbox/ # 接收输入文件和指令
├── outbox/ # 交付完成的工作成果
├── workspace/ # 智能体的工作区
└── status.json # 智能体状态跟踪文件
动态生成 SKILL.md,包含:
- 智能体的具体角色和目标
- 所需的工具和能力
- 输入/输出规范
- 成功标准
- 通信协议
预置模板请参见 references/sub-agent-templates.md。
通过以下步骤初始化每个智能体:
inbox/instructions.mdinbox/status.json 设置为 {"state": "pending", "started": null}# 使用生成的技能生成智能体
Task(
description=f"{agent_name}: {brief_description}",
prompt=f"""
请阅读位于 {agent_path}/SKILL.md 的技能文件并遵循其指示。
您的工作空间是 {agent_path}/workspace/
从 {agent_path}/inbox/instructions.md 读取您的任务
将所有输出写入 {agent_path}/outbox/
完成后更新 {agent_path}/status.json。
""",
subagent_type="general-purpose"
)
对于完全自主的智能体,只需最小程度的监控:
# 检查智能体完成状态
def check_agent_status(agent_path):
status = read_json(f"{agent_path}/status.json")
return status.get("state") == "completed"
定期检查每个智能体的 status.json。智能体在完成时会更新此文件。
当所有智能体完成后:
outbox/ 收集输出# 整合模式示例
for agent in agents:
outputs = glob(f"{agent.path}/outbox/*")
validate_outputs(outputs, agent.success_criteria)
consolidated_results.extend(outputs)
整合完成后:
python3 scripts/dissolve_agents.py --workspace <path> --archive
详细规范请参见 references/communication-protocol.md。
快速参考:
- inbox/ - 智能体只读,由编排器写入
- outbox/ - 智能体只写,由编排器读取
- status.json - 智能体更新状态:pending → running → completed | failed
宏观任务:"创建一份全面的市场分析报告"
分解:
├── 智能体:data-collector
│ └── 收集市场数据、竞争对手信息、趋势
├── 智能体:analyst
│ └── 分析收集的数据,识别模式
├── 智能体:writer
│ └── 根据分析起草报告章节
└── 智能体:reviewer
└── 审查、编辑并最终确定报告
依赖关系:data-collector → analyst → writer → reviewer
常见智能体类型的预置模板位于 references/sub-agent-templates.md: