opencode 我们为什么删除了看门狗机制

发布时间:2026/10/20 5:29:02

opencode 我们为什么删除了看门狗机制 opencode 我们为什么删除了看门狗机制本文基于 opencode-goal 插件(开源,SDK 1.18)真实实现编写。主题:旧版独立 watchdog 定时器的删除理由,以及卡死救护如何内聚进 TICK 门链。1. 旧架构旧版存在两套后台定时器:TICK(1 秒):驱动自动续推;独立 watchdog(按配置时限):自动中止卡死的子代理。watchdog 的删除(2026-08-29 TICK 重构)不是能力削减,而是职责重分配:卡死救护仍存在,但决策移入 TICK 内部。2. 删除理由2.1 多驱动路径 多故障源watchdog 的 abort 是独立于 TICK 的派发路径。会话存在两条驱动路径(TICK 续推 watchdog 中止)时,日志、竞态、错误处理全部翻倍。单一驱动器原则下,任何自动动作都应当由同一个循环决策。2.2 计时与事实脱节watchdog 按自身计时器计数,而会话活动由事件刷新。两者不同步时,看似卡死、实则刚活动过的会话会被误中止。误杀子代理的代价(上下文丢失)远高于等待。2.3 定时器生命周期watchdog 需要按会话启动/重置/取消,并与压缩、重启门、中止判定交错。多定时器时序难以穷举验证,边界 bug 集中于此。2.4 与既有原则冲突系统原则为事件只记录状态,TICK 才做决策。watchdog 是事件/时间驱动的兜底,违背该原则,保留即持续引入复杂度。3. 替代设计:卡死救护内聚 TICK删除 watchdog 后,救护逻辑成为drive_session门链的一环:快照显示 busy/retry? → session_busy_since 记录首次出现时刻(单调 TICK 时钟) → 超过 STUCK_RESCUE_STALL_MS(默认 90 秒,env GOAL_STUCK_STALL_MS) 且期间无任何事件(逐事件刷新窗口) 且无进行中工具(tool_inflight 非空则豁免) → session.abort 一次解除卡死;每会话每停滞窗口至多一次 → 否则跳过关键性质:判定基于权威快照 事件印记,而非独立计数器(无脱节);单一时钟、单一循环、单一状态源;工具豁免:长工具调用(如 5 分钟 bash)期间不误杀;合法长生成持续产生part.updated事件,自动续刷窗口,不会触发。3.1 救护指纹归属救护 abort 产生的错误与用户 ESC 同为MessageAbortedError/Aborted。救护发起时记录时间戳;指纹 5 秒窗口内到达归因救护、不暂停目标。完整判定链见《opencode 用户操作中断取消判定》。3.2 子代理边界主会话卡死:TICK 自动 abort;子代理:不设自动中止(自动杀子代理的进度损失风险大于收益),由 TUI 伴侣插件提供手动入口(命令面板 → Poke session → Abort)。4. 收益与边界维度删除前删除后驱动路径TICK watchdog单一 TICK卡死判定依据独立计时器(可与事实脱节)权威快照 事件窗口定时器多套交错一套,dispose 一次清理子代理救护定时自动中止仅手动(TUI)边界:若会话在 90 秒内不产生事件且无进行中工具,会被视为停滞(合法静默场景罕见,且每停滞窗口仅 abort 一次,不无限重试)。指纹归因窗口 5 秒,救护 abort 事件本地即时到达,窗口内可收。约束要点:任何自动动作(续推、压缩、救护中止)都必须由单一循环决策,禁止为单个动作引入独立定时器或事件触发路径;卡死判定必须以权威快照与事件窗口为据,禁止以独立计数器代替。5. 验证goal-noprogress-test.mjs/goal-user-abort-test.mjs:停滞救护与指纹归属;goal-fault-injection-test.mjs:SDK 挂起/重放注入后救护触发且目标不暂停;goal-regression-gates-test.mjs(13 断言):门链回归。6. 结论删除 watchdoog 的实质:救护不是TICK 之外的另一个看守,而是TICK 自己决策该救什么。单一驱动循环 权威状态 确定性门序,使卡死处理成为可验证的一环,而非散布的补丁。
延伸阅读

更多相关文章

2026/10/17 19:34:45

2026华为AI岗备考全攻略:机试、面试与避坑指南

时间走到7月,尤其是一到中下旬,华为AI岗的招聘节奏明显就开始加速了。如果你正在找“2026年 华为 AI岗”相关的内容,大概率是已经投了简历,或者正在准备机试,又或者刚收到某个批次的面试通知——比如7月24号这个时间节…

2026/10/18 20:55:51

从零搭建AI Agent:基于LangChain的智能体开发实战指南

最近在尝试将AI能力集成到自己的项目中时,你是否也遇到过这样的困惑:网上关于AI Agent的资料要么是晦涩难懂的学术论文,要么是零散的代码片段,想从零开始搭建一个能实际运行的智能体,却不知从何下手?面对La…

2026/10/18 3:06:29

FDE 到底做什么、这个岗位从哪来、为什么最近几年集中爆发

本章导读:FDE(Forward Deployed Engineer,前线部署工程师)是把工程师派驻客户现场、以工程手段直接解决业务问题的岗位。本章回答四个问题:FDE 到底做什么、这个岗位从哪来、为什么最近几年集中爆发、它和售前工程师与…

2026/10/20 5:26:23

舵机PIDt调参

舵机内部通常就在跑 PID,外部控制器也可能再跑一层 PID。 所以它们不是一回事,但关系非常紧密:舵机是“带 PID 闭环的执行器”,PID 是让它精准转到目标角度的算法。🔧 舵机内部:自带一层 PID你给舵机发的是…

2026/10/20 5:26:23

VS2019 Darcula护眼主题深度移植指南

1. 为什么VS2019原生黑色主题不等于“护眼”——从人因工程角度拆解视觉疲劳根源很多人在深夜调试代码时,第一反应是把Visual Studio 2019调成“深色模式”,以为这就完成了护眼闭环。我带过三届某高校软件工程方向的实训项目,每次开班第一周&…

2026/10/20 5:26:23

【机器人】MicroDuck仿真问题记录

Q1:curl -L -o alpha_walking.onnx 网页前缀alpha_walking.onnx下载超时A1:使用国内镜像站curl -L -o alpha_walking.onnx https://hf-mirror.com/源目录alpha_walking.onnx其他镜像备选:除 hf-mirror.com 外,还可尝试:上海交大镜像&#xff…

2026/10/20 5:26:23

Windows AppData空间暴增真相:用Codex精准定位87.81GB占用源

1. 这不是“垃圾文件”,是系统在悄悄存档你的数字生活你有没有某天打开资源管理器,突然发现C盘只剩不到5GB可用空间,红色警告条刺眼地横在磁盘图标上?手指悬在鼠标左键上方,本能想点开“临时文件”“回收站”“下载目录…

2026/10/20 5:26:23

数据流分析详解:从到达定值到活跃变量与可用表达式

1. 数据流分析到底在回答什么问题数据流分析是软件分析课程里最硬核、也最容易被低估的一讲。我刚接触这门经典公开课时,听完到达定值分析的整套定义、传递函数和迭代算法,觉得自己理解得差不多了;等学到活跃变量分析,方向从前往后…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑