🤖 多代理编排
多代理编排是 YingClaw 的核心特性之一:将复杂任务自动分拆为子任务,由多个子代理并行协作执行,大幅提升效率和吞吐量。
核心理念
单一复杂任务
↓
智能分拆(assess_workload)
↓
┌────┼────┬────┐
子代理A 子代理B 子代理C
(并行执行,独立上下文)
└────┼────┴────┘
↓
结果聚合
强制工作流四阶段
YingClaw 的每个复杂任务都会经历四个阶段:
| 阶段 | 工具 | 产出 |
|---|---|---|
| 1️⃣ 需求澄清 | 对话交互 | 明确的任务描述和约束 |
| 2️⃣ 项目评估 | assess_workload | 文件数、大小、复杂度分析 |
| 3️⃣ 规划确认 | todo | 分步执行计划,每步独立 ID |
| 4️⃣ 并行执行 | delegate | 多个子代理并行执行子任务 |
子代理类型
| 类型 | 角色 | 适用场景 |
|---|---|---|
assistant | 通用助手 | 代码审查、文档生成、数据分析 |
sales_manager | CRM 管理 | 客户关系管理、销售流程 |
sales_lead_only | 线索专员 | 潜在客户发现与跟进 |
核心工具
delegate — 委派执行
将子任务委派给一个或多个子代理并行执行。
// 并行委派多个子代理
delegate({
prompt: "审查 src/auth/ 目录下的认证模块代码",
agents: [
{ role: "代码审查员", task: "检查安全漏洞" },
{ role: "性能分析师", task: "分析性能瓶颈" },
{ role: "文档检查员", task: "验证文档完整性" }
]
})
todo — 任务跟踪
自动管理任务状态流转。
pending → in_progress → completed
→ cancelled
// 创建任务计划
todo({
todos: [
{ id: "step-1", content: "扫描项目结构", status: "pending" },
{ id: "step-2", content: "分析依赖关系", status: "pending" },
{ id: "step-3", content: "生成优化建议", status: "pending" }
]
})
完整代码示例
以下示例展示 delegate + todo 配合使用的完整流程:
// 场景:对项目进行全面代码审查
// 阶段 2:评估项目
assess_workload({ path: "src/" })
// → { files: 45, total_size_kb: 320, complexity: "medium" }
// 阶段 3:创建计划
todo({
merge: false,
todos: [
{ id: "s1", content: "安全审查:认证与授权模块", status: "pending" },
{ id: "s2", content: "性能分析:数据库查询与缓存", status: "pending" },
{ id: "s3", content: "代码风格:命名规范与结构", status: "pending" },
{ id: "s4", content: "测试覆盖:单元测试完整性", status: "pending" }
]
})
// 阶段 4:并行执行
delegate({
prompt: "对 src/ 目录进行全面代码审查",
agents: [
{ role: "安全专家", task: "审查认证、授权、输入验证" },
{ role: "性能工程师", task: "分析数据库查询、N+1问题、缓存策略" },
{ role: "代码规范审查员", task: "检查命名、结构、注释规范" },
{ role: "测试工程师", task: "检查测试覆盖率、边界条件" }
]
})
// 执行过程中自动更新 todo 状态:
// s1: pending → in_progress → completed
// s2: pending → in_progress → completed
// s3: pending → in_progress → completed
// s4: pending → in_progress → completed
关键参数
| 参数 | 类型 | 说明 |
|---|---|---|
prompt | string | 主任务描述 |
agents | array | 子代理列表,每项含 role 和 task |
role | string | 自定义子代理角色 |
max_iterations | number | 子代理最大工具调用迭代次数 |
max_depth | number | 代理递归委派最大深度 |
最佳实践
| 实践 | 说明 |
|---|---|
| 🎯 子任务小而聚焦 | 每个子代理只负责一个明确的小任务 |
| 🔀 并行化独立步骤 | 无依赖的子任务同时执行,最大化效率 |
| 📊 及时更新状态 | 子任务完成后立即标记,保持全局视图清晰 |
| 🛑 设置迭代上限 | 通过 max_iterations 防止子代理无限循环 |
| 💰 控制成本 | 并行代理数建议不超过 5 个,平衡效率与 API 成本 |
下一步
多代理编排让复杂任务化整为零。深入了解 🔄 工作流引擎 的任务生命周期和错误处理机制。