复杂任务编排与分治。当任务涉及批量操作(研究20+公司、处理大量数据)、多步骤工程(5+步骤有依赖关系)、sub-agent可能翻车的场景时激活。提供预记录防崩溃丢失、分治策略、超时管控、上下文膨胀防护、失败恢复方案。也适用于"任务太大不知道怎么拆"、"sub-agent老超时"、"批量操作到一半挂了"、"崩溃后...
解决一个核心问题: 大任务怎么拆、怎么跑、翻车了怎么救。
收到任务后先过三个判断:
条件是 →否 →步骤 ≥ 5 或有依赖链继续可能不需要本技能涉及批量操作(≥10 项同类任务)继续可能不需要本技能预估用时 > 3 分钟 或需要大量搜索/API 调用继续可能不需要本技能
满足任一条 → 走编排流程。全部不满足 → 直接干。
在做任何事之前,先把需求和计划写到 daily notes / 工作日志里。
为什么:崩溃/重启后上下文全丢。如果没有预记录,用户必须反复重述需求。实战中出现过用户重复 7-8 次需求的情况。
记录内容(写到 memory/YYYY-MM-DD.md 或项目工作日志):
执行中每完成关键步骤更新进度。 先写日志,再执行操作(WAL 原则)。
任务完成后收尾:
重启后恢复:读日志 → 找到未完成任务 → 从断点继续,不问用户"我们之前在做什么"。
回答四个问题,写成内部工作笔记(不需要给用户看):
text
1. 目标:最终交付什么?(一句话)
2. 规模:多少个子任务 / 多少数据量?
3. 依赖:哪些步骤必须串行?哪些可以并行?
4. 风险:最可能在哪一步翻车?
根据任务画像选策略(只选一个):
适用:步骤有强依赖、需要上下文连续、搜索密集型任务
做法:
防膨胀措施:
适用:子任务之间无依赖、每个子任务自包含、不需要大量搜索
做法:
Sub-agent 任务 prompt 模板:
text
你的任务:[具体描述]
输出要求:
- 结果写入文件 [路径](JSON/Markdown 格式)
- 不要用 message send,把结果写文件即可
- 如果某个子项失败,记录失败原因继续处理下一个
数据:
[直接给出需要处理的数据,不要说"参考主 session"]
超时指南:
子任务类型建议超时说明纯计算/文件处理2-3 分钟不涉及外部调用少量搜索(≤3 次)5 分钟搜索 + 处理中等搜索(4-8 次)8 分钟可能遇到慢响应重搜索(>8 次)⚠️ 不建议用 sub-agent改用策略 A
关键防护:
适用:大批量操作(50+ 项)、需要中途验证、怕断点丢进度
做法:
已完成 X/Y,成功 A 个失败 B 个)检查点文件格式:
json
{
"task": "任务描述",
"total": 100,
"completed": 30,
"succeeded": 28,
"failed": 2,
"failed_items": [
{"id": "xx", "error": "原因"}
],
"last_checkpoint": "2026-04-03T12:00:00Z",
"output_file": "/path/to/results.json"
}
适用:任务有多个阶段,不同阶段适合不同策略
做法:
示例:
text
研究 200 家公司 →
阶段 1(策略 A):搜索收集所有公司基本信息 → 写入 raw-data.json
阶段 2(策略 B):3 个 sub-agent 并行处理纯数据整理(不搜索)
阶段 3(策略 A):主 session 汇总 + 补充搜索验证
阶段 4(策略 C):分批写入飞书文档/Excel
翻车场景症状应对上下文膨胀回复变慢、开始遗忘前面内容中间结果写文件,回复只放摘要Sub-agent 超时3+ 分钟无响应kill → 读文件看有没有部分结果 → 主 session 接手Sub-agent 残余进程收到 announce 消息乱入忽略,不要回应残余消息批量 API 限流连续 429/失败降速:每 2-3 个操作暂停 1 秒中途断连/compaction上下文被压缩读检查点文件恢复进度,从断点继续飞书文档写入限制单次表格行数有限大表用 Excel 导出,不硬塞飞书表格**并发写入冲突(⚠️ 高频)**order conflict / 数据丢失 / 后写覆盖先写见下方「并发写入防护」**大文档原地重构(⚠️ 必崩)**ordering conflict / 文档变半成品 / 主进程崩溃新建文档写入,不原地改。见「并发写入防护」
本质问题:任何"读→改→写"模式在并发场景下都会翻车。这不是某个工具的 bug,而是并发控制的基本原理——跟数据库事务冲突是同一个问题。
核心原则:同一时间,同一资源,只能有一个写入者。
资源类型具体表现根因飞书文档 APIMessage ordering conflict乐观锁 revision_id 冲突Excel (openpyxl)后写覆盖先写,数据丢失全量读→改→全量写,无锁本地文件sub-agent 内容被另一个覆盖多进程写同一文件,无锁飞书 write 全量覆盖read 异常→write 空内容→丢数据"先读后写"不是原子操作连续快速 API 调用前一个没返回就发下一个版本号过期
连续密集写入:一次操作里调多次 feishu_doc insert/update/write,前一个请求还没返回下一个就发出去,revision 对不上就 conflict。
大文档原地重构(>100 block):密集删除+创建数百个 block,几乎必然 conflict,失败后文档可能处于半成品状态。
text
✅ 新建文档 → 写入重构内容 → 通知用户手动复制粘贴替换原文档
❌ 原地删除全部 block + 重写(必崩)
❌ 用 feishu_doc write 全量覆盖大文档(同理)
实战:铁路行业分析文档(500+ block)原地重构 5 次全部失败,新建文档写入一次成功(2026-04-04)。
openpyxl 等库是「读取全量→修改→全量写回」模式。两个 sub-agent 同时读同一 xlsx,各自加了数据写回,后保存的覆盖先保存的,先写的数据直接丢。
实战:248 家 ISV 研究,3 个 sub-agent 并行写同一 xlsx,1 个翻车数据全丢,手动补 60 行(2026-04-03)。
❌ 危险模式✅ 安全替代多 sub-agent 写同一 Excel/文件每个 sub-agent 写独立文件(result-1.json 等)→ 主 session 合并多 sub-agent 写同一飞书文档同上,主 session 最后一次性写入"先 read 再 write" 全量覆盖用 insert/append 增量写入大文档原地重构新建文档写入 → 人工复制替换连续快速 API 调用串行等返回,或合并成一次调用
三条铁律:
不管用哪个策略,最终都要:
完成 X/Y,成功 A / 失败 Btext
任务进来
├─ 子任务之间有依赖? → 策略 A(串行)
├─ 子任务独立 + 不需要搜索? → 策略 B(sub-agent 并行)
├─ 50+ 项批量操作? → 策略 C(分段检查点)
├─ 多阶段混合? → 策略 D(混合编排)
└─ 不确定? → 先用策略 A,后面发现可以并行再切
不确定时选策略 A——串行虽然慢但最稳。并行看着快,翻车了反而更慢。
搜索密集型任务 → 策略 A 或 C,不要用策略 B。Sub-agent 做搜索密集任务不稳定(上下文膨胀→推理变慢→超时/返回空)。
以下问题是 OpenClaw sub-agent 机制的 平台级局限,不是使用方式的问题。了解它们才能设计出靠谱的编排策略。
缺陷严重度说明GitHub IssueAnnounce 静默丢失🔴 高sub-agent 完成任务后回传结果超时(硬编码 60s),无重试,结果直接丢失,用户无感知#17000, #7666, #44925并发 session lock 冲突🔴 高多 agent 并行时 session 文件锁超时,即使用隔离 workspace 也会撞锁#43367完成声明不可信🟡 中sub-agent 声称"文件已创建"但文件实际不存在,无内置验证机制#44925 Pattern 3超时无自动重启🟡 中sub-agent 超时后系统不做任何事——不重试、不通知、不自动重启#44925 Pattern 2Gateway 争用🟡 中多 sub-agent 同时运行增加 gateway 负载,小实例(EC2 t3.micro)尤其明显#43367
1. 不信任 announce,主动验证
text
Sub-agent 完成后:
├─ 用 sessions_history 查看 sub-agent 实际输出
├─ 用 read 验证声称创建的文件确实存在且内容正确
└─ 不要只看 announce 消息就认为成功
2. 控制并发度
agents.defaults.subagents.maxConcurrent 硬限制3. 设计容错的 task prompt
4. 搜索密集任务避开 sub-agent
5. 失败后的恢复流程
text
Sub-agent 疑似失败:
1. sessions_history 查看它到底做了什么
2. 检查它应该输出的文件是否存在
3. 如果有部分结果 → 从检查点继续
4. 如果完全没结果 → 主 session 接手(别再 spawn 新的去重试同一个任务)
5. 更新检查点文件标记哪些需要补救
本技能是编排层,不替代领域技能: