DeepSeek 这周把 Harness 开源了,不少做 agent 的同事第一反应是“又一层 model wrapper”,真用进去才发现不对味:它真正在卖的是“边界写成契约”。一个 30 行的文件被同事改到 60 行,旧版本读到的 edit 指令直接被拒,必须重读最新版本才放行——这就是它对“事实有据”的硬约束。
过去我们写 harness,常把 agent state 塞进一段自然语言目标,结果模型读到的版本和执行时手上的版本不是一回事。DeepSeek 的解法是把 state 拆给不同 owner:文件内容归 file provider 持有真实版本,session policy 负责已观察到的事实,正在跑的 execution 由 live events 协调,可回放的历史丢给 durable events。
tool call 走的是事件管线:先定不可变 identity,再做 schema 校验,过 pre-execution hooks,再到 monotonic guards 拦住越权修改,最后执行、归一化、落账。
父 agent 拿到的是 child 投影出的 report 或 settlement,不再被整段 transcript 撑爆,长任务和工具密集型场景因此跑得动。
所以它不是更聪明的 wrapper,而是一套把“谁能改、谁能看、谁负责”写进代码的契约。如果让你先挑一类 state 来明确 owner,你会先动 file truth、live execution,还是 subagent authority?
