DeepSeek Harness 原理解析 · 交互式科普
一条消息的旅行
这是 DeepSeek 开源的 AI 编程框架 —— DeepSeek Harness 的原理解析。你跟 AI 编程助手说一句话,按下回车,接下来到底发生了什么?这个网站带你跟进去看一遍,全用大白话。
往下滚,跟着这条消息,钻进 Agent 的身体里看一看。
出发前 · 30 秒认识主角
DeepSeek Harness 是个什么?
先打个比方。你用的 AI 编程助手,能聊天、会改代码、能跑命令,看起来很聪明。其实「聪明」的是大模型;让这些能力真正运转起来的,是套在大模型外面的那台「发动机」——行话叫 agent harness。
DeepSeek Harness 就是 DeepSeek 把自家这台发动机开源了出来。这个网站不讲它怎么用,讲的是它内部是怎么设计的。
准备好,跟着你这条「帮我修一个 bug」,进去走一趟。
第 1 幕 · 积木
它不是一个软件,是 50 多块积木拼的
一般软件是一个整体:想改个功能,得拆开机器找零件。DeepSeek Harness 不一样——它没有「主程序」。聊天、跑命令、读文件、记笔记……每一项能力都是一块独立的积木(行话叫「插件」),整个项目有 50 多块。
积木是怎么拼在一起的?
想象一个插线板。每块积木往上插的时候,都要先说清两件事:「我提供什么」(比如「我负责连接大模型」),和「我需要什么」(比如「我需要先有人管记账」)。
插线板按这些声明自动安排开机顺序:被需要的先启动,需要别人的后启动。也没有哪块积木能赖着不走——拔掉一块,它留下的痕迹会被收拾得干干净净。
那谁决定插哪些积木?
一张「装配清单」:一个叫 cordis.yml 的配置文件。清单上写着要哪些积木、每块怎么设置。想换个「大脑」?把旧的拔下来、新的插上去,改一行清单的事。
这是 DeepSeek Harness 最重要的设计思想:一切都是积木。连「它怎么思考」这件事本身,也是一块可以换的积木。
天上这些星星,就是真实的积木。
你看到的这片星空不是装饰——每一颗星都是 DeepSeek Harness 里一个真实存在的插件。鼠标放上去,能看到它叫什么、负责什么。
星星之间还有条规矩:积木只许认「接口」,不许认「具体某块积木」。所以任何一块坏了、想换了,拔下来换一块,旁边的星毫无知觉。
第 2 幕 · 三件套
每项能力,都被拆成了三个零件
DeepSeek Harness 有个讲究:光做出一块「能力积木」不算完,必须把它拆成三个零件分开做。这个讲究有个学名,叫「能力接缝」。
别管学名。记住插座、电器、插头,就够了。
拿「让 AI 能跑命令」这项能力举例:
先定插座(dsh-shell):规定「命令执行器」长什么样——给它一条命令,它得能跑、能回结果。只有规定,没有一行干活的代码。再做电器(bash-local):真在你电脑上跑命令的那个家伙。最后做插头(tool-bash):把执行器包装成 AI 能看懂的工具,递到它手里。
费这个劲干嘛?
为了「换」的时候不疼。哪天不想让 AI 在你电脑上跑命令了,想挪到云端沙箱里跑?只换电器,插座和插头原封不动,AI 甚至毫无察觉——就像换发电厂,不用换你手机充电器。
DeepSeek Harness 真的演示过这个操作:改一份配置,执行环境从本地搬到云端,AI 看到的工具说明一个字都没变。
刚才那三块积木,是你(或者滚动替你)装上去的。真实世界里也一样:DeepSeek Harness 开机时读装配清单,把积木一块块插好、点亮、自检——一台 AI 助手就这么诞生。
没有魔法,只有拼装。
第 3 幕 · 干活的节奏
它干活的方式,跟你修东西一模一样
想想你怎么修自行车:看一眼哪里坏了 → 琢磨 → 拧一下扳手 → 再看看 → 接着拧。DeepSeek Harness 干活的节奏跟这个一模一样,只不过扳手换成了命令行。
这个节奏有个名字:agent loop(Agent 循环)。它是整台发动机的心脏。
一圈下来,具体是这么走的:
你的消息先进「收件箱」排队。轮到它了,助手先翻自己的笔记(记忆)和工具箱(能用的命令),一起打包发给大模型这个「外脑」。
外脑回话:要么直接答复你,要么说「帮我跑一下 npm test」。助手就真的去跑,把结果拿回来给外脑看,外脑再决定下一步。一直转到任务完成为止。
你平时看到的「打字机效果」,就是这么来的。
外脑每蹦出一个字,助手立刻记在账本上、同时显示给你。所以你能看着它「边想边写」,而不是干等半天、突然蹦出一大段。
出错也不慌:比如网络断了,有专门的「重试商量机制」——挂在那儿的插件会站出来说「我再试一次」,就像你刷新网页一样自然。
这个节奏本身,也能换。
还记得「一切都是积木」吗?「干活的节奏」也是一块积木。DeepSeek Harness 在节奏的每个节点都留了「挂钩」,别的积木挂上去就能插手——第五幕要讲的「前情提要」,就是挂在「每圈开始前」这个钩子上的。
其实 Claude Code、Cursor 这些工具,心跳都是这个节奏。看懂这一圈,所有 AI 助手你就懂了八成。
第 4 幕 · 账本
一本只加不删的账本
你跟它说的每句话、它的每句回答、它跑的每条命令和结果——全都按顺序记进一本账。这本账有个硬规矩:只准往后写,不许涂改,不许撕页。
为什么要记这么细?
因为 DeepSeek Harness 立了条铁律:外脑能看到的东西,必须能从账本里重新整理出来。它干脆不在脑子里另存一份「聊天记录」——每次问外脑之前,现场翻账本,把对话整理出来。
好处是:账本成了唯一的真相。脑子会乱,账本不会。
这本账能干嘛?用处大了。
聊天中断了想接着聊?翻到账本末尾接着记就行。想把一个对话分成两条线各聊各的?把账本复印一份,各写各的。想看看它上次到底怎么搞砸的?把账本从头翻一遍,一秒不落。
记账格式也管得很严:每条账是什么类型都要先登记;读到不认得的账,宁可报错,也不瞎猜。
连「哪些账给外脑看」都分得很清。
你的消息、命令的结果,这些是「正账」,要给外脑看;而「这圈活几点开始的」这类记号是「便签」,只用于内部管理,不进外脑的眼。一本账,两类条目,整理的时候各归各位。
第 5 幕 · 前情提要
账太厚了?写个「前情提要」
外脑的「工作台」大小是有限的(行话叫上下文窗口,DeepSeek 的模型是 12.8 万字)。账本越记越厚,工作台总有快堆不下的那一天。怎么办?
想想电视剧每集开头的「前情提要」。
四十集的剧,不可能每集都从头放一遍。于是开头来 30 秒:「上回说到……」——观众立马接上。DeepSeek Harness 干的就是这件事:把前面一大堆旧账,请外脑自己读一遍,写成一页「前情提要」。
什么时候写?两个时机:每圈干活前量一量,账本快满了就先写(防患于未然);或者外脑直接喊「装不下了」,立马写完再接着干。这个过程的学名:compaction(压缩)。
关键是:提要盖不住原件。
最近的几页账原样保留——刚发生的事最要紧;前面的旧账被「前情提要」盖住,外脑从此只读提要。但旧账本身一页都没撕,你想翻,永远翻得到。
还有个细心的地方:写提要时,绝不把「一条命令」和「它的结果」从中间撕开——撕开了外脑就看不懂,就像前情提要剪到一半戛然而止。
所以「压缩」是个准确的名字。
牺牲的是细节,换来的是空间;而且牺牲的只是「外脑眼前的」——账本上一字未动。上一幕那条只加不删的河,一滴水都没有少。
第 6 幕 · 帮手与签字
能喊人帮忙,但大事要你签字
任务太大,一个人干不完?DeepSeek Harness 可以喊「帮手」——派一个子代理(subagent)出去单干。但有一条铁规矩:危险的事,必须你点头。
帮手是怎么干活的?
就像你把一件事交代给同事:「帮我把这个仓库的测试全跑一遍,告诉我哪几个挂了。」同事怎么跑的、中间踩了什么坑,你一概不关心——他回来只说一句:「3 个挂了,名单在这。」
帮手也一样:带着自己的独立记事本出去干,回来只交结果。帮手还能再派帮手,但最多传三层——防止无限外包。
为什么要这么「见外」?
为了保护主对话的工作台。帮手干活的琐碎过程要是全倒回来,工作台一下就满了——就像你不需要知道外卖员路上闯了几个红灯,你只需要饭。
派帮手时还能「按需配装备」:派出去查资料的,就不给它删文件的工具。多大的事,配多大的权。
最后是「签字」——它对世界的承诺。
删文件、推代码、跑陌生命令……碰到这类危险动作,它会停下来问你:准,还是不准?命令行里问你,网页上弹窗问你,总之必须你亲口说「行」。
万一出故障、没人理它呢?一律当「不准」处理。就像保险丝:宁可断电,不可烧房。能力越大的 AI,刹车越要灵。
终章 · 把机器拆开
现在,DeepSeek Harness 你懂了八成
回顾这趟旅行:它由 50 多块可插拔的积木组成;每项能力都拆成插座、电器、插头三件套;它干活就是「看一眼、想一下、动一下、再看一眼」的循环;一切都记进一本只加不删的账;账太厚就写「前情提要」,原件永存;它能派帮手单干,但危险动作必须你签字。
想再深入?这个团队连「为什么这么设计」都写了下来:设计笔记里记着每个决定否决过什么方案,事故报告里复盘着每次翻车的根因——比代码本身还好看。