100亿Token实战:Codex长程工程能力深度测评

一次真实的桌面端项目迁移实验
过去30天,UP主阿江在 Codex 里跑掉了大约100亿 Token。但真正促使他录制这期视频的,并不是炫耀 Token 消耗量,而是一次实打实的工程实践——他用 Codex 完成了一个开源桌面端项目的架构迁移。
这个项目名为 cc-haha,是他基于 Claude Code 源码改造、深耕 UI 的开源桌面端应用,内置 Session 管理、Worktree、权限管理、Computer Use 以及 AI 相关功能。这次迁移的目标非常明确:把项目从 Tauri 2 + Rust 的桌面端架构,迁移到 Electron + TypeScript。
要理解这次迁移的工程量级,需要先了解两套架构的本质差异。Tauri 是基于 Rust 构建的新一代桌面端框架,其核心设计哲学是"零冗余"——它不自带浏览器引擎,而是直接调用操作系统原生的 WebView 组件(macOS 上是 WKWebView,Windows 上是 WebView2)来渲染前端界面,Rust 层负责原生系统调用,两者通过严格类型化的命令接口(Command)进行 IPC 通信。这套机制带来的直接结果是极小的应用体积,打包后通常只有几 MB,且内存占用显著低于竞品。值得注意的是,Tauri 的 WebView 依赖操作系统内置组件意味着在不同平台上可能呈现出细微的渲染差异——macOS 的 WKWebView 与 Windows 的 WebView2 对 CSS 特性的支持程度并不完全一致,这也是 Tauri 应用在跨平台 UI 一致性上需要额外投入测试精力的根本原因。
Rust 语言由 Mozilla Research 于 2010 年发布,2015 年推出 1.0 正式版。其独特之处在于所有权(Ownership)系统——编译器在编译期而非运行期完成全部内存安全检查,从根本上消除了空指针解引用、数据竞争、内存泄漏等经典 C/C++ 漏洞,同时无需垃圾回收(GC),因此运行性能接近 C 语言。Tauri 正是借助这一特性,将系统级操作封装为安全的 Rust 后端。然而对于前端背景的开发者而言,Rust 的所有权(Ownership)、借用检查(Borrow Checker)、生命周期(Lifetime)等核心概念往往构成相当陡峭的学习门槛。这套内存安全模型的背后逻辑是:传统语言要么依赖开发者手动管理内存(C/C++,灵活但危险),要么引入垃圾回收器(Java/Go/JavaScript,安全但有运行时开销),而 Rust 通过在编译阶段静态验证资源的获取与释放规则,实现了"零成本抽象"——安全性不以性能为代价。这一理念使得 Rust 在操作系统、WebAssembly、嵌入式系统等对性能与安全均有极高要求的领域获得广泛采纳,Tauri 选择 Rust 作为后端也正是看中了这一特性。
Electron 则是 GitHub 于 2013 年推出的老牌方案,底层将完整的 Chromium 浏览器引擎和 Node.js 运行时打包进应用,完全使用 TypeScript/JavaScript 开发。这一选择使其天然融入 Web 开发者生态,VS Code、Slack、Discord、Figma 桌面端均基于此构建,工具链、社区文档和第三方库极为成熟。Electron 应用体积庞大的根本原因在于其将完整 Chromium(约 100MB+)与 Node.js 运行时打包进每个应用,每个应用实例相当于运行一个独立浏览器进程,一个简单的 Hello World 应用打包后即可达 100MB 以上,多个 Electron 应用同时运行时内存占用可观。社区虽提出了 ASAR 打包压缩、tree-shaking 等优化手段,但与 Tauri 相比,这一结构性劣势依然存在。近年来,Tauri 的挑战者地位日益凸显——2022 年发布的 Tauri 1.0 和随后的 Tauri 2.0(增加了移动端支持)在 GitHub Stars 增速上一度超越 Electron,折射出开发者对应用轻量化和内存效率的持续关注,但 Electron 凭借其庞大的生态和企业级案例积累,短期内地位仍难以撼动。
两套架构之间的迁移远超普通代码重构的复杂度:Tauri 的 Rust Command 需要逐一改写为 Electron 的 ipcMain/ipcRenderer 消息机制;原生文件系统操作、系统托盘管理、全局快捷键注册、进程间通信等 API 的调用方式完全不同;系统权限模型也从 Rust 的类型安全体系切换到 Node.js 的动态运行时。这是一次底层语言、运行时和原生 API 调用体系的全面重写。

整个任务 Codex 连续跑了20多个小时,中间没有停过。它自己去理解项目、自己 build 桌面端 APP、自己打开界面发现问题、再回来修改代码,最终重构出的 cc-haha 0.4.0 版本已经上线。虽然它无法100%完成全部迁移,但把大部分工作都推进了过去,剩下的一小部分只需要人工配合外部环境去验证。
关键不在写代码,而在"长程工程能力"
阿江反复强调,这件事真正有意思的地方不是 Codex 帮他写了多少代码,而是它在真实工程里的长程表现(long-horizon)非常出色。
这一点值得展开。以往我们评价 AI 编程工具,往往聚焦于"单次生成的代码质量"。但真实的工程迁移是一个复杂的连续任务:需要理解现有架构、逐步改写、编译验证、运行测试、发现问题、回头修复——这是一个需要持续数小时甚至数十小时的循环。能在这样的长程任务中保持稳定推进,才是当前 Agent 能力的真正分水岭。
**长程任务(Long-horizon task)**是当前 AI Agent 领域最核心的能力边界之一,其挑战来自多个层面。从架构角度看,Transformer 的自注意力机制计算复杂度随序列长度呈二次方增长,在实际工程中受限于显存容量。尽管 Claude 系列已支持 200K Token 上下文窗口,GPT-4 也扩展至 128K,但研究表明即便上下文窗口足够大,模型对处于序列中间位置信息的关注度仍显著低于头尾——这一"Lost in the Middle"现象正是导致长程任务出现所谓"上下文漂移"(Context Drift)的重要机制,表现为模型在修复一个 Bug 的同时悄然引入新的 Bug,或做出与初始需求相矛盾的决策。
新一代 Agent 工具(如 OpenAI 的 Codex、Anthropic 的 Claude Code)通过多种机制系统性应对这一挑战:持久化记忆(将关键决策、当前进度写入外部文件,而非仅依赖易失的上下文窗口);工具调用链(Tool Call Chaining,将复杂任务拆解为可独立验证的原子操作序列);自我纠错循环(执行→观察结果→判断是否符合预期→必要时回滚并重试)。这些机制共同构成了 Agent 在长程任务中保持"工作记忆"连贯性的技术基础。这套设计在工程上借鉴了经典软件工程中"检查点"(Checkpoint)与"事务回滚"(Transaction Rollback)的思想,将其迁移到 AI 推理流程中——每完成一个阶段性目标,将关键状态序列化写入持久存储,一旦后续步骤出错,可从最近检查点恢复而非从头重来,这正是 20 小时不间断任务得以稳定完成的底层保障。
在评测层面,SWE-bench 是目前最权威的长程编程能力基准,由普林斯顿大学 Carlos E. Jimenez 等研究者于 2023 年发布,包含来自 Django、Flask、Pytest 等 12 个真实 Python 开源仓库的 2294 个 Issue-PR 配对样本。它要求模型在真实 GitHub 仓库中依据 Issue 描述定位并修复实际 Bug,任务平均跨越数十个文件、涉及上百行代码改动。SWE-bench 之所以被视为"真实工程能力"的代理指标,在于其任务无法通过记忆训练集答案来解决——每个 Issue 的修复方案需要模型真正理解代码库的架构意图、追踪跨文件的依赖关系,并生成能够通过原始测试套件验证的补丁。值得关注的是,截至 2025 年初,顶级 Agent 系统在 SWE-bench Verified(人工过滤版)上的解决率已突破 50%,而 2023 年初最佳系统不足 5%——这一能力跃升的速度,与"20小时不间断架构迁移"这类真实场景的考验高度对应,是衡量 Agent 实际工程价值最具说服力的指标之一。
用"目标模式"驱动,而非逐句催写
迁移过程中最核心的做法,是在 Codex 中使用 Goal(目标)模式。阿江没有一句一句地指挥 AI 写代码,而是给它一个明确的目标:把 cc-haha 从 A 架构迁移到 B 架构。
但仅仅给出目标是不够的,他特别强调——你还必须告诉它如何验收:
- 能不能 Build 成功?
- 能不能启动 APP?
- 关键页面能不能正常打开?
- 哪些地方不能乱改?
- 哪些地方必须留给人工测试?
用他的话说,设定明确目标的价值不是让 AI 瞬间变聪明,而是"把一个复杂任务,变成一个可以执行、可以反馈、可以验收的工作流"。这一方法论与软件工程中"契约式设计"(Design by Contract)的思想高度吻合——明确定义前置条件(当前状态)、后置条件(验收标准)和不变量(不可破坏的约束),AI 在这套边界框架内的自主行动才能产生可预期的结果。对普通用户同样重要:你不一定要懂所有技术细节,但至少要学会如何定义目标,以及如何定义"什么叫完成"。
Computer Use:给模型一双眼睛和一双手
这次实践中,阿江最看重的 Codex 功能之一是 Computer Use。他形容得很贴切:它给模型的不是更多的文字,而是给了模型"一双眼睛和一双手"。

Computer Use 是 Anthropic 于 2024 年 10 月随 Claude 3.5 Sonnet 更新首次推出的革命性能力,随后被 OpenAI、Google 等厂商相继跟进,逐渐演变为新一代 Agent 工具的标配功能。其核心原理是:将屏幕截图以固定频率(实践中通常为 1-2fps,以平衡 Token 成本与响应速度)作为视觉输入传递给多模态大模型,模型通过视觉理解识别 UI 元素的位置、类型和当前状态,输出标准化 JSON 格式的动作指令(如鼠标坐标点击、键盘输入、滚动操作),由本地执行层(如 pyautogui、xdotool 等库)将这些指令转化为真实的操作系统输入事件,形成"截图观察→视觉理解→动作决策→执行反馈"的完整闭环。部分实现引入相对坐标(百分比)替代绝对像素坐标,以适配不同分辨率屏幕,减少点击偏移问题。这套架构在底层依赖视觉语言模型(VLM, Vision Language Model)的空间理解能力——模型不仅要识别"这里有一个按钮",还要理解其语义("这是确认按钮,点击后会触发提交操作"),并在多步骤任务链中持续维护对界面状态变化的正确预期,这对模型的视觉推理能力提出了远超简单图像分类的要求。
这与传统 UI 自动化测试工具存在本质区别。Selenium 依赖浏览器暴露的 DOM 树结构,Playwright 依赖元素选择器(CSS Selector 或 XPath),两者都需要目标软件提供可程序化访问的接口层。Computer Use 则直接通过"看"来理解界面状态——理论上可以操作任何可视化软件,包括完全没有开放 API 的原生桌面应用、遗留企业系统,乃至完全用 Canvas 渲染的富媒体界面。在桌面端开发调试场景中,这意味着 AI 可以像真实用户一样发现白屏、布局错位、按钮失效、加载超时等纯视觉层面的 Bug,无需开发者预先在代码中埋入额外的测试钩子(Test Hook)或日志探针。这一能力的战略意义在于大幅降低了自动化测试覆盖率的"最后一公里"成本——传统端到端测试(E2E Testing)的维护成本极高,UI 的任何结构性变动都可能导致选择器失效、测试脚本批量失效,而 Computer Use 的视觉感知方式对 UI 重构的鲁棒性显著更强。
Computer Use 目前仍有明确的能力边界:像素级精确操作(如拖拽细微滑块、在密集表格中精准点击特定单元格)依赖截图分辨率和模型的空间定位精度,误差较大;高刷新率动态界面(如实时数据图表、视频播放)的状态理解存在时序滞后;复杂手势操作(多点触控、快速连续点击)目前也超出主流实现的稳定支持范围。理性认知这些边界,是合理规划"AI接管"与"人工兜底"分工的前提。
以往的 AI 模型,最多只能跑测试、看日志。但桌面端 APP 到底有没有真的打开?页面有没有白屏?按钮有没有错位?这些视觉层面的问题,过去只能靠人去看、去反馈。
而通过 Codex 的 Computer Use,模型可以自己观察页面、判断界面是否正确,再回去修改代码。这就把原本必须由人工反复验证的一部分工作接管了过去。
不过阿江也划清了边界:注意,是"接走一部分",不是全部。有些交互体验和功能决策,仍然必须由人来判断。过度神化 AI 的自动化能力,反而会带来风险。
工具链才是核心,而非某个明星产品
阿江对 Codex 有一个清醒的判断:没必要神化它,它和之前爆火的 Claude Code 本质上属于同一类工具。真正的核心,是如何构建属于自己的工具链,让 AI 能在 Agent 环境里持续稳定地工作。
他也分享了自己常用的插件与 skills:
- 头脑风暴阶段:用得最多的是 Super Powers
- UI 设计:最近常用 DesignPaste
- 视频剪辑:使用 HyperFriends 和 WebVideo
- 以及一些他自己长期沉淀下来的私有 skills

他鼓励大家根据自己的行业和工种,借助 AI 检索适合自己的插件和 skills——GitHub 上有大量开发者在持续开源他们的实战经验和工具。
成本账:月付200美元 vs API调用过万美元
关于成本,阿江给出了具体数据。30天大约消耗了110亿 Token,他订阅的是 Pro 20X 档位,月费200美元,对他来说这个价格"还行,不贵"。
作为对比,如果这110亿 Token 按 API 单独计费,成本会高达1万多美元——订阅制在重度使用场景下的性价比优势一目了然。
这种定价倒挂并非偶然,而是 OpenAI 有意为之的商业策略,背后有清晰的经济逻辑。以 GPT-4o 为例,输入 Token 约为每百万 0.5–2.5 美元,输出 Token 约为每百万 1.5–10 美元;Agent 在执行任务时会产生大量推理中间步骤,这些步骤以输出 Token 计费,单价更高——110 亿 Token 在最优价格档位下的理论成本仍轻松超过 5000 美元,推理步骤占比较高时突破万美元并不夸张。
订阅制的商业逻辑在经济学上属于"价格歧视"(Price Discrimination)的变体——以固定月费锁定高频用户,以按量计费覆盖低频用户,实现对不同消费层次用户群体的收益最大化。更重要的是,Pro 订阅还具备战略价值:重度用户往往是开发者、创作者、企业决策者等关键意见领袖,其公开分享(如阿江的这期视频)所产生的口碑传播和示范效应,远超月费本身的直接营收贡献——这正是 OpenAI 愿意在单个重度用户上承受边际亏损的核心逻辑,本质是以当期利润让步换取市场份额和用户规模的增长飞轮。从更宏观的视角看,这一策略与早期云计算厂商(AWS、Azure)向开发者提供大量免费额度的逻辑高度一致:先让关键用户群体产生深度依赖,再通过平台粘性和生态效应实现长期商业价值的兑现。对于每月 Token 消耗量较小的轻度用户,按量计费的 API 方式反而更为经济——建议在选择前先估算自己一个月的实际 Token 消耗量,以此为基准做理性比较。

对于觉得订阅仍然偏贵的用户,他也给出了替代方案:使用 Codex 配合 CC-switch,可以接入多种国产模型,包括 DeepSeek、智谱、通义千问、MiniMax、Kimi 等。基本上开箱即用,CC-switch 的使用文档写得非常详细,上手门槛很低。
CC-switch 是一个开源的模型路由中间件,核心功能是将 Claude Code 等工具的 API 请求格式标准化转换,并转发至其他兼容 OpenAI API 规范的模型服务,实现"一套工具界面、多模型后端自由切换"。这一生态能够成立,根本原因在于 OpenAI API 规范(尤其是 Chat Completions 接口和 Function Calling 格式)已事实上成为行业标准——这一标准化的形成路径与历史上 HTTP、SQL 等标准的演化颇为相似:先发者凭借市场主导地位确立接口规范,跟随者为降低开发者迁移成本而主动兼容,催生了 LiteLLM、One-API 等统一代理层工具的繁荣生态。目前,Anthropic Claude、Google Gemini、Meta LLaMA 系列主流部署平台以及几乎所有中国主流大模型均提供 OpenAI 兼容接口,大幅降低了生态互通的工程成本。这种"标准兼容"策略在技术史上并不罕见:Android 对 Linux 内核的复用、各大数据库对 SQL 标准的兼容、浏览器厂商对 W3C 规范的实现,本质上都是"在已建立的标准上构建竞争差异",而非从零建立新标准——在 AI API 领域,OpenAI 规范扮演了类似 TCP/IP 协议在网络世界中的基础角色。
在能力与价格维度,不同国产模型各有侧重:DeepSeek-V3/R1 凭借接近 GPT-4 级别的代码理解与生成能力,以及极具竞争力的 API 价格(在某些任务上不足 OpenAI 同等能力模型的 1/10),在开发者群体中迅速获得广泛认可;Moonshot Kimi 和 MiniMax 则在超长上下文处理上拥有独特优势(支持 128K 乃至更长的 Token 窗口),适合需要一次性输入大规模代码库的场景;智谱 GLM 和通义千问在中文理解和中文文档生成方面表现突出。对于预算有限但希望体验 Agent 工作流的开发者,CC-switch 提供了一条以远低于 OpenAI 订阅成本获得近似 Agent 体验的可行路径。
给普通人的三条建议
视频最后,阿江把心得归纳为三件真正值得普通人去做的事——他认为该学的绝对不是那套提示词模板,也不是追着各种工具名跑:
- 把目标讲清楚:你要做的事情,自己至少要非常清楚。
- 定义好验收标准:让 AI 知道"功能怎样才算写好了"。
- 不要盲信 AI 说的"完成",要看证据:比如在远程开发时,让它提供截图,确认它是否真正执行了这些操作。
核心就一句话:你能不能把任务讲清楚,把"如何完成"定义清楚。
在这个 AI 工具爆发的时代,他强调的最后一点是——说再多都没用,工具和资源都摆在那里,关键是行动起来。这或许才是这次"100亿 Token"实验背后最朴素、也最有价值的结论。
核心要点
核心要点
相关推荐

Gemini 3.7 Flash现身谷歌云控制台,发布进入倒计时
开发者在Google Cloud Console中发现Gemini 3.7 Flash模型踪迹,社区热议其与Pro系列的关系及模型蒸馏策略。本文解读版本号跳跃背后的产品逻辑,分析新Flash模型对开发者的实际影响。

AI-Memory:为编程AI打造跨工具长期记忆系统
AI-Memory是一个用Rust构建的开源项目,为Claude Code、Cursor、Aider等Agent编程CLI提供长期记忆能力,解决AI编程工具的失忆问题,支持不同厂商间无缝交接,让开发者掌控自己的上下文资产。

Bullet登场:YC新秀主打更快的编程Agent
YC S26初创公司Bullet推出主打速度的编程Agent,瞄准开发者延迟痛点。本文分析Bullet的差异化定位、编程Agent提速技术路径,以及在Cursor、Claude Code等竞品环绕下的市场机会。