
DeepSeek为什么选择同时发布V4 Pro、调价、开源Harness?
模型性能倒退、高峰涨价4.5倍、Harness未完成状态同时发布。
三条线压缩到一个晚上,用户分不清是模型问题还是Harness问题还是定价问题,在社区引发了非议
但如果你看懂了它在做什么,你会发现,DeepSeek在押注的是Agent行业的底座生态。
DeepSeek官方开源Agent框架!DeepSeek Harness架构剖析
很多人拿DSH跟Claude Code比。说实话,这么比不太对。
Claude Code是一个产品。Anthropic自己的模型,自己写的harness,两层咬合在一起,你买的订阅就是这个咬合。别人拆不开,也抄不走。Harness在Anthropic手里是壁垒,是收入。
DSH走的是完全相反的路。它从第一天的设计上,就让harness这一层标价为零。
这让我想起R1开放权重的那次操作。当时OpenAI藏在API后面卖推理能力,R1一开源,稀缺性没了,OpenAI被迫降价。这次DSH对准的是闭源外壳的溢价。Anthropic靠Claude Code把harness做成壁垒,DSH直接宣布,缰绳这个东西不该收钱。

竞品对比看这张表。可逆效果注册,Claude Code和Cursor都不支持,DSH原生支持。插件热插拔,Cursor需要重启IDE,DSH热加载。Event Sourcing全量重投影,Claude Code只有本地日志,Cursor是云端黑盒。开源协议,前两者闭源,DSH是MIT。
当然,说"不跟你比"并不意味着DSH在所有维度上更好。它选的是另一条赛道,把竞争压回模型本身的能力和价格。在那个赛道上,DeepSeek已经有主场优势了。
DSH底层跑在Cordis框架上。你可以把Cordis想象成一块乐高底板,上面有统一规格的凸点,任何零件都能往上插。
"一切皆插件"不是口号,是字面意思。模型接入是一个插件,工具注册是一个插件,沙箱是一个插件,连Agent主循环本身也是插件。你要换掉任何一个,拔下来插上新的就行,框架不停机。
这里最关键的设计叫"可逆效果注册"。普通框架注册一个工具,注册完就完了,你没法干净地卸载。DSH的做法是,每个工具注册、每个Prompt注入、每个事件监听,框架都会记录下来。卸载插件的时候,这些注册全部自动回滚,不留垃圾。
还有一层设计叫多层Profile覆写。你可以理解成给乐高底板套上不同的模板,一套模板是Web模式,一套是终端模式,一套是无人值守模式。切换模板不需要拆掉底板上的零件,只需要换模板。
有人质疑过,"一切皆xx"在软件工程历史上总会被打破。说实话这个质疑有道理。但现阶段,这套设计确实让DSH在同类框架里做到了一件事,卸载插件的时候不会把系统搞坏。这对Agent开发来说,比听起来重要得多。
有个比喻我觉得特别到位。如果把大模型比作大脑,那DSH做的是小脑加脑干。
以前的Agent是大脑直连脊椎。大模型自己得判断当前是什么系统环境,处理路径格式差异,决定用curl还是浏览器。这些细节占了大模型不少心智负担。
DSH的解法是把这些非核心的执行细节接管过来。大模型只负责推理和策略,具体怎么跑文件、怎么调终端、怎么管子进程,交给DSH的能力接缝层。行动逻辑变成了大脑到小脑到脊椎。

整个系统分六层。最外面是接入层和UI层,承接用户请求。中间是Cordis框架层,驱动插件生命周期。核心是产品脊柱,负责状态机和提示词组装。再往外连着能力接缝层,无缝插拔模型和工具。
这里有个工程细节值得注意。所有事件统一落盘到Session Log,形成单一事实来源。你可以把它理解成Git的commit历史,任何时候都能回放,能分叉调试。Agent跑偏了,不用从头来,在出错的那个节点切出新分支就行。
Agent主循环是kick(),每轮分三步走。第一步安检,检查有没有待处理消息或取消指令。第二步思考,把上下文发给大模型。第三步干活,把工具跑一遍。三步顺序是固定的,保证不会带着脏状态往下跑。
口说无凭,上手试一下。
写一个DSH插件只需要做两件事。第一,写一段TypeScript代码,用tools.register注册一个工具。第二,写一个cordis.patch.yml配置文件,告诉框架怎么加载你的插件。

我实测了一个天气查询插件,整个代码不到20行。注册一个叫get_weather的工具,接收城市名作为参数,返回天气信息。在配置文件里写上插件路径,一行命令启动。

效果是,模型在对话中自主决定调用这个工具。由于沙箱拦截了直接网络请求,模型自己找了替代方案,用web搜索工具查到了实时天气。插件的返回值和搜索结果合在一起,给出了完整回答。
不过安装过程有几个坑值得提前说一下。在Windows上,PowerShell的执行策略会拦截.ps1脚本,需要改用.cmd文件启动。首次安装依赖大概要两分钟,npm会拉500多个包。如果你用yarn装,可能会遇到缺包警告,建议老老实实用npm或pnpm。
DSH才发布几天,社区已经冒出了一批插件。挑五个值得说的。
ModLens (github.com/liustack/modlens),给Agent加了一双眼睛。你粘贴一张截图,它能提取出文字、布局坐标和语义描述,让纯文本模型也能"看懂"图片。跨平台兼容多个Agent框架。
Better-Sidebar (github.com/omdsh-dev/DSH-better-sidebar),给DSH加了一个完整的工作台。侧边栏里有文件编辑器、终端、Git面板,还能预览9种文件格式。在浏览器里就能完成大部分开发操作。
dsh-genui (github.com/omdsh-dev/dsh-genui),让模型的回复不再只是纯文本。它能在对话流里直接渲染图表、数据面板和表单,支持30多种交互式组件。
但问题也不少。插件的可发现性基本为零,你只能去GitHub上自己搜。版本管理、自动升级、供应链安全这些事情,目前没有文档也没有工具。一个恶意的npm包理论上能在安装阶段就改写你的审批策略和沙箱配置。这不是小问题。
DSH内置了四种运行模式,你可以理解成同一台车的四种驾驶模式。

标准模式是默认选项。平衡对话和工具调用,适合大部分日常开发任务。你跟它聊天,它调工具,节奏适中。
程序化工具调用模式,简称PTC,是这里面最有意思的一个。它把工具调用的确定性拉到最高。普通模式下模型调工具,有时候格式会飘,参数名写错,JSON多了个逗号。PTC模式做了强约束,保证每一次工具调用都是语法严谨的。写自动化脚本的时候特别有用。
极简模式走的是另一个极端。它压缩Token消耗和上下文长度,适合高频微任务。比如你有一个定时任务,每小时检查一次某个网站有没有更新,不需要复杂的推理能力,极简模式就够了,省成本。
创造模式完全反过来。它释放模型的链式推理潜能,允许更长的思考过程。适合发散性任务,比如让它帮你设计一个系统架构,或者分析一个复杂的技术问题。
四种模式通过命令行参数或会话配置即时切换,不需要重启。跑自动化用PTC,聊天用标准,深度分析用创造,日常巡检用极简。这种灵活调度能力,只是DSH作为交付容器的冰山一角。
DeepSeek Harness不仅仅是一个Agent运行框架。它更像是一个即插即用的Agent交付容器。
开源理念、独立运作、可接入其他模型。这说明DeepSeek在押注一个更大的赌局:它不想只做中国的OpenAI,它想成为全球AI基础设施中那根关键的“执行层标准”
从PC时代的Wintel联盟到移动互联网时代的Android,谁掌握了中间层,谁就掌握了生态入口。
DeepSeek Harness能否复制这一路径?比答案更重要的是,行业已经开始用脚投票。