Skip to main content

DeepSeek Harness 是什么?为什么说"一切皆插件"?

· 9 min read

DeepSeek Harness 把 AI 编程工具的每个组件都做成可插拔插件——模型适配器、工具注册、日志,连 AI 循环本身都能换。

  1. 定位:可拆装重组的 Agent 平台骨架,"成品车" vs "开源引擎 + 配件市场"
  2. 核心:连 AI 循环都是插件,4 层可替换 + seam 设计一处替换全局生效
  3. 标志:日志即真相,AI 看到的字节从账本重算,runtime 断言强制
  4. 适合:平台团队 / 合规重行业 / 多模型 A/B 测试;普通用户用 Codex / Claude Code 扩展够用
  5. 现状:0.1.0-rc.5 Preview,可接入绝大数模型,第三方插件鱼龙混杂,权限过大
  6. 设计模式:可逆副作用 / 类型化事件 / 文档生成 + 完整性守卫 / 防御式加载 / UI 订阅事件

一句话理解它

DeepSeek Harness(命令行简写 dsh)是 DeepSeek 开源的 AI 编程智能体框架,跟 Codex CLI、Claude Code 干同一件事——让 AI 帮你读代码、改文件、跑命令。

但定位不是"又一个 AI 编程产品",而是"一个可拆装重组的骨架"。Codex / Claude Code 的 AI 循环、调度逻辑都写死在核心里,外层只能挂小挂件;DeepSeek Harness 反过来——模型适配器、工具注册表、会话日志、连 AI 循环本身,全都是插件。可比作"成品车" vs "开源引擎 + 配件市场":开箱即用、生态成熟度前者赢;可定制天花板和架构可组合性,dsh 更激进。

一次对话轮次是怎么跑的

一次用户输入到模型最终回复,称为一个 turn(轮次),走 7 步:收件 → 过安检(pre-step)→ 拼菜 → 模型思考 → 干活(工具执行)→ 要不要再轮 → 收工。

核心设计:每个工位之间都留了"检查口",插件可随时往里塞逻辑——每一步都能参与

事件有四种分发模式:

模式作用通俗理解
emit广播,不等待喊一嗓子,谁听到谁听
waterfall中间件,可短路传话接力,谁有权谁拍板
parallel并行扇出同时问一堆人
serial按序执行排队一个个来

亮点

日志即真相

DeepSeek Harness 的硬原则「模型可见即记录」:模型看到的每一个字节,都必须从日志里重建出来。运行时断言强制保证。

PIA4rL

主流工具存的是"截图"(用户看到的界面),AI 真正看到的上下文(系统指令、注入的背景、压缩后的工具结果)是另一套隐性东西,两套经常对不上。dsh 存的是"账"——AI 的每次动作记成 一笔不可篡改的流水账(只增不改),AI 实际看到的东西必须能从这个账本重算,运行时断言盯着不一致当场报错。

派生四个能力:回放 / 审计 / 算账 / 复制分支

这跟 Pi 的 JSONL 节点树(见 Pi 的 Session 是什么?JSONL 树形结构撑起分支、回滚、压缩)不是同一种东西

  • Pi JSONL 节点树消息(一条对话事件)。"回滚"= 跳到节点重启对话。
  • dsh 日志即真相字节(AI 那一刻看到的完整 prompt)。runtime assertion 强制「存的 == AI 看到的」。

不是 JSONL 的可视化版本——JSONL 节点树看不到 "AI 当时看到的完整 prompt";dsh 把字节也存下来,所以能做字节级 replay、跨模型公平对比、token 算账。

维度Pi 节点树dsh 日志
存的最小单位消息字节(拼装后的完整 prompt)
"回滚" 含义跳到节点重启字节级还原
一致性保证手工校验runtime assertion 强制
派生能力跳节点 / side thread字节级审计 / 跨模型对比 / token 算账

可替换的"核心" vs 只能扩"外围"

Codex / Claude Code 在固定骨架上挂扩展;DeepSeek Harness 让你 连骨架一起换——换模型路由、存储、沙箱、审批策略、加入公司记忆/合规/遥测,或换成自己的 UI / 业务工作流。

但有代价:多一层 seam 就多一份抽象负担;dsh 又是 0.1.0-rc.5 预览版,插件合约可能变,自己接的代码要跟着迁。

真正用得上的:平台团队(多业务线定制 UI/路由/沙箱)、合规重行业(金融/医疗/政企把审计审批做成 seam 一等公民)、多模型 A/B 测试(字节级可重算)。普通团队用不到——直接用 CC / Codex 扩展够用。

"一处替换,全局生效" 的 seam 设计

DeepSeek Harness 把每个底层能力拆成三层:接口定义 + Provider + Consumer——类似"插座标准 + 电源 + 电器":电器只认插座不认电源,换一个电源,所有电器自动跟着换。

dsh 真实例子:AI 编程工具的 Bash、终端(PTY)、LSP 都依赖 文件系统进程。把这两个从"本机"换成"沙箱",Bash、终端、LSP 全自动跟着搬到沙箱里跑;没有 seam 的设计,得 一个一个功能去改

一句话:seam = 把能力做成标准插口。换电源,就换全部。

兼容桥接 + 自主工作

  • 兼容桥接hooks-claude-code / hooks-codex 直接读你现有的 CC / Codex hook 配置(还做 ${CLAUDE_PLUGIN_ROOT} 变量替换),还支持 MCP、ACP、LSP
  • 自主工作:dsh 的 goal / Ralph 循环 / schedule 是更"自动化"的能力(持久目标 + 全新上下文 + 定时触发),但预览版成熟度待观察

可逆副作用

每个插件返回"撤销函数"(disposer)——卸载即清理,热重载 / 可回滚 / 可组合 三件事的底气。

类型化事件做扩展点

插件通过 ctx.<key> 找服务、通过事件通信,不 import 具体实现;事件带"类型化"——填标准表格,编译器当场检查字段。

文档由代码生成 + 完整性守卫

tool-catalogconfig-catalogmodule-graph 全部脚本自动生成;新增工具但没进文档,CI 直接失败。

防御式加载

hooks.json 路径错、正则坏——隔离处理 + 打警告,不让 agent 启动崩溃。

UI 只订阅事件,不绑死 Agent 内核

UI 从 Session Event 流渲染;Web UI、CLI、SDK 可共享同一个内核。不要让"聊天界面的状态"成为 Agent 真正的状态

劣势

仍是 Developer Preview

官方明确表示会快速迭代并产生不兼容变化,当前根版本为 0.1.0-rc.5。不建议此时直接把它当稳定企业基础设施,除非团队能持续跟进升级并承担迁移成本

高度模块化也带来理解成本

包、事件、配置层和生命周期明显增多。官方文档建议 先理解 Cordis,再修改 packages。除非真要替换底层,否则这种复杂度不容易产生回报。

产品完整度暂时落后

Codex 已覆盖 CLI、IDE、云端并行任务、GitHub 工作流;Claude Code 已覆盖 CLI、IDE、桌面、Web、移动、CI、Slack、后台 Agent、Agent Teams。DeepSeek Harness 主产品面仍以 本地 Web 和 Headless 为主,优势集中在"内部可塑性",不是"外部体验完整度"。

安装方式对非开发者不够友好

虽然是一行命令,但容易出错。社区第三方封装了 Desktop 版 降低上手门槛。

慢,且效果一般

DeepSeek 模型目前 agent 的思考模式只有 off / high / max 三档,缺 low / medium 这种轻档。跑 task 时默认走高档位,整理一个任务的速度相对其他 Agent 慢了不少,对追求快响应的场景不友好。模型在真正动手改代码前已经把大量 token 烧在前置推理上。同样的 prompt 给 Claude Code,Agent 往往几秒内就开始改文件;给 DSH,是想很久、动一次,最终输出往往一般——既不显著优于"快速动手 + 迭代修改"的 Agent,体验下来两头都不占优。

哪怕是换其他模型,比如 MiniMax 同样的思考强度,DSH 下跑,速度也未见明显改善,改代码之前执行还是比较缓慢,效果也不如人意。如果和 Claude Code 比那除了“一切即插件”这个口号外,国内打鸡血的一样自媒体狂吹,Github 上狂揽 Star,很多国内开发者积极贡献插件外。其他是感受不到明显优势的。

小结

维度结论
它是什么开源的、一切皆插件的 AI 编程智能体框架
核心思路无特权内核 + 事件驱动 + 日志即真相
最大优势连 AI 循环都可替换,可组合性天花板极高
最值得抄的可逆副作用、日志即真相、文档生成 + 完整性守卫、防御式加载
要留心的开发者预览、破坏性变更、生态尚新

如果只挑一句话记住它:

它把"一个 AI 编程工具的每一个组件"都做成了可插拔的零件,然后用一条可回放的日志把整件事沉淀成可审计的事实。

References

  1. 拆解 DeepSeek Harness:一切皆插件 —— 隔壁樊同学 Ai, 小红书, 2026-08-15