qwen-code 拆分历史重试功能,梳理 checkpoint 可靠性四大加固点
qqqys · ghdev · 2026-09-20
QwenLM/qwen-code 的 #12287 issue 将 #12190(从历史恢复运行)中积累的加固工作拆出独立推进。原 PR 经六轮 autofix 从约 1000 行膨胀到约 1900 行,开始触碰 runner 的恢复语义、checkpoint schema 和 daemon 的不受信工作区边界,因此功能本体以原始范围另开新 PR。
待加固的四个点:
- 让 run checkpoint 成为权威依据:workflow-runner.ts 写 checkpoint 是刻意不 await 的,但新的「历史重试拒绝门」把它当作另一进程正在运行该 run 的证明;若写失败仍放行启动,拒绝就只依赖尽力而为的写入,因此必须在 start 返回前 await 并在失败时拒绝。
- pid 回收下的写者身份判定:writerHasExited 用 process.kill(pid, 0),回收后的 pid 会被误判为存活;建议在 Linux 上记录进程起始时间(/proc/<pid>/stat 第 22 字段)做精确匹配。
- 恢复调用不必重传参数:resume 时参数可从快照读取,但当前的 settled snapshot 会在参数未随行时误报为无参数,应沿用上一次的 args 投影。
- 区分「args 从未记录」与「args 过大被省略」:旧版快照两者字段皆无,daemon 需据此决定是否拒绝重试。
整体是一次较罕见的对 agent 工作流 checkpoint/并发语义的细致工程讨论。
「编程与Agent」频道最新
- 美联航将禁止个人AI代理代客预订机票 — Polymarket · 2026-11-12
- Agentic Search 图解:4 次搜索的循环成本约为单次搜索的 5 倍 — adnan_hashmi · 2026-11-12
- AWS 自曝:AWS Emulator 每行代码均由自主 AI Agent 编写 — SumitGup · 2026-11-12
- freeCodeCamp 上线 2 小时 Codex 智能体编码免费课 — adnan_hashmi · 2026-11-12
- 被严重低估的资源:跨模型跨厂商的工具调用可靠性实测 — ricklamers · 2026-11-12
- 整理 5.5 万数据点的教训:企业级 Agent 数据准备远比想象更难 — BenBajarin · 2026-11-12