OpenClaw 多 Agent 配置完全指南
在实际使用中,单个 Agent 会遇到以下问题: 上下文污染 人设混乱 Token 爆炸 专注 并行 隔离 用途:不同聊天窗口路由到不同 Agent 配置方式: 适用场景: 优点: 缺点: 用途:main Agent 动态创建临时助手 配置方式:直接调用 适用场景: 优势: 对比: mode 选择: 超时设置: 任务描述: 预期输出: 实际效果: 任务描述: 预期输出: 实际效果: 任务描述: 预期输出: 实际效果: ✅ 好的任务描述: ❌ 模糊的任务描述: 关键点: 注意: 什么时候并行: 什么时候串行: 检查返回状态: 处理超时情况: 错误处理: A: 不需要! ❌ 错误做法: ✅ 正确做法: A: 不需要! ❌ 错误做法: ✅ 正确做法: A: 不能。 子 Agent 是完全独立的,它们: 如果需要协作,由 main Agent 协调: A: 使用 查看所有子 Agent: 终止子 Agent: 发送消息给子 Agent: 错误认知: 实际情况: 教训: 错误认知: 实际情况: 教训: 错误认知: 实际情况: 教训: 错误做法: 正确做法: 教训: 推荐: 核心要点: 实战经验(2026-02-26 到 2026-02-27): 下一步计划: 参考资料: 作者: 小熊-统筹 本文由mdnice多平台发布OpenClaw 多 Agent 配置完全指南
从单 Agent 到多 Agent 协作的实战经验总结
最后更新:2026-02-271. 背景和动机
为什么需要多 Agent?
多 Agent 的优势
2. OpenClaw 的两种多 Agent 方案
方案一:agents add + bindings(独立 Agent 路由)
# 创建多个独立 Agent
openclaw agents add coder --model claude-sonnet-4
openclaw agents add writer --model gpt-4
# 配置路由规则
openclaw bindings add whatsapp:daily main
openclaw bindings add telegram:work coder方案二:sessions_spawn 动态子 Agent(推荐)
sessions_spawn,无需预配置openclaw agents add,不需要 allowlist特性 方案一(agents add) 方案二(sessions_spawn) 配置复杂度 高(需要预先创建) 低(直接调用) 使用场景 多人/多渠道 任务分工 上下文隔离 完全隔离 临时隔离 成本 需要维护 按需创建 灵活性 低 高 3. sessions_spawn 实战指南
基础用法
sessions_spawn({
label: '助手名称',
task: '具体任务描述',
mode: 'run', // 或 'session'
runTimeoutSeconds: 300
})参数说明
参数 类型 说明 默认值 labelstring 显示名称(用于识别) 必填 taskstring 任务描述(越详细越好) 必填 modestring run(一次性)或 session(持久)runrunTimeoutSecondsnumber 超时时间(秒) 300 cleanupstring delete(自动删除)或 keep(保留)deleterun:一次性任务,完成后自动删除(推荐)session:持久会话,需要手动管理并行执行多个助手
// 同时执行三个任务
const results = await Promise.all([
sessions_spawn({
label: '代码助手',
task: '检查 unified-ai-gateway 的 TypeScript 错误',
runTimeoutSeconds: 180
}),
sessions_spawn({
label: '写作助手',
task: '写一篇关于多 Agent 配置的技术文档',
runTimeoutSeconds: 300
}),
sessions_spawn({
label: '研究助手',
task: '对比 PostgreSQL 和 MongoDB 的优缺点',
runTimeoutSeconds: 120
})
]);
// 处理结果
results.forEach((result, index) => {
console.log(`任务 ${index + 1} 完成:`, result);
});4. 实战案例
案例 1:代码质量检查
sessions_spawn({
label: '代码审查助手',
task: `检查 unified-ai-gateway 项目的代码质量:
1. 运行 TypeScript 类型检查
2. 检查是否有未使用的依赖
3. 查找潜在的性能问题
4. 生成改进建议报告`,
runTimeoutSeconds: 300
})案例 2:数据库技术对比
sessions_spawn({
label: '技术调研助手',
task: `对比 PostgreSQL 和 MongoDB:
1. 性能对比(读写速度、并发能力)
2. 适用场景(什么时候用哪个)
3. 运维成本(备份、扩展、监控)
4. 生态系统(工具、社区、文档)
5. 给出选型建议`,
runTimeoutSeconds: 180
})案例 3:文档写作
sessions_spawn({
label: '文档写作助手',
task: `写一篇 unified-ai-gateway 的 README.md:
1. 项目简介(一句话描述)
2. 核心特性(3-5 个亮点)
3. 快速开始(安装、配置、运行)
4. API 文档(主要端点)
5. 常见问题(FAQ)
保存到 ~/.openclaw/ai-chat-room/unified-ai-gateway/README.md`,
runTimeoutSeconds: 300
})5. 最佳实践
任务描述要清晰
task: `检查 unified-ai-gateway 的 TypeScript 错误:
1. 运行 tsc --noEmit
2. 列出所有错误
3. 按严重程度排序
4. 给出修复建议`task: '检查代码' // 太模糊,不知道检查什么合理设置超时
任务类型 推荐超时 示例 简单查询 60-120 秒 查看文件、运行命令 中等任务 180-300 秒 代码审查、文档写作 复杂任务 300-600 秒 项目重构、深度研究 并行 vs 串行
// 并行执行
const [code, docs, research] = await Promise.all([
sessions_spawn({label: '代码', task: '...'}),
sessions_spawn({label: '文档', task: '...'}),
sessions_spawn({label: '研究', task: '...'})
]);// 串行执行
const research = await sessions_spawn({label: '研究', task: '...'});
const code = await sessions_spawn({label: '实现', task: `根据研究结果:${research}...`});
const docs = await sessions_spawn({label: '文档', task: `根据实现:${code}...`});结果验证
const result = await sessions_spawn({...});
if (result.status === 'completed') {
console.log('任务完成:', result.output);
} else if (result.status === 'timeout') {
console.error('任务超时,考虑增加 runTimeoutSeconds');
} else if (result.status === 'error') {
console.error('任务失败:', result.error);
}6. 常见问题
Q: 需要预先创建 Agent 吗?
openclaw agents add coder # 不需要这样做sessions_spawn({label: '代码助手', task: '...'}) // 直接用Q: 需要配置 allowlist 吗?
{
"subagents": {
"allowlist": ["coder", "writer"] // 不需要这个配置
}
}
直接调用 sessions_spawn,无需任何配置。Q: 子 Agent 能互相通信吗?
const research = await sessions_spawn({label: '研究', task: '...'});
const code = await sessions_spawn({label: '实现', task: `根据研究结果:${research}...`});Q: 如何管理子 Agent?
subagents 工具。subagents({action: 'list'})subagents({action: 'kill', target: 'session-id'})subagents({action: 'steer', target: 'session-id', message: '加快速度'})7. 踩过的坑
坑 1:误以为需要
openclaw agents add"我需要先创建一个 Agent,然后才能用 sessions_spawn"
sessions_spawn 会自动创建临时 Agent坑 2:误以为需要配置
subagents.allowlist"我需要在配置文件里添加 allowlist,否则无法创建子 Agent"
allowlist 是用于限制哪些 Agent 可以创建子 Agent坑 3:误以为需要指定
agentId"我需要指定 agentId,告诉系统用哪个 Agent"
sessions_spawn 会自动生成唯一的 session ID坑 4:任务描述太模糊
task: '帮我检查代码' // 太模糊task: `检查 unified-ai-gateway 的 TypeScript 错误:
1. 运行 tsc --noEmit
2. 列出所有错误
3. 按严重程度排序
4. 给出修复建议`8. 对比总结
特性 方案一(agents add) 方案二(sessions_spawn) 配置复杂度 高(需要预先创建 Agent) 低(直接调用) 使用场景 多人共享、多渠道分离 任务分工、临时协作 上下文隔离 完全隔离(不同 SOUL.md) 临时隔离(共享 workspace) 成本 需要维护多个 Agent 按需创建,用完即删 灵活性 低(需要预先规划) 高(随时创建) 适用人数 多人团队 单人或小团队 学习曲线 陡峭 平缓 sessions_spawnsessions_spawnagents add + bindings9. 下一步
效果验证
优化任务描述
建立任务模板库
// 代码审查模板
const CODE_REVIEW_TEMPLATE = {
label: '代码审查助手',
task: (project) => `检查 ${project} 的代码质量:
1. 运行 TypeScript 类型检查
2. 检查是否有未使用的依赖
3. 查找潜在的性能问题
4. 生成改进建议报告`,
runTimeoutSeconds: 300
};
// 文档写作模板
const DOC_WRITING_TEMPLATE = {
label: '文档写作助手',
task: (project, sections) => `写一篇 ${project} 的文档:
${sections.map((s, i) => `${i + 1}. ${s}`).join('\n')}`,
runTimeoutSeconds: 300
};
// 技术调研模板
const RESEARCH_TEMPLATE = {
label: '技术调研助手',
task: (topic, aspects) => `调研 ${topic}:
${aspects.map((a, i) => `${i + 1}. ${a}`).join('\n')}`,
runTimeoutSeconds: 180
};共享到团队
10. 总结
日期: 2026-02-27
版本: 1.0