不管哪个时代,人都会遇到同一道题:无论宏大叙事还是人生决策,面前问题太复杂,资源和时间却不够,必须决定先做哪个、放弃哪个。 (雷峰网) 从 1812 年黑格尔的辩证法,到马克思、列宁,再到 1915 年毛泽东在延安写下的《矛盾论》,一百多年里,这套思想最终落到了一个很实际的问题上: 复杂事物中矛盾很多,但真正重要的是找到决定其他矛盾的主要矛盾。
今天的大模型行业也不例外,当前大模型行业面临的主要问题有以下这些: 1. 模型能力的增长速度,同把这种能力转化成可靠产出的能力之间的矛盾(模型强,但产出物没价值) 。 2.算力资源受限,同能力需求无限之间的矛盾(人们总吐槽 AI 太傻)。
3.单价在快速下降,同真实账单在上涨之间的矛盾(模型便宜了,但每个月花的更多了)。 4.要做通用智能,同要交付一个能用的产品之间矛盾(简单的不好用,好用的不简单)。
这些矛盾才构成了交错向上发展的行业和机会。没有人能逃避这些选项, DeepSeek 也一样。
我们对 deepseek-v4-Pro以及 Harness 做了几轮实测:直接打接口的探针、七次编码任务运行(其中四次是只改一个变量的对照)、把上下文压到 92 万 token 的位置测试,加上把它 19.8 万行源码和 21.7 万行测试过了一遍。试图来回答以下问题: 1. v4- Pro 这个模型到底怎样,比 flash、preview 版本有哪些不同?
- 好多网友反馈接入其他 Harness 会降智是怎么回事? 3. 使用成本到底怎么样?
能否量化? 4. Harness 解决什么问题?
什么人适合它?总而言之,这几天的研究和使用下来还是很精彩的, 我们甚至能透过 v4- Pro 和 Harness 管中窥豹,看到一些 DeepSeek 对技术、对人性,甚至对世界的判断和认知。
01 先看模型:DeepSeek V4 Pro 到底强在哪里? Pro 很可能重做了一次非常先进的后训练 Pro和 Flash 这两个模型其实有挺多版本,我们一次性拉出来看下: 【Provs Flash 全参数对照,含字段释义】 我们会发现两个有意思的结论: 1.Pro 对比 flash,模型本身的层面在深度、宽度、注意力、专家池以及专家内部宽度都有很大进展。
2.但这五个维度都是预训练阶段就定性的,不是后训练带来的变量。 (有一样是 相同 的:每个 token 实际只激活 6 个专家,两个模型都是 6。
还有一处彩蛋,后面会再 call back: deepseek Harness 的出厂默认模型写的是 deepseek-v4-flash。 【packages/bundle/base/cordis.patch.yml 里 agent-default-model 】 为什么 Pro 正式版拖到 Flash 转正之后才公布?
坊间其实预测 Pro 早就该来了。我们都知道模型预训练定天花板,后训练定发挥。
如果去翻旧账会发现四月那版 v4-Pro-Preview 其实有一个缺陷:竞赛型代码题三项全场第一,但 Terminal Bench 2.0 只有 67.9。 7 月 31 日 Flash 转正,官方贴出它的 Terminal Bench 2.1 是 82.7 ,而同一张表里 Pro-Preview 是 72.1 。
也就是说 Flash 正式版的 Terminal Bench 已经比旗舰模型 Pro 的分数高不少了,我合理推测 DeepSeek 在 Flash 版本上尝试出了更好的后训练方法,因此 v4- Pro 被回炉重造。 【官方自测当前 v4 家族和几款旗舰模型的评测分数】 再看 v4-pro-0813 的几项跃升里边,正好 Terminal Bench 2.1 从 72.1 到 87.9 ,DeepSWE 从 12.8 到 62.7 ,内部全栈测试集从 41.8 到 71.1 。
我自己也出了两道题去验这件事,因为分数涨了和活能不能干好是两回事。一道是同一个改动要落到五处分散的调用点上, 其中一处是用字符串登记的,grep 根本搜不出来 ;另一道是两个前后串联的故障,修的顺序错了就白改。
在实测中 六次运行全部满分 ,那个搜不出来的点它也找到了。 (我们自己造的题、样本小,不与官方或第三方的分数并列比较。
也就是说这一版补上的是能自己把一件活干完的能力。以前估计得在旁边盯着,现在可以把一件有明确验收标准的活交出去,然后走开。
(而且做的更好了。但这张官方表还有另一半,中英文媒体都没提。
媒体的叙事是“逼近 Claude Fable 5”。而在 DeepSeek 自己贴的对照表里,Kimi K3 在多数 agentic 项上仍然领先 0813,比如 Terminal Bench 2.1 是 88.3 对 87.9,DeepSWE 67.5 对 62.7,Toolathlon 76.5 对 74.1,Agents' Last Exam 27.6 对 25.7。
0813 只在三项上领先。 (这是官方自测表,K3 与 GLM 的分数来源官方未说明。
大概 deepseek 想传递的叙事是发生在国产开源之间,并无心和国外闭源模型较真。还有一个更有意思的数据:官方 changelog 里 Flash-0731 和 Pro-0813 用的是 同一套内部测试集、同一个 Harness ,所以可以直接并排: 【Flash-0731 vs Pro-0813 同口径九项】 Pro 的总参是 Flash 的 5.6 倍、激活参数 3.8 倍。
但换来的是个位数的领先 。最难那一项 Agents' Last Exam 分别是25.2 对 25.7,几乎打平。
而且它自己那个框架的出厂默认模型写的是 deepseek-v4-flash;第三方评测机构 AA 的 coding agent 榜上,DeepSeek 那一行用的也是 Flash;两个老模型名下线前指向的同样是 Flash。 【AA 的 coding agent 榜上 DeepSeek 那行用的是 Codex+Flash】 几条独立线索都指向同一件事 : Flash 才是它认定的主力性价比档, Pro 是上限档。
但是官方并没有披露过 0813 这个版本重做了后训练,只说它建立在 Preview 的结构之上、外挂了一个投机解码模块。但同系列的 Flash-0731 有明文:"keeps the same model architecture and size … and was only re-post-trained"。
因此 Pro模型重新做过后训练是我们的单纯推断而已。 【Flash-0731 官方明文“只重做了后训练”】 还有个值得一提的行业现象,隔一天发布的 GLM-5.3也是同一个 744B 底座、不换架构、不重新预训练,全部提升来自延长后训练,也主打 agentic。
两家头部开源模型隔一天做了同一个动作是否说明 这一代旗舰升级的主战场,已经从预训练挪到了后训练。 1M 上下文的真相 这是本轮最独家的一处发现,而且任何人都能自己核对。
【Hugging Face 上 config.json 里的 rope_scaling 那几行】 65536 × 16 = 1,048,576,正好 1M。也就是说 这 1M 不是原生训练出来的,是在 64K 的基础上用一种叫 YaRN 的办法外推 16 倍得到的。
像一个只在 100 米跑道上练过的人,你让他跑 1600 米。也不是不能跑,但是很可能最后几百米的质量直线下降。
而且这在同行里是特殊的。三家都标 1M: 【三家 1M 的三条不同路径】 我们可以看到在三个都标 1M 的开源旗舰里 , 只有 DeepSeek 在配置里明确用了外推缩放。
Kimi K3 没有这个字段,它换掉了注意力机制本身;GLM-5.2 也没有外推参数,它把 rope_theta 拉到了 800 万。但必须说明配置只能证明是否在推理期做位置缩放,不能直接证明训练长度,所以准确说法是只有它明确用了外推。
另外 GLM-5.3 的权重开源延后约两周,这一栏对照的是 5.2 的可核配置。顺便一提:GLM-5.2 的架构类名叫 GlmMoeDsaForCausalLM,它的 indexer 字段和 DeepSeek V4 同名,index_head_dim 连值都一样是 128。
而智谱在自己的官方模型卡里明写:" GLM-5 also integrates DeepSeek Sparse Attention (DSA), largely reducing deployment cost while preserving long-context capacity." 这就不是推断了,是对方正面写出来的。 【智谱官方模型卡承认集成 DSA,且是正面致谢式表述】 那么按通常的工程认知,外推得来的长上下文代价会出现在窗口后段,也就是说越到后期质量越差。
我跑了个脚本实测了一下,把可客观判对错的事实埋进长文本的不同位置,看它能不能取回来。 【自测五个位置的命中率与埋点深度】 语料 3,857,465 个字符 = 923,858 个输入 token 。
五个位置各埋两条, 10/10 全部命中,零编造,零文档中未提及 。其中 95% 那个位置,落在约 90.2 万 token 处(真正的尾巴片段)。
所以结论是 外推并没有导致窗口后段衰减。不过 最后大约 8% 我们仍然没碰到,但足以说明 跑到 1440 米还没掉速,只是最后 160 米没测。
不过官方自己给 Claude Code 的接入建议里,把自动压缩窗口设在 768K,也就是 1M 的四分之三。他们的建议就是别把 1M 跑满。
【Integrate with Claude Code-768K 自动压缩窗口建议】 02 V4 Pro 到底贵不贵?单价偏贵,一项任务便宜 第三方评测机构 Artificial Analysis 明确把它的输入价标为 expensive。
同类中位数是每百万 token $0.33,它是 $1.32。但它每个任务只花 $0.25,在同批 106 个开源大模型里第二低。
【AA 每任务成本 × 智能指数,含缓存经济学】 比它强的 Kimi K3 每任务 $0.84,贵 3.4 倍;和它同分的 GLM-5.2 是 $0.32;最强的 Claude Opus 5 是 $2.34,贵 9.4 倍。就是说它起步价比别人贵,但路线短、绕得少,一趟算下来还算便宜。
真正省钱的是缓存 agent 干活的方式天生就是绕弯的。读一遍不够就读两遍,改错了再改回来。
绕弯就是烧 token。所以真正算账的时候不应该去看单价多少,应该去看完成一次任务要多少米。
我们在长上下文测试里正好量到了这个数: 同一份 92 万 token 的上下文,第一次提问花了约 ¥9.00,第二到第五次提问加起来只花了约 ¥0.28。五次提问里被缓存命中的部分完全相同:923,776 个 token,只有 143 到 151 个 token 是新的。
而我们四次编码任务的缓存命中率在 93% 到 98% 之间。这就像熬火锅底料。
第一次熬很贵,之后每次下菜只加一点新料。但底料只要被改动一点点,就得从头重熬。
也就是说让他多试几遍也没关系,反正大头出在第一次上面。省钱是写在工程里的 我们在它 219 个包里查到, 215个 README 都必须回答同一个问题:我对 KV 缓存前缀稳定性有什么影响。
而且它还有个只许规划、不许动手的 plan 模式。正常做法是把写文件、改代码这些工具从工具表里摘掉,摘了模型就调不到。
但是 dsh 没摘。出厂提示词里明写: The tool catalog stays the same across modes for request-cache stability … those tools remain listed only to keep the request shape stable. 【packages/bundle/base/cordis.patch.yml】 它宁可承担模型不听话、真去调用了被禁工具的风险,也要保住请求前缀不变、保住缓存命中。
因为很可能拿掉一个工具后整个缓存命中得重来。而且还有一个工程设定:工具结果超过 8,192 字符就裁、留头 4,096 尾 1,024;超过 50,000 字节直接落盘不进上下文;连给会话起个标题都设了 64 token 的输出上限。
每一处都在算 token 真不是愿景或者口号,DeepSeek 是真为你钱包着想。 【工程常量三连,都出自同一个文件 packages/bundle/base/cordis.patch.yml】 8 月 17 日 0 点涨价正式生效 (英文页写的是 16:00 UTC, Aug 16,恰等于北京时间 8-17 00:00)。
【 定价页峰谷两档价 + UTC 高峰时段脚注】 对旧价的倍数: 缓存命中涨 6 到 12 倍 ,未命中涨 1.5 到 3.0 倍,输出涨 2.25 到 4.5 倍。高峰时段是 UTC 01:00–04:00 和 06:00–10:00,也就是北京时间 9 点到 12 点、14 点到 18 点。
注意涨得最多的是缓存命中 。而我们四次编码任务的命中率在 93% 到 98% 之间(最高那次是 1,431,040 对 30,672)。
所以这次涨价真正肉疼的是那些把缓存用得最好的人。把前面几章串起来看,会发现同一件事在不同层面重复出现。
架构层:MoE 让总参像 1.6T、算力像 49B。定价层:单价偏贵、每任务第二低。
缓存层:92 万 token 第一次 ¥9、后四次 ¥0.28。工程规范层:215 个包必答缓存前缀问题、plan 模式宁可不摘工具、连会话标题都限 64 token。
DeepSeek 一直在做同一件事:用更少的算力和更少的上下文,买同样的产出。而当 DeepSeek 把自己的 Harness 也开源之后,我们发现,这种对计算成本的敏感已经不只体现在模型和定价上,而是直接写进了 Agent 的运行方式里。
03 为什么换个 Harness,模型就像“降智”了?社交媒体和知乎上早有用户实测:把 V4 Pro接到 Claude Code 里明显变差,同样任务换 OpenCode 就正常。
那位作者自己也说,分不清是模型的问题还是工具的问题。我们实际测试,打了接口,发现答案是 官方路由 导致的。
DeepSeek 为了让 Claude 生态的工具直接接过来,做了一层模型名翻译。 Anthropic 那边有三档(Opus 旗舰、Sonnet 主力、Haiku 轻快),DeepSeek 只有两档,于是 claude-opus 对应到 Pro,而 claude-sonnet 和 claude-haiku 一起对应到 Flash 。
响应里的 model 字段就是 这么回的。 【DeepSeek API Docs-Anthropic 三档压两档的映射】 问题就发生在 Sonnet 这里,这在 Anthropic 那边是干活主力,能力离 Opus 更近,但在这套映射里被和 Haiku 一起归到了 284B 的 Flash。
这是可以定向做的兼容层。我们试了非 claude 的名字:foobar-9000 和 gpt-5-turbo 都直接报 400,错误信息明说只支持那两个 DeepSeek 模型名。
只有 claude-* 开头的名字才会静默落到某个 DeepSeek 模型。所以 Claude 生态的用户命中它是必然的并不是意外。
还有一个更容易踩的坑: 配置里写着任何非当前代的 claude 名字,都可能落到 Flash 。比如claude-3-opus-20240229 名字里有 opus,但最后落到的是 Flash。
而 claude-opus-4-6 落到 Pro。如果开发者照抄老教程、老脚本,那几乎必然会踩到这个坑里,你以为用的是 pro,实际是 flash 在跑。
那这时候有用户要问了,好家伙你不会收着我 Pro 的钱,实际跑 flash 的质量吧? !
我们实际打了 23 发会被映射到 Flash 的请求、把累计输出堆到 10.3 万 token,让余额跳动 ¥1.00。四套价格假设里最接近的是按 Flash 计价(预测 ¥0.925,差 ¥0.075;次近的“按 Pro”差 ¥0.388,远 5 倍)。
所以这不是钱的问题,主要问题是我以为在用 1.6T 的旗舰,实际有一部分活是 284B 的小模型在干,而且没有任何提示。如果开发者拿这样一个环境去评测和跑任务,其实干活的是两个模型的混合物。
因此对开发者而 言,用 Cl aude 生态的工具接它, ANTHROPIC_MODEL 、 ANTHROPIC_DEFAULT_OPUS_MODEL 、 ANTHROPIC_DEFAULT_SONNET_MODEL 、 CLAUDE_CODE_SUBAGENT_MODEL 这四个环境变量要一起显式覆盖。这次测试也让我们意识到,到了 Agent 阶段,只讨论模型本身已经不够了。
模型接入什么 Harness、看到什么工具、如何管理上下文,同样会直接影响最终表现。 04 DeepSeek Harness : 它到底解决了什么问题?
8 月 13 日晚 19:19,V4-Pro正式版公告发出。 76 分钟后,DeepSeek 把自己的那套脚手架也开源了。
最后一条它写在了仓库描述第一行: 【Harness 时间线十行 + 单向开源四字段】 官方分数终于可以复现了 厂商报跑分,用的都是自家的脚手架,而脚手架不公开。所以我们看到的分数是这个模型配那套脚手架的成绩,实际上不是这个模型的成绩,因为环境拿不到也就没法复现。
DeepSeek 自己在公告脚注里也说明了这件事:0813 的 Code Agent 成绩是用「DeepSeek Harness 极简模式」加 max 思考档跑的,并主动声明 “ 其他框架下结果可能略有不同” : 它把这套配置直接放进了仓库: 【 minimal.cordis.yml 的关键几段】 极简模式下模型能看到的工具只有两个:一个持久 bash、一个字符串替换编辑器。上下文压缩:关闭。
系统提示词:一句话。而流空闲超时是 172,800,000 毫秒48 小时。
他们预期的是能跑两天的任务。而有意思的是 Claude Code 恰好是反过来的:重系统提示词、一大堆工具、带自动压缩。
两者几乎是对立的两端。我们照它跑通了,两道题同样满分。
那官方备注的“略有不同”到底有多少?我们用同一批题跑了两边: 【实测三配置 × 两题矩阵】 同一道多文件重构题,标准模式走了 42 步 ,官方极简模式走了 65 步( 多 55%)。
另一道终端修故障题,20 步对 27 步,多 35%。两道题极简模式都做对了,但改动密集那道题的成本高了 58% ,累计的缓存命中量是标准模式的 2.4 倍 (它没有上下文压缩,65 步全累在一条链上)。
咱比喻一下,相当于只给你一把瑞士军刀去修车,对比给你一整套工具箱。军刀什么都能干一点,所以你确实能修好,但要多拧很多下。
工具少不等于省,它是用步数换了工具数。 Everything is a Plugin Everything is a Plugin那到底什么是 Plugin?
我理解其实就是 OS 和 APP 的关系,苹果造 iPhone 的时候,根本不知道十年后会有个叫「小红书」的 App。核心没变我只需要加强平台环境,能力却无限长出来,这就是插件能带来的想象力。
dsh 把这件事推到了什么程度呢?模型适配器、工具注册表、会话日志、沙箱策略、 连派活的那个主循环本身 ,都是插件,都能从配置里换掉。
听上去都是附加能力嘛,但这和 skill 本质的不一样是,skill 是教模型做事,但dsh 的插件是能把底层都掀了,包括文件系统后端、压缩策略、循环驱动这些内核件。而且它还多走了一步,也是自进化这个愿景的实际工程落地: 它给模型准备了五个工具,让模型在运行中的进程里自己写插件、挂载、执行、停止。
【出自packages/extensions/tool-cordis/README.md 头两段】 官方原文第一句: "The self-referential Cordis toolset: five model-facing tools over the live runtime in the current DSH process." 其中 cordis_define 让模型自己写一个包——名字、用途、宿主端代码,可选浏览器端代码;语法检查后登记,用户会在对话里看到一张带启动按钮的卡片;cordis_run 在一个 vm 沙箱里执行它。这相当于 允许一个 App 在运行时自己写一个新 App,然后立刻装进系统 。
而官方对这件事的说明非常坦诚: 沙箱只隔离全局对象, 不是安全边界 …… 宿主域的辅助函数使逃逸成为可能。把这套工具当作 bash 权限来对待。
也就是说它递给你一把上膛的枪,同时非常认真地告诉你这把枪没有保险栓。实话说“一切皆插件”做到这个程度,已经解释不通了。
因为插件一直以来追求的是灵活性,但灵活是有边际的。把工具做成插件我懂,把压缩策略做成插件我也懂,但把派活的主循环也做成插件、还专门给模型开一套“自己写插件”的工具,这已经超出方便用户自定义能解释的范围了。
它有一个特性, 可以把竞品当子代理,也就是说可以让 C laude、 C odex 作为小弟来给 dsh 打工。我们把这条实测了一遍: 【 测试任务 E7 的 ps 输出, dsh 主进程 + 被拉起的 claude 子进程】 C laude 子进程真的被拉起来了 ,我们还抓到 Claude Code 正在 clone 它的官方插件市场。
所以这条路是真接到 Claude Code 二进制上的,不是配置摆设。但委派连续两次失败 ,返回 Error: subagent run failed。
模型于是自己降级到普通子代理完成了任务,并主动交代了它换了工具、以及为什么换。 【agent 输出里承认降级】 V4 Pro和 Harness,是两种完全不同的产品 用 V4- Pro 和 用 dsh 是两件不同的事。
前者很简单:拿个 API key,接进现在用的 Claude Code、Codex、OpenCode 就完事了(参考第二章那四个环境变量),大多数人需要的只是这个。而 v4-Pro 几乎是一个产品了,成品交付到用户手里。
但 dsh 却完完全全是一个纯粹的开发工具,绝对不是一个高度集成、封装好一次性交付的产品。用好 dsh 需要 以下 四样东西 : 你得会改配置,并且知道自己在改什么。
模型选哪个、工具给几个、上下文压不压、沙箱怎么开,都在 YAML 里,都没有推荐设置这回事。你得自己判断该开哪个模式。
它给了你一个开关,工具是“直接调”还是“写程序调”。而这个开关 在我们两道题上的结论是相反的 :一道贵22%,一道省23%。
这条分界线我们跑了四次才摸到。你得能承受东西说变就变、而且出了问题没人接。
它自己标着 developer preview,明写会有破坏性变更。而 Issues 是关闭的, 你不能提问题,只能自己看代码。
它的架构文档第7行给的建议是:“建议用一个 agent 来探索这个代码库。你得自己判断安全边界。
就是上一章那把没有保险栓的枪。它把风险写得很清楚,但决定要不要开的是你。
总结一下: 如果你是在右边那一列,答案很干脆:用 API 接你现在的工具,别装 dsh。我们有一发 92 万 token 的请求在客户端被超时 kill、本地什么都没落盘, 但服务端已经完整处理并计费了,那 ¥9.00 就是这么花掉的。
客户端超时不等于没花钱,菜照做、钱照付,只是我没吃上。还有一个正面观察 ,虽然样本只有一次:委派工具连续失败两次之后,模型没有硬撑也没假装成功,它换了方案完成任务,并主动交代自己换了工具、以及为什么。
回到上面那张表。你会发现 dsh 可能压根没打算服务这些场景。
这就有意思了,为啥 DeepSeek 交付的是这样一个东西呢? 05 DeepSeek 把判断权交给了谁?
一切从矛盾论开始,也从矛盾论结束,事物的本质就是矛盾的。解决一个矛盾,就产生新的矛盾,也就留下新的机会,如此循环。
以下就从这次研究和实测来聊聊我看到的 DeepSeek 解决和产生的新矛盾: 自由和选择成本一起交给了用户 【GitHub 仓库页顶部:star / fork / watch 三个数字,注意导航栏没有 Issues】 事实是四条 API 字段:Issues 功能关闭、外部 PR 总数为 0、只开了讨论区、 330 个 watch 对 85,268 个 star (数据抓取于 2026-08-14)。而仓库里带着完整的 issue 治理流水线——policy、lifecycle、模板,连单测都写了,就是没开。
【.github/workflows/ 里的 issue 治理设施】 如果目标是让丰富的个体自由创造,为什么不接一个外部 PR?真正指向共同创造的开源都会张开手接贡献。
它的姿态好像是给你自由改,但别来跟我协作。像是宜家把板材、螺丝、图纸全给用户,但不接受用户的任何改进建议。
【docs/architecture.md 第 7 行 dsh 建议用一个 agent 来读,而不是自己看】 但如果我们转换视角,在经历上面这些拆解和研究后你会发现,在它的假设下这其实是自洽的。如果每个人都知道自己要什么,那提 issue 让我改本身就是多余的,你直接拿去改你自己那份不就好了。
我们实测了两道同样的题,但结果方向相反: 【 三配置 × 两题矩阵】 多文件重构那道题,写程序模式贵 22%、慢 34%;终端修故障那道题,省 23%、快 38%。为什么?
工具调用次数确实降了(67 次到 44 次),但输出 token 涨了 42%、思考 token 涨了 53%。官方自己也留了余地说Code Mode “并不承诺普遍减少 token”。
【出自 packages/core/tools/README.md】 也就是说你究竟想要什么,你能付出多大的代价,这都需要你自己想清楚,或者亲自去尝试摸清楚。就好像那句话说的,自由不等于繁荣,如果你不是对自由有着极其强大的掌控能力,那结果很可能不尽人 意。
DeepSeek 把选择权给你的同时,也把做出这些选择所需要的认知成本交给了你。 Harness 到底是给人用的,还是给模型用的?
【这个代码库是为谁组织的:九条反常 × 两种解释】 从上图也可以看出,这个代码库是按对 Agent 友好而不是对人友好来组织的。九条证据全是公开源码,任何人都能验。
至于他们这么做是为了让模型自主迭代,(当然这是我的判断,并不是官方说法)。回到之前的问题,“一切皆插件”做到“连主循环都能换、还给模型开一套自己写插件的工具”这个程度,用“方便用户自定义”是解释不通的。
但换一个假设就全通了 : 如果它期待的使用者不是人,而是模型自己呢?一个要长期自己跑、自己改自己的系统,需要的恰恰是这些: 每一环都可替换(不然改不动) 决策全部留痕(686 篇,连被否决的 11 篇都留着) 测试比源码还多且每个文件 100% 覆盖(不然改坏了没人知道) 包拆得极碎(改动面才小) 单位成本压到极限(不然跑不久) 在这个假设下,这几处矛盾也全部顺理成章。
关掉 Issues 的假设是如果迭代的主体是模型,人提的 issue 本来就不在这条链路上。为最高远的目标做最琐碎的事情的假设是长期模型自己跑,单位成本就是天花板。
我也算在产品岗位上摸爬滚打多年的老人了,我理解的产品是建立在对用户的 N 多判断和假设之上的。用户是谁、他要干什么、他会先点哪里、他愿意为哪一步多等三秒,每一个默认值背后,都是我们替他做完的判断。
但我发现 DeepSeek 拒绝做这些判断。它没有推荐设置、没有默认模式、不告诉你哪个开关该开, 因为给你一个默认值,就等于替你判断了一次。
比如 iOS 是平台,可 iPhone 对普通用户是完全可用的成品,你不装任何 App,开机就能打电话、拍照、上网。苹果做了两层:对开发者是平台,交出判断权;对用户是产品,承担判断。
易上手难精通的真正含义,就是这两层同时存在。而 dsh 只做了平台那一层。
也就 是说 它是一个只有内核、没有出厂系统的 OS。真正的对