DeepSeek Harness 源码解读 · 01 | 插件模型与引擎主循环:一切皆插件,连循环也是
DeepSeek Harness 由 Cordis 元框架驱动,核心是「一切皆插件,没有特权内核」。本文先讲 Cordis 的五个概念与服务容器 ctx,再拆开 agent-loop 这个「只是个插件」的默认驱动器:ReactLoopAgent 的 Phase 状态机、kick/turn/step 主循环、以及三路 abort 融合的生命周期熔断。配插件树与状态机图。
DeepSeek Harness 由 Cordis 元框架驱动,核心是「一切皆插件,没有特权内核」。本文先讲 Cordis 的五个概念与服务容器 ctx,再拆开 agent-loop 这个「只是个插件」的默认驱动器:ReactLoopAgent 的 Phase 状态机、kick/turn/step 主循环、以及三路 abort 融合的生命周期熔断。配插件树与状态机图。
工具不是直接执行,而是过一条带把关的流水线:tool/call 事件先于执行被记录,再依次经过 pre-execute 瀑布(钩子·权限·沙箱)、单调守卫、execute 瀑布(超时·重试·指标)、工具本体、post-execute 瀑布、finalizeContent,最终冻结为 tool/result 事件。并发层用独占屏障 + 有界并行池 + 模型序提交编排多工具,abort 时合成 TOOL_ABORTED_BEFORE_DISPATCH 保证 replay 有效。配流水线图。
Harness 的扩展是配置级的,秘密在能力 seam(接口/实现/消费方 三角色)。最精彩的一处:fs、subprocess、shell、terminals、lsp、sandbox 共享同一个沙箱模式与策略(ctx.sandboxPolicy),因此把文件系统与子进程指向远程沙箱,Bash、PTY、LSP 会一次性全部搬走,无需各自 fork。ctx.e2b 用一个共享 SDK 句柄把 fs-e2b 与 subprocess-e2b 收进同一 Linux 运行时。配共享沙箱世界图。
刚发布的 DeepSeek Harness 与已精读的 nanobot 恰好构成一对对照样本:一个用 Cordis 插件树把 Agent 做成可无限替换的生产基座,一个用分层引擎把 Agent 讲透给你看。本文从内核组织、主循环、上下文真相源、工具并发、扩展方式、多 Agent 六个维度逐一对撞,并给出选型建议。配对照架构图。