发布时间:2026/9/1 4:46:00
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/9/1 4:46:00

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

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

2026/9/1 4:46:00

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

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

2026/9/1 4:41:00

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

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

2026/9/1 5:01:01

EPLAN在锂电池生产线电气设计中的实战应用与效率提升

这次我们来看一个 EPLAN 在锂电池生产线电气设计中的实际应用案例。对于从事非标自动化、产线集成或新能源设备设计的电气工程师来说,如何高效、规范地完成一套复杂生产线的电气设计,是一个核心挑战。EPLAN 作为专业的电气工程设计软件,其价值…

2026/9/1 5:01:01

新能源汽车电池缺陷检测数据集全解析:从标注规范到YOLOv8训练实践

简介:面向新能源汽车电池健康状态估计与剩余寿命预测研究,这份项目代码为智能汽车安全技术全国重点实验室发布的三元锂离子电池运行数据集提供了轻量级使用入口。原始数据采集自300辆真实运营车辆,覆盖0—50万公里里程、0.5—4年运行周期&…

2026/9/1 5:01:01

AI数据分析怎么做?一套SOP打通ChatBI、Data Agent与Skill

过去做一次数据分析,往往要经历提需求、找数据、写SQL、做图表、解释异常、整理报告等多个环节。现在有了大模型,不少企业希望直接接入ChatBI,让业务人员通过自然语言完成分析。但真正落地后会发现:能回答问题,不等于能…

2026/9/1 5:01:01

跌倒检测数据集处理全攻略:乱码修复、VOC转YOLO与模型训练

简介:一套面向跌倒检测算法研发与验证的图像数据集,适合计算机视觉、模式识别及机器学习方向的研究者与学生使用。数据包共收录2000个文件,其中560张jpg图像覆盖多视角、不同光照和室内外环境下的真实跌倒画面,1440个xml文件为每张…

2026/9/1 4:56:01

LangChain实战:从Chain到RAG与Agent的完整工程落地指南

简介:这是一份面向初学者的LangChain入门与实践项目代码包。LangChain是当前流行的基于Python的开源框架,通过模块化设计将大语言模型与外部数据、工具及记忆能力连接,能有效解决信息滞后、无法执行外部操作、记忆有限等痛点,并支…

2026/8/31 1:05:20

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/31 2:14:20

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/31 1:41:28

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…