同在做编码 Agent,两边的数字几乎不在同一个量纲上:一边是 12.9 万星的单体命令行工具,一边是 86 个包、99 个"可替换插槽"的宿主框架。这不是大小之别,是两种收敛不确定性的方式。
先摆两组数字:
Codex:一个 Rust 写的单体命令行工具,129,606 颗星,自述是"跑在终端里的轻量编码 Agent"。npm 上累计发布过 5,499 个版本,过去五天里从 0.163.0 发到 0.164.0-alpha.3,中间十几个 alpha。几乎一天几发。
DeepSeek Harness:86 个包、99 个可替换的能力点、188 个包节点、313 条消费关系、68 篇子系统文档。两个月发了 30 个版本,其中一个大版本的核心动作是:把 6 个内置插件移出核心,把可选实验包从 4 个抬到 12 个。
一个是把一个东西做到极致;一个是把一件事拆到可以重装。
01 两种"人格",写在提交记录里
产品的人格不在发布会上,在提交记录里。因为那是没人监督时,一个人反复做的选择。
崔添翼:一个把"否决"当资产的人
DeepSeek Harness 的核心维护者之一。浙江大学计算机系毕业,2013 年入职 Jane Street 香港,2016 年转去纽约办公室。Jane Street 是全世界最出名的 OCaml 商店——一家用函数式语言写交易系统、把"正确性"当生命线的公司。
他更早的成名作是《背包问题九讲》,GitHub 上 2,600 多星,中文算法竞赛圈里被翻烂的那本教程。他的仓库里还有一整排 OCaml/Haskell 的手写实现:纯函数式数据结构、48 小时写个 Scheme、编译原理习题、动态规划的艺术与理论。
他个人主页上写着三条"梦想":
一,活得长久而快乐。
二,实践人类理性之术。
三,在编程上达到精通,并用我的专长让人们的生活更充实。
第二条是关键。他还在理性主义社区 LessWrong 上活动。"人类理性之术"落到软件工程里是什么?是每个判断都要能被别人复算,每个结论都要写清否决了什么,不能靠权威和感觉。
他在这个项目里装了四道制度:
第一,决策档案制。所有影响代码库的决定必须写成文档,分"提议/已实施/已否决/已归档"四态。文档必须写清"为什么"和"放弃了什么"。最有意思的是"已否决"这一类:它的保留标准是"只有当这条否决还能挡住一次诱人且重大的错误时,才值得留着"。
第二,连"重构"这个词都不许用。决策分类里有一类叫"简化",而"重构"被有意排除,理由写得极硬:它和"简化"重叠,而后者的判据是"可观察行为是否改变"。一个连分类都要给出可判定判据的团队,是很难被话术糊弄的。
第三,审批权机械化。仓库里有个审批权重文件:过线需要 2 分,而全仓只有 6 个人值 2 分。谁的分量重,由代码归属自动算出来,不由人拍。
第四,文档即测试。那张"99 个能力点"的图是脚本从源码生成的,文档和源码对不上,CI 就红。
Tibo:一个把"回路"越拧越短的人
Codex 的负责人 Thibault Sottiaux,GitHub 账号 2024 年 7 月才建——时间点正好是他加入 OpenAI 的时候。
他那上万条提交记录,看标题就能看出他在关心什么:上下文窗口的血缘标记、提示词块的开关、环境注入的开关、子代理的模型继承、请求边界的信箱排空、代理返回的 JSON 抓取、账户套餐类型。全部集中在"模型看到什么、按什么顺序看到、以什么代价看到"。
而 Codex 这个仓库的治理,是另一种风格:Bazel 构建、可复现工具链、远程执行,一份 CODEOWNERS 把核心 crate 全部指向一个团队,而不是指向某个人。
一边在写"结构",一边在写"回路"。一句话分野:一个人在写"这颗脑袋装在哪里";另一个人在写"这颗脑袋怎么想得又快又准"。
02 两种野心:他要做操作系统,他要做 iPhone
DeepSeek Harness 的野心是操作系统化。它不打算做"最好的 Agent",它想做所有 Agent 的宿主。证据是它的整个设计都在"解绑":换模型是设计目的,不是兼容性妥协;连 Agent 循环本身都是插件;连"用哪个模型"都要做成可替换的提供方。它的敌人不是别的 Agent,是"被绑死"这件事本身。
Codex 的野心是最佳入口化。它要把"自家模型 + 一个开发者"的回路打磨到极致——终端里一个二进制,打开就能干活,快、准、不啰嗦。它的护城河是模型与产品的合体,这既是它最大的优势,也是它最大的约束。
一个赌"换谁都不塌",一个赌"我这一个最好"。
前者是操作系统逻辑,后者是 iPhone 逻辑。
这两条路在历史上都成立过,但代价不同:做操作系统的人,前五年都在给别人做嫁衣;做 iPhone 的人,第一年就能收到掌声,然后每一年都要面对"下一代芯片能不能续命"。
03 为什么你会"看不懂它的路线图"
Codex 每次发版,产出的是体验:快了一点、准了一点、终端里少了一步操作。你打开就知道。它的路线图是可以被"感觉"到的。
Harness 每次发版,产出的是缝:多了一个可替换点、拆掉了一处绑死、加了一个兼容判据。缝本身不产出体验。所以除非你正打算在上面造东西,否则你感觉不到任何变化。
这就是那句让人困惑的话的真解:"不知道升级能得到什么"——因为你得到的不是东西,是可能性。
04 谁与争锋:三条可核的判据
判据一:护城河长在哪。如果护城河长在模型上,那模型换代就是洗牌日,产品要重写一遍回路;如果长在结构上,模型换代反而是它的利好——新模型接进来就能用,因为它本来就没绑死。这一条,Harness 的结构性优势是真实的。
判据二:能不能被审计。Harness 有公开的"否决档案":为什么不做、放弃了什么、什么时候该重新考虑。Codex 的治理是团队内部的 CODEOWNERS。这不是谁更诚实的问题,而是谁能被外部检验的问题。对企业客户来说,这一条的价值会随时间放大。
判据三:迭代速度的意义。一天几个 alpha 说明回路成熟、团队高效;但也说明它高度依赖持续高频的调优。而结构性的产品,一次拆解能吃三年。速度是优势,也是依赖。
05 各自的盲区,都很稳定
翻遍 Harness 的文档,有两类词几乎不出现:上手成本、用户满意度;以及定价、配额、多租户、合同边界。安全声明只讲风险,不讲体验;68 篇子系统里,没有一篇讲"新人怎么开始"。
这不难理解:一个在交易系统里长大、把"理性之术"写进梦想的人,他的判据表里,"用户觉得爽"从来不是一条判据。所以这类产品的组织级能力会长期缺位——不是做不出来,是不在判据里。
反过来,Codex 的盲区写在基因里:它被自家模型绑死。当模型代际切换、当监管要求"可替换供应商"、当客户要求"我能审计你为什么这么决策",它的答案只能是团队内部的那句话,而不是一份可公开检验的档案。
06 所以,你该选哪一个
取决于你要"用",还是"造"。
你要今天就把活干完——选体验型。它替你做完了所有判断,包括那些你看不见的判断。代价是:你不能改、不能审计、换模型等于换产品。
你要在上面长出自己的东西——选结构型。它把判断权还给你,代价是:体验要你自己造,产品经理这个岗位得你自己顶上。
而最务实的答案,往往不是二选一:用体验型工具对标体验,用结构型底座承载改造。前者的发布会告诉你"用户会为什么尖叫",后者的缝告诉你"你能卖什么"。
07 最后:真正的两强不是两家公司
表面上是两个产品在对峙,实际上是两种收敛不确定性的方式在对峙。
一种相信——把体验做到极致,用户会用脚投票。
一种相信——把结构做到可换,时间会替你投票。
前者让你今天就有答案,后者让你三年后还有选择权。
所以真正值得问的问题不是"谁赢",而是:你这三年,是想马上拿到答案,还是想保留选择权?
这两件事,通常不能同时要。