返回探索
资讯VibeFix 编辑部更新于 2026年10月9日

烧了 40 万美元 Token、自己一行没读:AI 两周把 TypeScript 编译器搬到了 Rust

Theo Browne 让 LLM 把 TypeScript 7 编译器搬到了 Rust:18.1 万测试全绿,在 VS Code 上比 tsc 6 快 13 倍。真正的故事是账单——40 万美元 Codex token 卡在 84%,换 Claude Opus 5.5 两周搞定。以及一个绕不开的信任问题:作者自己一行代码都没读过。

终端里 tsc-rs 类型检查性能测试结果的截图

一个你很难相信的仓库

2026 年 10 月 7 日,Theo Browne(网名 t3dotgg,T3 Stack 的作者)在 GitHub 上发布了一个新仓库:pingdotgg/ts-rust,别名 tsc-rs。干的事情一句话就能说完:用 LLM 把微软的 TypeScript 7 编译器几乎完整地搬到了 Rust——编译器、类型检查器、语言服务器,一个没落下。注意这个底座:TypeScript 7 本身就是微软把整个 TypeScript 从 JavaScript 重写到 Go 的版本。Theo 相当于站在微软那次重写的基础上,又让 AI 做了一次跨语言移植。

README 的开场白已经传遍了全网:"I wanted to see if LLMs could port the TypeScript compiler, checker and lsp to Rust. Turns out they can."(我想试试看,LLM 能不能把 TypeScript 编译器、检查器和语言服务器移植到 Rust。事实证明,能。)

更狠的是下一句:"I've never read a line of this code."(这份代码,我一行都没读过。)

一个从来没读过一行代码的人,发布了一个 TypeScript 编译器。这句话要么是个玩笑,要么是 vibe coding 时代最诚实、也最吓人的一句宣言。你先别急着下结论,看完数字再说。

数字:18 万个测试和 13 倍加速

ts-rust 的 README 里贴了一串性能数字,值得逐条看:

  • 从 Go 版移植过来的测试一共 181,711 个(约 18.1 万),全部通过;
  • 在 60 个开源项目上做类型检查,耗时约为 Go 版的一半(几何平均);
  • 在 375 万行代码的 VS Code 代码库上做全量类型检查:tsc-rs 用了 4.20 秒。同一基准下,微软官方 Go 版 tsc 7 是 6.84 秒,而上一代 tsc 6(Node.js 版)要慢上 13.0 倍;
  • 在 6 个真实世界应用上,几何平均比 tsc 6 快 11.4 倍。

npm 包名就叫 tsc-rs,已经可以直接安装。性能这件事上,Rust 版确实把 Go 版又甩开了一截——这也是整个故事最"硬"的部分:它不是一个 demo,而是一个跑得更快、测试全绿的真实编译器。

但先按下"吹"的按钮。数字后面有几处需要打折的地方,我们放到观点部分细说。

先烧掉 40 万美元,再用两周搞定

这个故事最有料的部分不是技术,是账单。

Theo 一开始用的是 OpenAI 的模型——GPT-5.6 Sol 和 GPT 6 Astra。他让 Codex 在"几个月"的时间里反复做 /goal 循环,烧掉了按 API 定价超过 40 万美元的 token,写出了 130 万行 Rust 代码。然后卡住了:兼容性停在 84%,怎么都上不去。

130 万行代码,40 万美元,几个月,84%。这就是拿"大力出奇迹"硬砸一个硬核移植任务的结局。

然后他换了模型:Claude Opus 5.5。10 个小时,跑出了可用的 v0。Opus 没有复用 Codex 写的那 130 万行代码——从头重写。两周时间,搞定。按 API 定价算,总花费约 24,047 美元。

反转还没完。因为 Theo 走的是 Claude 的订阅制(每月 200 美元那档),他个人实际掏出去的钱,大约是两个半月的订阅费——500 美元左右。

他自己总结的原话大意是:我烧了 40 万美元的 Codex token,啥也没成;换了 2 万美元的 Opus token,两周搞定。

40 万 vs 2 万 vs 500。三组数字摆在一起,就是 2026 年 AI 编程圈最扎心的一组对比:决定成败的不是你烧了多少 token,而是你选了哪个模型。

还有一个细节值得玩味:Theo 描述自己的角色,用的词是"管团队"(managing a team)。他不写代码,他的工作是清障碍、修失败模式、开并行——给 Agent 铺路,让一堆 Agent 并行跑,自己当那个 unblocker。这几乎就是 vibe coding 规模化之后的标准姿势:人退到管理层,代码交给"团队"。

为什么"移植"是 Agent 的舒适区

很多人看到这个故事的第一反应是:连 TypeScript 编译器都能让 AI 写,那程序员是不是完了?先别慌。这个任务有一个非常特殊的性质,决定了它特别适合 Agent:它有一个完美的、自动化的裁判——测试。

移植(port)和从零写新功能,是两种完全不同的任务。从零写功能时,Agent 最大的敌人是"需求模糊":你不知道做成什么样算对。但移植不一样:Go 版 TypeScript 已经沉淀了 18 万个测试,每一个都是"做成什么样算对"的精确定义。Agent 每写一段 Rust,跑一遍测试就知道对不对,不对就改,对了就过。这是一个自带 oracle(判定标准)的任务。

这就是 Theo 的流程能跑起来的根本原因:测试即真理。Agent 不需要真正理解类型系统的数学,它只需要让测试变绿。18 万个测试,就是 18 万次自动验收。

反过来想,这也解释了为什么 Codex 那 130 万行代码会卡在 84%。当测试覆盖不到的角落越来越多,剩下的就是必须真正理解语义才能啃下来的硬骨头——而"让测试变绿"的循环在那里会失效,因为没有测试能告诉你到底绿了没有。Opus 的胜利,与其说是"更聪明",不如说是在同样有裁判的条件下,它的语义理解能力刚好越过了那道坎。

给 vibe 开发者提炼一句:选任务比选模型更重要。有完整测试套件、有明确验收标准的任务(移植、重构、补测试、修 bug),是 Agent 的舒适区;需求模糊、验收靠"感觉"的任务,再强的模型也会翻车。ts-rust 不是"AI 能写一切"的证明,它是"AI 在有裁判的赛场上很强"的证明。

"我一行没读过":能力证明,也是信任问题

现在回到那句最出圈的话:"I've never read a line of this code."

这句话有两种读法。第一种读法是能力证明:一个人,不读一行代码,指挥 AI 造出了一个比官方 Go 版还快的 TypeScript 编译器,18 万测试全绿。这是 vibe coding 的登月时刻——它证明了在特定条件下,"不读代码"不再是开玩笑,而是一种可行的生产方式。

第二种读法是信任问题:如果作者自己都没读过代码,你敢在你的仓库里跑 tsc-rs 吗?编译器是信任链的最底端:它读取你的全部代码,决定你的程序是什么意思。一个没人读过的编译器,意味着整条信任链建立在"测试全绿"这四个字上。

dev.to 上的分析文章(10 月 8 日、9 日两篇)把话说得很直白:项目声明自己是 early release、不是完整替代品,这是诚实的;但如果你在你的仓库里跑 tsc-rs,那么 reviewer 就是你——作者已经明说了他没读过。

这不是要否定这个项目。恰恰相反,Theo 把 warning 写进 README 第一屏,是一种罕见的诚实。真正危险的不是"没读过代码但告诉你了",而是"没读过代码但假装读过"。vibe coding 时代,代码的"作者"和"责任人"正在分离:作者是 AI,责任人是你。ts-rust 只是把这层关系摊到了桌面上。

工具史上有一个老规律:每一代自动化工具刚出现时,人们争论的都是"它能不能";成熟之后,争论的才是"它可不可信"。ts-rust 把"能不能"的争论一夜终结了,把"可不可信"的问题摆到了所有人面前。这恰恰是它最大的价值:它不是终点,是开场。

500 美元的账,要诚实地算

再说回那个最抓眼球的数字:500 美元。

必须诚实地说:500 美元是订阅折算价,不是真实成本。按 API 定价算,Opus 那两周烧的是 24,047 美元;再算上之前 Codex 烧掉的 40 万,整个项目的"真实"token 成本超过 42 万美元。订阅制只是把成本分摊到了所有订阅用户头上——Anthropic 在替你垫付 24,047 美元和账面价之间的差价(而 Codex 那 40 万是 OpenAI 的账,另算)。

同样要打折的还有性能数字。13.0×、11.4× 这些 headline 数字都有特定的基准条件:比如诊断数据取自 T3 Code + Effect 这类特定项目。换一个代码库,数字会变。README 里的数据是真实的,但"真实"不等于"普遍"。

这不是挑刺。恰恰相反——正因为这个项目足够重要,才值得把它的数字放在显微镜下看。vibe coding 圈有个坏习惯:把最漂亮的数字当标题,把限定条件藏进脚注。Theo 这次其实做得不差(README 里基准条件写得清楚),但传播链条会自动把限定条件丢掉。作为读者和转载者,我们有义务把打折的部分说出来。

一句话:为"模型选型比 token 花费更重要"这个结论鼓掌,但别把 500 美元当成复制这个项目的真实门票。

给 vibe 开发者的四条实操启示

抛开吃瓜,这个项目对每天用 AI 写代码的人,有四条可以直接拿走的经验:

第一,卡住的时候先换模型,而不是加 token。84% 兼容性、130 万行代码、几个月——这是典型的"在错误的方向上用力"。Theo 换模型后 10 小时跑出 v0。实操规则:如果同一个任务烧掉的 effort 超过预期的 3 倍还没过验收线,停下来换模型(或者换思路),别继续加码。沉没成本是 vibe coding 里最贵的 token。

第二,并行是免费的加速器。Theo 的工作方式是"开并行":多个 Agent 同时跑,自己当 unblocker。很多人的 Agent 用法还是串行的——等一个跑完再开下一个。实操规则:把任务拆成互不阻塞的几块(比如按模块拆移植任务),同时开跑,你负责合并和修冲突。人的时间比 token 贵。

第三,先写 warnings,再写 README。Theo 把"early release,不是完整替代品"和"我没读过一行代码"放在最显眼的位置。这不是示弱,是专业。实操规则:你用 AI 做的项目,README 第一屏就写清楚——哪些是 AI 写的、你 review 到了什么程度、已知有哪些坑。诚实是最便宜的信任建设。

第四,给 Agent 找裁判,而不是找灵感。ts-rust 能成的根本原因是 18 万个测试。实操规则:动手之前先问自己,这个任务的验收标准是什么?能不能自动化?如果能,先把测试或验收脚本搭好,再让 Agent 开工。没有裁判的任务,Agent 跑得越快,返工越惨。

回到开头那个问题:一个没读过一行代码的人发布了一个编译器,这是玩笑还是宣言?我的判断是:它是宣言,但宣言的有效期只在"有裁判的赛场"里。走出这个赛场,"我没读过"依然是一句需要勇气——或者说需要运气——的话。ts-rust 最大的贡献,是让我们看清了这条边界在哪里。

来源

  • GitHub:pingdotgg/ts-rust(2026-10-07 发布),https://github.com/pingdotgg/ts-rust

原始来源

浏览项目广场发布你的项目

相关文章

数字护盾守护 AI Agent 的工具调用与文件访问,象征 AI Guardian 安全层
资讯
Agent 的行为防火墙来了:Bitdefender 发布 AI Guardian,免费 beta 先上 macOS

2026 年 9 月 30 日,Bitdefender 宣布 AI Guardian 进入公开 beta:给自主 AI Agent 加的安检门,每一次工具调用、文件访问、密钥使用都要先拿到 allowed / flagged / blocked 裁决。首批 macOS 独占、beta 期免费,支持 Claude Code 与 OpenClaw。为什么这道「Agent 行为防火墙」来得正是时候。

安全与隐私AI 编程实践产品发布
API 网关流量控制与请求限流的抽象示意,象征对后端服务的保护
指南
一夜被脚本刷掉 300 美元:vibe 项目的 API 限流与配额实战

公网上的每个接口都会在某个深夜被超预期调用。这篇实战为一人团队搭建限流体系:算法选型(滑动窗口 vs 令牌桶)、四层防御、AI 接口烧钱专项防护、配额设计、429 响应规范、误伤排查,最后附上线检查清单。

后端工程安全与隐私部署上线
被用于攻击韩国银行后宣布闭源停更的开源 AI 渗透测试工具 ARTEX 概念图
资讯
被用来洗劫银行之后,这个开源 AI 黑客 Agent 亲手埋了自己

ARTEX——一个中国开发者开源的 AI 渗透测试 Agent——被用来洗劫韩国 9 家银行、窃取近 6.8 万条客户数据后,作者宣布闭源停更。本文还原事件时间线、拆解 AI 攻击链,并聊聊双用途工具的困境:写工具的人,到底要对工具负责到什么程度?

安全与隐私行业趋势开源项目观察