DeepSeek Harness教程全解:模型、工具、循环全可插拔!

给AI配副马具,它真能自己修好自己!

别被大模型骗了!它连打开一个网页都要别人帮!

2026年8月,DeepSeek甩出一个叫Harness的开源项目,48小时狂揽10万星,彻底把AI圈炸懵了。它的核心公式简单到残酷:Agent = 模型 + Harness。翻译成人话——模型是大脑,但光有脑子不会干活;Harness是那副缰绳和马具,把大脑拴在电脑、文件、命令行和浏览器上,让AI真的动手。但这不是重点。重点是DeepSeek Harness干了一件让所有同行后背发凉的事:它把自己整个拆散了,连“大脑怎么连接手脚”这个最核心的调度系统,都做成了可以随时拔掉换新的插件。这意味着什么?意味着你手里的AI,可能正在偷偷给自己写新工具!

别把AI当神仙,它连“打开文件”都不会!

你跟AI说“帮我查十家公司的资料,整理成表格,再写份分析”。它秒回一份漂亮的计划,然后呢?谁去打开浏览器?谁去下载文件?搜不到资料时它会不会直接编个答案骗你?任务干到一半电脑重启了,第二天它还记得昨天干了啥吗?

这些问题大模型一个都解决不了。模型只会做一件事:根据你输入的文本,预测下一个该输出什么字。它输出的可能是“我要打开文件”,但打开文件这个动作,是模型外面的程序替它完成的。

这套“外面的程序”就叫Harness。DeepSeek在官网上写得清清楚楚:模型是Agent的灵魂,Harness给Agent理解环境、使用工具、持续工作的能力。

你可以这样理解。模型是刚入职的高材生,脑子好用,但没配电脑、没开权限、没工作手册、也没项目经理盯着。Harness就是那台电脑、那个文件柜、那本操作手册、那个项目经理,外加一台24小时不关机的监控录像。

同一个人坐进两间配置不同的办公室,干活效果天差地别。一间只有纸笔,只能口头回答问题;另一间能查数据库、能跑代码、能派活给别人、还能第二天接着昨天的进度继续干。Harness研究的就是怎么把这间“办公室”装修得让AI住得舒服、干得漂亮。

马具理论:为什么DeepSeek不叫“DeepSeek Code”?

Harness这个词直译过来是“马具”——套在马身上的那套缰绳和挽具。这个比喻精准到可怕。大模型是一匹力气大得惊人的马,能跑能拉,但你没法直接控制它往哪跑、跑多稳。Harness就是那套缰绳和车厢,负责把马和“拉车干活”这套组件绑在一起。

所以DeepSeek这个产品不叫“DeepSeek Code”。叫Code的——Claude Code、OpenAI Codex、Kimi Code——定位都是AI编程助手。而Harness的定位是更底层的“Agent执行底座”。编码只是它官方预置的一套组合拳,你完全可以用它拼出一个跟编程半毛钱关系都没有的Agent——比如一个自动做市调的报告机器人,或者一个24小时盯着服务器日志的运维哨兵。

Claude Code和Codex这类产品,本质上是把Harness那一层做成了闭源成品。工具、技能、会话管理、沙箱、调度、工作流,全被厂商封装进一个黑盒子里。你住的是精装房,墙不能拆、格局不能动。DeepSeek这次干的事,等于把这套房子的施工图和所有预制件都开源了,还告诉你“墙随便拆,零件随便换”。

一切皆插件:连“脑子”都能随时拔掉换一个

DeepSeek Harness喊出的口号是“Everything is a Plugin”。这句话不是随便说说的营销话术。

传统Agent框架长这样:一个固化的核心,外面挂一堆插件。核心负责模型适配、工具调用、会话管理、循环控制——这些底层机制是厂商提前焊死的,普通用户摸都摸不到。

DeepSeek Harness把这栋“固定的大楼”拆成了一盒乐高。模型适配器是插件,工具注册表是插件,会话日志是插件,连那个驱动整个Agent一圈一圈转的“循环”本身,也是插件。系统里没有一个“不改源码就动不了”的特权核心。

这意味着什么?意味着你可以随时把DeepSeek的模型拔下来,插上OpenAI的模型,再拔下来插上Claude的模型——配置文件里改一行就完事,不用改任何源代码。你也可以把本地文件系统换成远程沙箱,Agent上层逻辑完全不用改,因为它根本不知道自己在哪个环境里干活。你甚至可以自己写一个全新的“循环方式”——比如让Agent每三步停下来等人工确认一次——然后把它插进去,替换掉官方默认的循环。

这就怪了。一个连“怎么循环”都能换的系统,还叫系统吗?

Cordis:让AI的“后悔药”变成现实

DeepSeek Harness之所以敢把一切都拆成插件,是因为它底下垫了一套叫Cordis的元框架。Cordis是DeepSeek和北大联合提出的动态组件方案,核心论文叫《A Programming Paradigm for Spatiotemporal Composability》——一套处理“时空可组合性”的编程范式。

“时空可组合性”这个词听着唬人,拆开就懂了。

空间可组合性解决的是“谁依赖谁”。一个网页搜索插件需要模型服务和搜索服务,它只管声明“我需要这些”,不用管具体是哪家模型、哪个搜索引擎来提供。就像台灯只管插上电就能亮,不关心电来自火电还是水电。

时间可组合性解决的是“走了之后别留烂摊子”。插件运行时可能注册工具、挂载事件监听、打开网络连接、启动定时器。传统插件系统最常见的毛病是:界面上已经关了插件,但旧监听器还赖在进程里不走。你热更新几次,同一个回调可能被执行好几遍,旧版提示词还在偷偷影响模型。

Cordis的做法很绝。每个插件实例被放进一个叫Fiber的生命周期容器里。插件通过特定接口注册东西时,Cordis全记在这个Fiber的账上。插件卸载时,Cordis自动把账上一笔勾销——移除监听器、注销服务、关闭连接。整个过程像一场临时展览:展完拆掉展台、收回电线、恢复墙面,现场看不出办过展。

更绝的是可逆副作用。插件每次修改系统状态时,Cordis不光记录“改了什么”,还记录“怎么改回去”。多个插件按顺序执行修改时,撤销按相反顺序来:后改的先撤,先改的后撤。这样撤掉插件A的同时,插件B留下的状态依然成立。

这就是DeepSeek Harness敢让AI自己给自己写插件的底气。改坏了能撤回,系统不会越改越乱。

四种模式:同一副骨架,四种不同的活儿

DeepSeek Harness预置了四种运行模式,本质上是四套不同的插件组合。

标准模式是满配工作台。文件编辑、Shell终端、网页搜索、技能系统、任务规划、目标管理、子Agent、工作流编排,全给你装上。适合需要人盯着、任务类型乱七八糟的场景。

PTC模式——程序化工具调用模式——换了一种干活思路。标准模式下,模型每调用一次工具,就得停下来等结果,再发起下一次请求。PTC模式让模型直接写一段TypeScript或Python程序,把本来要来回折腾十几次的工具操作合并成一次执行。比如同时读十个文件,标准模式要来回十趟,PTC模式一段并行代码搞定。但注意,生成的SDK说明本身也占请求长度,任务短、工具少时反而更费Token。

极简模式是考场模式。只给模型一个Shell终端和一个文件编辑器。去掉技能、搜索、规划这些辅助,让研究人员看清模型在裸奔状态下能不能自己读代码、写测试、修Bug。这不是给人用的,是给论文用的。

创造模式最疯。它在标准模式之上加了运行时检查工具,让Agent可以查看当前真实存在的所有服务、事件、工具和界面插槽。然后Agent可以用一个叫cordis_define的命令定义一个新插件,再用cordis_run把它挂进正在运行的系统中。新插件注册的新工具,在下一个Step重新组装提示词时,就出现在模型的工具清单里了。

你让AI帮自己造一个新工具,它真的能造出来,而且下一个问题就能用上。

会话日志:每一次犯错都有监控录像

DeepSeek Harness有一条硬规矩:模型能看到什么,就必须记下什么。系统使用只追加的会话日志——只往里添东西,从不删改。每次模型请求用了什么System Prompt、看到了哪些工具、调用了什么参数、工具返回了什么结果,全记下来。

这套设计有几个妙用。

第一,复盘。任务跑飞了,打开日志从头看到尾,比猜谜靠谱一万倍。

第二,恢复。程序崩溃了,重新加载Session,系统从日志里推导出模型下一次该看到什么历史。

第三,分支。从某一步创建一个分支,让Agent换条路继续试,原来的路径完整保留。

第四,压缩。上下文太长时,Compaction插件自动生成摘要,用摘要替代早期细节塞给模型。原始日志完整保留,不影响审计。

这就像公司把十年的原始合同锁在档案室,同时给项目经理一份两页摘要。档案没丢,日常工作也不用每次都搬出全部原件。

安全:门禁断电后自动锁死

AI能读写文件、执行命令——这两件事都指向你电脑上的真实资源。DeepSeek Harness的安全设计有几道硬防线。

第一道,先记调用再执行。模型说要删文件,系统先写进日志,再走审批流程。就算审批拒绝了,日志里也留着“模型曾经想这么干”的记录。

第二道,审批采用fail-closed——门禁断电后自动锁死。界面没有审批处理器、处理器报错、没返回合法结果,系统一律视为拒绝。不是“为了方便放你过去”,是“拿不准就给我停下”。

第三道,Guard只能收紧不能放宽。后一道安检发现了新问题可以拦人,但不能推翻前一道已经做出的禁止决定。

第四道,沙箱。文件操作可以限制在特定目录,Shell命令可以限制在特定白名单。

但实话实说,这套安全机制目前还是“理想很丰满”。2026年8月24日,奇安信披露了DeepSeek Harness一个未授权远程代码执行漏洞,CVSS评分9.8——极危。攻击者可以通过伪造HTTP Host头绕过大楼访问限制,获得DSH进程同等级别的系统权限。漏洞POC已经公开。官方在后续版本中修复了这个问题。但这件事说明了一件事:一个让AI能随便执行代码的系统,安全这根弦得绷到最紧。

子Agent:把Claude Code和Codex变成你的小弟

复杂任务经常需要分工。主Agent负责拆题,子Agent负责干活。

DeepSeek Harness没把子Agent写死成一种内部线程。它定义了一个统一接口,不同的Provider可以启动不同形式的子Agent:当前进程里的新Agent、从父任务历史Fork出来的Agent、通过ACP协议启动的外部Agent,甚至——Claude Code和Codex的子进程。

主Agent通过同一套工具发起委派、发送消息、查询状态或中断子Agent。底下跑的是内部子任务还是外部产品,由Provider决定,上层逻辑不用改。

这意味着你可以组一个“代码评审委员会”:DeepSeek主Agent拆题,Codex执行实现检查,Claude Code看架构,Fork Agent带着父会话历史核对用户意图,最后由主Agent汇总。

但有个细节容易踩坑。Fork子Agent只复制父Session中已经完整结束的Turn。父Agent当前正在执行的工具调用不会复制——因为它缺少对应的结果和结束标记,复制过去会形成不完整历史。另外,Fork传递的是对话历史,不是权限。子Agent知道父任务发生过什么,不代表它有权做父Agent能做的所有操作。

它到底能干什么?四个真实场景

场景一:Agent在对话中给自己造一个新工具。一个团队每次发布前要检查四件事:版本号、Changelog、测试、安装包体积。普通Agent每次都要分别执行这四个操作。在DeepSeek Harness里,你可以对Agent说:“给自己加一个发布检查工具,以后调用一次就把四项检查全做完。”Agent会检查当前运行时、定义一个新插件、把它挂进系统、注册新工具——下一个问题,这个工具就在模型的可调用列表里了。

场景二:把100个文件的审计任务拆成流水线。主Agent写一段Workflow脚本:为每个文件启动审计子Agent、统一返回结构化结果、只把高风险项送给验证子Agent复核、最后主Agent去重汇总。脚本可以并行启动任务、分阶段标记进度、为不同子任务选不同的模型路线。

场景三:给Agent加上定时提醒。“20分钟后提醒我回来检查部署结果。”到期后,Harness在原Session空闲时排入一个普通的Follow-up Turn。它更像贴在当前项目白板上的定时便签,不是云端调度器——进程关了提醒就停了,重新打开Session才恢复。

场景四:把Agent塞进CI脚本。Headless Profile接收一个任务、创建Session、打印最终回答、然后退出。CI脚本、Git Hook或其他自动化程序可以把DSH当成一次性任务执行器。如果是Python服务,官方还提供了Python SDK,通过JSON-RPC驱动一个无人值守的Coding Agent。

一个还没答案的问题

DeepSeek Harness发布48小时GitHub破10万星,一周三更,火得一塌糊涂。但有个问题至今没有明确答案。

这套“一切皆插件”的架构,在真实生产环境里到底能扛多大负载?

Cordis的时空可组合性在Koishi聊天机器人框架里跑了四年,有4000多个社区插件在生产环境中验证过。但聊天机器人和Coding Agent的负载模式完全不同。一个Agent执行一次任务可能触发几十次工具调用,每次调用都可能涉及文件读写、网络请求、子Agent派发。插件热插拔带来的灵活性,会不会在高并发下变成性能瓶颈?

另一个问题来自安全社区。CVSS 9.8的远程代码执行漏洞虽然已经修复,但它暴露了一个结构性问题:一个允许动态加载代码的系统,攻击面天然就大。官方在架构文档里写了一句大实话:DeepSeek Harness目前处于开发者预览阶段,正在快速迭代,未来会有破坏兼容性的修改。

所以回到开头那个场景。你对AI说“查完这十家公司的资料,整理成表格,比较产品差异,再写一份分析”。Harness帮你打开网页、下载文件、记录每一步、失败时重试、中断后恢复、删错文件还能查日志。

它确实在努力把AI从一个“只会聊天的脑子”变成一个“能动手干活的员工”。但这位员工还在试用期,工位刚装修好,安全门禁偶尔失灵,有些工具还没配齐。它能不能真正坐稳这个工位,取决于DeepSeek和整个开源社区能不能把这张“可以随便拆的装修图”,变成一栋经得起风雨的大楼。