LAYER 04 · 理解安全与耐久性

取消、超时与防御性不变量

生产可靠性来自所有边界都报告真实状态,而不是“尽量不要出错”

18 min3 处源码锚点upstream@47f9438
request stop ≠ fully stopped
本章要解决的问题

为什么一个超时不能简单地 Promise.race 后忘掉仍在运行的工作?

先建立直觉

消防警报宣布“立即撤离”不等于大楼已经清空;系统必须区分命令已发出、人员正在撤离和检查确认无人滞留。

MECHANISM

机制拆解

DeepSeek Harness 使用结构化错误码、AbortSignal、Deadline 与 holder-owned dispose,把“请求停止”与“资源已释放”拆开。

invariants service 让每个 package 注册自身可验证条件;分发器隔离观察者异常,正交结果独立上报,避免一个通知失败伪造主操作失败。

第 1 步 / 共 5 步

建立 Deadline

所有子操作共享剩余预算而不是各自重置超时。

INVARIANTS

无论怎么扩展,都不能破坏

  • 取消原因 first-wins
  • dispose 完成表示资源真正释放
  • 观察者失败不能撤销已经提交的权威操作
FAILURE MODES

最容易踩中的坑

  • ×每层都重新开始完整 timeout
  • ×捕获所有错误并返回普通文本
  • ×unlink 前 follow 符号链接到外部路径
VERIFY IN SOURCE

不要相信结论,去源码里复核

以下链接固定到官方 deepseek-harness@47f9438;查看当前上游时请留意后续 breaking changes。

KNOWLEDGE CHECK

先停十秒,再揭晓答案

为什么 observer 失败不能让 Session.append() 失败?

为什么下一章紧接在这里

单 Agent 的可靠主干已经建立。接下来加入目标、计划与待办这些可回放协作状态。

Learn DeepSeek Harness

独立教学项目。解释力来自源码,判断边界以官方仓库为准。