很多人第一次让 Agent 跑长任务,都会撞到同一堵墙:超时、卡住、结果丢失、回传不完整。
这不是你提示词写得不够好,而是你把“长任务”当成了“一次对话”。在 OpenClaw 里,长任务应该按“异步作业”来设计。
一、先换思路:别追求“一次跑完”,要追求“可恢复”
长任务最怕三件事:
1)单次上下文太长,模型或工具超时;
2)中途出错后全盘重来;
3)你不知道现在跑到哪一步了。
所以正确做法是:拆阶段 + 异步执行 + 可追踪回传。
二、推荐架构:3 层稳态模型
第1层:主会话只做编排,不做重活。主会话负责定目标、拆步骤、收结果、做最终输出。
第2层:子任务用 sessions_spawn。把重任务扔给子会话:调研、批处理、代码执行、发布动作。
第3层:定时任务用 cron。每天/每小时固定任务交给 openclaw cron,不要靠手动触发。
三、命令级方案(直接可用)
1)长任务委派:用 mode=run 跑一次性任务;用 mode=session + thread:true 跑持续协作任务。
2)避免死轮询:spawn 后优先等回传事件,不要高频 list/poll。
3)增加超时与容错:openclaw cron edit <job-id> --timeout-seconds 1800。
4)手动联调:openclaw cron run <job-id>。
5)看执行健康:openclaw cron status;openclaw cron runs <job-id>。
四、最常见 5 个坑和修法
1)任务超时:提高 timeout,并拆成两段(先调研,再写作)。
2)一次塞太多目标:先交 MVP,再补扩展包。
3)发布链路失败:把发布独立成 publisher 子任务,并强制回传“成功/失败+标题”。
4)频繁轮询:改用推送回传。
5)主会话上下文污染:搜集任务交给 scout,主会话只做判断和成稿。
五、一个可复制的长任务模板(内容场景)
1)scout 先给 8 个选题;
2)主会话价值评分选 1 个;
3)scout 深挖数据/案例/近7天动态;
4)主会话写成稿;
5)publisher 排版并发到公众号草稿箱;
6)回传只回三项:标题、发布结果、草稿名。
六、结论
OpenClaw 跑长任务的关键,不是让模型更拼命,而是让流程更工程化:异步委派、阶段交付、失败可恢复、结果可追踪。系统按这个方式搭好后,长任务不是更难,而是更稳。
夜雨聆风