DeepSeek Harness从开机到拆开 一个不写代码的人,把一个刚出厂24小时的agent框架装在自己机器上跑穿了。这本书记录它此刻的样子。 DeepSeekHarness—FromFirstRuntoTakingItApart 信息来源:官方仓库与文档· 683篇设计笔记考古·本机一手实测文档版本:v260814发布时间:2026-08-14 (build #0)涵盖内容:四种模式·从Claude Code搬家·会话事件流· PTC模式·自我改造·事故复盘 花叔 花叔 本文档记录的是DeepSeek Harness v0.1开发者预览版发布当时的状态。该项目仍在高速迭代,接口会有破坏性变更,内容的时效性仅供参考。 目录 CONTENTS §00序章:探索未至之境 IntotheUnknown 这六个字是它首页上写的。气势有了,但它没说往哪儿探索。我探到的第一样东西是这个:一场对话还没结束,模型手里那份工具清单,自己多出了一行。 那份清单,从32行变成了33行 每次开口之前,产品都会把「你此刻能用哪些工具」列一份清单递到模型眼前。那天下午,那份清单在一场对话没结束的时候,从32行变成了33行。多出来的那一行是它自己写的。 我没重启,没装插件,没改配置。我只是让它先看看自己此刻长什么样,然后现场给自己造一个能数汉字的工具,造完挂上去,立刻用它数一句话。它翻自己的安装目录、读自己的类型声明,真写出来一个,挂上去,数了「探索未至之境」,答6。 屏幕上这一下几乎看不见,我是后来翻会话日志才看见那两份清单并排躺着,一份32行,一份33行。它不是出厂就会这一手,那只手也活不了多久——§07整章讲它是怎么发生的、边界在哪。 这一下之所以可能,跟它自己是怎么造出来的有关。所以先说你装的到底是什么。 你装的到底是什么 先把称呼的事说了。官方通篇讲「面向全球Harness开发者」,我第一次读也犹豫了一下:我从来不会写代码,做的产品全是AI写的,算不算被点到名的人。算。harness直译是「挽具」,就是套在模型外面的那层壳。模型是厨师,harness是厨房,会用厨房的不必是厨具工程师。 第二件事:deepseek.com上打开的是聊天页面,你说话它回话,碰不到你电脑里的东西。DeepSeek Harness(往下用它的命令名dsh称呼)装在你电脑上,能读你的文件、改你的文件、替你敲命令。模型还是那个模型,多出来的是一双手。官方给了两种形态,一种带网页界面,一种没界面,一条命令扔进去它自己干完。 但这只是一半。另一半,内测开发者Jiayuan Zhang(下文简称JY,@jiayuan_jy)用一个类比讲清楚了,我认为是全书最好的一句解释: 「可以把DSH想象成一个乐高汽车玩具。DeepSeek官方提供的这个Coding Agent,只是他们自己拼出来的一套官方预置。你完全可以把里面的零件换成自己喜欢的:换引擎、换轮胎、换挡风玻璃,或者加装其他模组。甚至最后拼出来的东西,也不一定还是一辆汽车。」 ——Jiayuan Zhang,2026-08-13https://x.com/jiayuan_jy/status/2087911060154314963 所以它是同一样东西的两面:一个装上就能用的编码agent,和一套能拆开重装的框架。本书前半讲怎么开走那辆车,后半讲怎么拆。 类比有一处失真:乐高拼错了车立不起来,你一眼看得见;这东西拆错了通常是安静地不工作,某个零件永远卡在「待加载」,一声不吭。§11讲这种沉默的失败。 第一个问题:要不要钱 要。它跟Claude Code、Codex有一处结构性不同,不先说清楚,后面的数字都会被误读。那两个主流工具走的是订阅制,交月费,额度用完就被拦在门口。dsh没有订阅这个选项,四层凭据全是API key,仓库里连订阅态这个概念都不存在。翻成体感就是:不会有任何东西在你花超之前叫停你。 那到底多少钱。我在本机用真key跑了同一个任务(读四个文件、跑一遍验证、写一份README),从会话日志里逐笔读的账:同一件活,flash两分多钱,pro七分钱,三十几秒跑完。一天跑一百次,两块四毛钱。完整账单、每一项花在哪,§06逐笔拆开。 一条提醒:官方已公告2026年8月17日0点(北京时间)起改成分时计价,按峰段算约0.09元一次。你读到这里时价格表可能又变了,以官方页为准。 第二个问题:我的东西会不会传出去 这题分三段答,因为「它跑在我电脑上」最容易被误读。 第一,进程在本地,对话要出门。负责思考的是DeepSeek服务器上的模型,你让它读的文件,内容得发过去才能换回回答。所以心智模型是:文件躺在本地,但你让它看的那部分会离开这台机器。 第二,遥测默认是关的。出厂状态下就是禁用,没有任何遥测记录离开进程。 第三,有一样东西关不掉。第一次通过鉴权之后,本机会生成一个匿名编号,之后每次发给DeepSeek的请求都带着它,关遥测的开关不影响它。这条不是谁挖出来的,是他们自己写在对应模块README的「已知限制」一节里。 第三个问题:它会不会弄坏我的电脑 出厂状态下我认为风险可控,依据是三档沙箱加一个审批策略。 审批策略出厂是「问」。agent想越过工作区边界时,输入框会被一张审批卡片整个顶掉,上面写着它想干什么、为什么,下面两个按钮:拒绝,允许一次。 两个细节值得提前知道。没有「总是允许」这个选项,也没有地方记住你的规则,每次越界都得亲手点一次;点了拒绝,那条命令一个字都没执行过。 一处必须说出来的空白:这套三档词汇只管文件,不管网络。这是官方文档明写的。沙箱拦得住「改你的文件」,拦不住「往外发请求」。 那道四选一,我替你做了 界面左上角的下拉菜单里,四个模式排成一列,写法平行,难度却不平行。我第一次打开,四行字读完还是不知道该点哪个。把四份配置逐份拆开之后才看明白,它们其实是新手区、高手区、跑分区和极客区,只是界面上没有一个字这么告诉你。 所以我直接替你做掉这个决定:先用标准模式,另外三个后面再说,现在别管。另外三个各有各的用途,没一个是「更好的标准模式」。 四个模式各自其实是干什么的、哪个归哪一节讲,§03那两页有一张表,一眼看完。 还有一条现在就得知道,撞上会很难受:模式只有在会话还空着的时候才能切。聊到一半发现选错了,换不了。为什么这么设计,§03说得最清楚。第一句话打进去之前,先看一眼左上角。 最后,诚实的那部分 这产品公开当天,仓库建起来三个多小时star就到了两万七,我在8分钟里取了两次,中间差830颗;第二天凌晨35.0k,等这本书写完是四万出头。MIT协议,开源得彻底。但它现在什么状态,最有资格说的还是前面那位JY,同一条帖子里他写:「如果拿Coding Agent的标准来说,当前DSH的体验确实不如Claude Code / Codex那么完善。整个项目还很早期,接口一直在变化,插件生态也才刚刚开始,质量肯定是层次不齐的。」 12,293次提交堆在这儿。右上角那个star数是2026年8月14日凌晨拍的,35.0k;我第一次取数时它是19,296,写完这本书时是四万出头。一天翻一倍。 一个参与内测一个月的人都这么说,我没必要替它打圆场。讲清楚「它是什么」是官方文档的活;这本书只写我在自己这台电脑上跑出来的东西,包括它做错的、没做完的、文档跟实际对不上的地方。 它能给自己长出一只手,是因为它自己也是拼出来的。往下先把这台机器打开——十分钟,让它干成第一件活。 §01十分钟,让它干成第一件活 TenMinutestoYourFirstResult 官方那句「在已安装Node.js开发工具链的系统中」,一句话里塞了三个坎。我不写代码,所以先把这半句话拆开。这一节不讲它是怎么造的,只回答一件事:你坐在电脑前,从零到它替你干完第一件活,中间会经过哪几个屏幕、哪几个坑。全程我跑过一遍,包括那个官方文档里没写、撞上才知道的顺序坑。 先把那半句话拆开 「在已安装Node.js开发工具链的系统中,可以使用npx命令快速启动」。三个坎挤在一句话里,密度太高,我们一个一个来。 Node.js你可以当成一个底座,装完它,电脑就能跑某一类程序。装完你在桌面上看不到任何图标,它只是躺在那儿等别的东西调用。「开发工具链」听着像一整套东西,对你来说就是装Node.js这一件事。npx是Node.js自带的一条命令,不用另外装。 那这行命令打在哪?打在终端里。Mac上按Command加空格,输入「终端」回车,跳出来一个只能敲字的窗口,那就是。Windows上它叫「终端」或「命令提示符」,开始菜单搜得到。 先敲一行,确认你有没有: node -v 回你一个v开头的版本号,就是有。回你command not found,就是没有,去nodejs.org下载安装包双击装完,回来再敲一遍。 这里有一处空白得说清楚:官方从头到尾没说要哪个版本的Node.js。仓库README只有一句「InstallNode.js」,发布出去的那个包里连版本门槛都没写,也就是说安装器不会替你拦住一个太老的版本。我这台是v26,跑通了。更老的版本会怎样,我没测,官方也没写。 然后就是那一行: npx@deepseek-ai/dsh web 敲下去之后,屏幕开始滚字。别慌,也别以为它卡了,它在下载。这个下载有多大?我量过:本机一份完整的安装包占342MB,中间没有百分比也没有进度条。已经有Windows用户在官方讨论区报告,第一次跑了8分多钟,屏幕上没有任何进度反馈(讨论帖#176)。滚完之后它会打印一个网址,形如http://127.0.0.1:3080,最后那个端口号不一定每次都一样,以你屏幕上打印的那个为准。 342MB这个数不用信我,装完你自己称一遍,一行命令: du -sh~/.npm/_npx/*/node_modules 它把npx缓存里的每一份都列出来,装了dsh的那一份,我这台打出来是342M。 它不会自动弹浏览器。你得自己把那个地址复制到浏览器地址栏里回车。127.0.0.1是「这台电脑自己」的意思,不是什么内部测试地址,你可以放心打开。 一个只有量过才知道的浪费:我这台机器上躺着三份一模一样的安装包,合计约1GB。原因是我三次敲的命令写法不同(加不加@latest、加不加版本号),而npx按命令原文缓存,写法差一个字就再下一份。所以想卸干净,光删掉那个.dsh文件夹是不够的。 要不要key,key从哪来 装的时候不要,跑起来之后要。 网页打开的第一屏是一个弹窗,标题「内测声明」,正文一段「0.1版本仍处在面向Harness开发者进行测试的阶段」,底下一个「继续」。点它。如果这台机器上还没有可用的模型,紧接着会弹第二个框,让你填一个DeepSeek的API key。 这里是很多人真正卡住的地方,把话说白:你在deepseek.com上聊天的那个账号,和这个key不是一回事。key要去DeepSeek的开放平台单独申请,按用量扣钱。我自己是订阅玩家,各家的会员买了一堆,平时几乎不碰API,这把key是为了跑它才去开的。一次任务到底扣多少,§06里拿实测账单算给你看,这里只说一句:跑几个小任务不会让你破产,但它确实在花钱,不是免费的网页版。 填进去的key落在你自己电脑上的~/.dsh/.credentials.yaml里,明文,权限是只有你本人可读。页面这边只拿得到一个打过码的回执,不回显原文。这个设计有一处坦白得让我印象很深的地方,留到§02讲权限的时候说。 顺带记一个报错。如果这个文件的权限被谁改宽了,整个程序会直接起不来,报错原文里会把修复命令给全: credentials-local: /…/.credentials.yaml is readable beyond itsowner (mode 644); run "chmod 600 /…/.credentials.yaml" be