LAYER 04 · 理解安全与耐久性
取消、超时与防御性不变量
生产可靠性来自所有边界都报告真实状态,而不是“尽量不要出错”
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 的可靠主干已经建立。接下来加入目标、计划与待办这些可回放协作状态。