文件与工作区
长任务护栏
超时、落盘日志、断点与逃生流程。
免费 免费阅读,也可以邮件索要技能文件。
背景描述
一句话:把"卡住"变成"可观测、可中断、可续跑"。 卡顿与卡死的根因只有四类——命令没有边界(永不返回)、输出没有预算(撑爆上下文)、状态没有落盘(丢失后重做)、失败没有止损(同一动作反复重试)。本技能逐条封死。
为什么这么做
卡住只有四种成因:命令没边界、输出没预算、状态没落盘、失败没止损。所以护栏落成开工前跑的三个脚本:guard.py 预检命令、budget.py 量要读的东西、断点脚本写目标。判 BLOCK 就换写法,不跟检查讨价还价;三条铁律要求超时、日志、存活判据同时在场,缺一条不许开工。四个成因各配一个动作。
pulse.py 把等待变成有据可查的等待:0 成功、124 总超时、125 空闲超时,看到 125 基本可以认定在等输入。这就是规则要求先读日志尾部、不要立刻重跑的原因。输出分三级,单次回显卡在 8 KB 或 200 行,全文只进 work/logs/ 的磁盘文件,对话里只留路径,需要细节再取行区间。护栏本身有成本,短任务别套这一层,长任务才划算。
真实踩坑
- 超时被当成失败 退出码 124 是到点被切断,125 是一段时间没有新输出,当成普通失败处理就会原样重跑一遍。规则要求先读日志尾部,判断是慢还是死,再把超时设成预估时长的两倍。
- 不带超时跑 npm install 没有超时也没有日志,命令是在装包还是在等密钥,谁也不知道,只能干等。三条铁律要求超时、日志落盘、存活判据同时在场才开工:pulse.py 给超时,work/logs/ 收日志,wait-port 探活。
- 一次 grep 撑爆会话 几百行命中整段贴回对话,上下文立刻变成噪音,回复开始被截断。切片只给 120 行并带五行上下文,搜索结果卡在 50 条,更大的内容写进磁盘文件,对话里只留路径,必要时再按行区间取。
- 同一命令试到第四次 原样重试第四次,结果多半一样,还多烧一轮。三振规则连续失败三次就停,强制三选一:换层级去看日志和源码、缩成最小复现、或者停下来说清缺哪个文件或凭据。选择写进断点文件,连已排除的假设一起记。
这个技能里有什么
- 适用场景
- 三条铁律
- 开工前 30 秒(三条命令)
- 一、长命令:一律走 pulse
- 二、常驻与交互命令:识别与改写
- 三、输出预算:L0 / L1 / L2
- 四、三振规则(防死循环)
- 五、卡死判定与逃生
- 六、断点续跑协议
- 七、并发与子智能体
- 八、收尾检查(5 条,缺一不算完成)
- 九、禁止清单
- 配套文件
目录就是技能文件自己的标题,顺序没有动过。
用法描述
任何可能超过 10 秒、产出超过一屏、或需要多轮次推进的任务都必须先过这道护栏:给命令加超时与日志落盘、给输出定量预算、给进度写断点文件,并提供卡死判定与逃生流程。当任务涉及构建/测试/安装/渲染/爬取、服务或 GUI 启动、大文件大日志大 diff、会话变慢或工具返回被截断、同一报错反复出现、长任务可能被打断或需要跨会话接力时使用。
怎么用
- 用邮箱收这个文件,它就是一个
SKILL.md。 - 放进 agent 读取的技能目录,目录名用
runtime-guard。 - 用描述里的触发句开头,或直接点名这个技能。
技能文件改成邮件发送,不再给下载链接。已登录就发到账号邮箱,没登录就留一个地址。