opencode 硬编码 60 分钟空闲 TTL,无人值守 Agent 等待人类时被强制中断

AlexeyShirshov · ghdev · 2026-10-14

anomalyco/opencode issue #55305 请求把位置不活跃 TTL(LocationActivity.timeToLive,硬编码 60 分钟)暴露为配置项,并允许关闭空闲驱逐。作者指出内部选项其实已存在,只是从未从配置接入:location-activity.ts 读取 t(options.timeToLive ?? "60 minutes"),但服务装配时未传 options;sweep 间隔同理,自然的输入格式应是 Duration 字符串(如 "24 hours" 或 "Infinity")。

作者在 2.0.28 上复现了确定性故障:一次无人值守编排运行中,agent 调用 question 工具等待人类决策,因等待期间不产生持久化事件,恰好 60 分 33 秒后位置被 sweep 驱逐,挂起的工具调用被失败为 Tool execution interrupted,会话被记录为 idle/interrupted,1 秒后该位置的 MCP 会话也被拆除(终止超时 1000ms)。约 14 小时内 3 个位置共发生 30 次驱逐,任何合法等待超过一小时的运行都会被销毁。目前唯一 workaround 是改二进制里的 60 minutes 字面量,升级即失效。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →