你有没有想过一个问题:让 Claude 自己干活、没人盯着,连续跑 8 个小时,它会不会把你的额度烧光还交白卷?澳大利亚开发者 Chris Lewis 用一场长达 84 天的实战给出了答案:不但不会,进度反而是人肉指挥时的 4 倍。他让 Claude 以 headless(无头)模式循环反编译任天堂 N64 游戏《Snowboard Kids 2》,采用这套工作流后的 3 周,干完了之前 3 个月的活。这个案例 2026 年 8 月 27 日登上 Hacker News 首页(标题《Decompiling a Nintendo 64 game in 84 days》,176 分),但国内几乎没人拆解过它背后那套「放养式 Agent 工作流」——这恰恰是今天最值得抄的东西,因为它能平移到任何批量处理任务上:批量迁移老代码、批量补测试、批量修 lint。这篇文章把他的完整打法、避坑手段和成本账全部拆给你看。
vacuum.sh 的 bash 驱动脚本 + 自研打分器(scorer)+ Splat、m2c、asm-differ、decomp-permuter 等社区开源工具。他在博客《The Unexpected Effectiveness of One-Shot Decompilation with Claude》里把系统拆成四层,这个分层本身就是最好的架构教材:
flowchart TD
A[启动 vacuum.sh] --> B[Scorer 打分器<br/>选出最可能匹配成功的函数]
B --> C[Claude headless 模式<br/>claude -p 接收单个函数]
C --> D{10 次尝试内匹配成功?}
D -- 是 --> E[集成进主项目<br/>build-and-verify.sh 校验<br/>checksum 一致则 git commit]
D -- 否 --> F[写入 difficult_functions 日志<br/>退出本轮]
E --> G{还有可匹配函数?}
F --> G
G -- 是 --> B
G -- 否 --> H[结束]
C -. 返回非零/额度耗尽 .-> I[Driver 退避重试<br/>最长每 5 分钟一次]
I --> B
1. Scorer(打分器)——让 AI 先挑软柿子捏。 初版公式很朴素:score = 指令数 + 3×分支数 + 2×跳转数 + 2×标签数 + 栈大小,分数越低越先做。攒了几百个成功/失败样本后,他用逻辑回归重新拟合权重,结果发现栈大小几乎没有预测价值还有过拟合风险,直接删掉;而且他最初手拍的权重和模型拟合出来的差距很大。这给所有人的启示是:别凭感觉给任务排优先级,用数据调。
2. Claude(干活的)——one-shot 模式。 每次只给一个函数,做完即退出,没有多轮对话。核心提示词只有五条:建匹配环境→用工具反编译→太难就放弃(10 次尝试无进展就走人)→匹配成功就集成、验证、commit→失败就记日志退出。作者特别强调 commit 是保命机制:哪怕 Claude 后来把本地环境搞崩了,进度也丢不了。
3. Toolbox(工具箱)——故意不用 MCP。 他给 Claude 的全是简单的、Unix 风格可组合的小脚本。但重点在「防御性工具设计」:build-and-verify.sh 的输出里直接写着 “BUILD HAS FAILED. Claude, you should treat this as a build failure.”——因为 Claude 经常把失败误判成成功。还有目录级的 %.: make 规则,内容是一段提醒文字,防止 Claude 在匹配环境和主项目之间迷路。他的结论值得画线:防御性工具设计比提示词工程管用得多。
4. Driver(驱动器)——一个 bash 循环。 逻辑极简:调 Claude→返回非零就退避(最终节奏是每 5 分钟一次,防止撞额度限制)→trap Ctrl-C 保证停止信号不会杀掉正在进行的尝试→全部输出追加到日志文件。8 小时无人值守就是这么来的。
博主没有公开精确费用,但有几个可靠锚点:整条流水线消耗的是 Claude 订阅额度(文中明确出现「额度耗尽」和按 5 分钟间隔退避的描述,说明走的是包月额度而非按 token 计费的裸 API);真正的变量是人力时间——反编译社区以往最稀缺的资源就是少数专家的时间,这套流程把瓶颈直接从「人的注意力」挪到了「算力和模型访问额度」上。ROI 用他自己的数据衡量:3 周自动化 > 3 个月人工,吞吐提升约 4 倍,且全程无需值守。另一个关键实验:Sonnet 4.5 判定「太难」的 7 个函数里,Opus 4.5 能匹配 5 个——复杂任务上模型档位不能省。顺带一提,他试过当时风头正劲的 Codex(含 5.1-codex-max),结果不佳:反编译策略差,Git 操作还经常出错,两者叠加基本不可用。
这套「AI 替我干重复活」的思路,本周 r/SideProject 周榜上还有两个可以照抄的变体:
| 维度 | 你可能知道的 | 你不知道的 |
|---|---|---|
| Agent 用法 | 对话式、人盯着改 | headless 一次性任务 + bash 外循环,无人值守 8 小时 |
| 任务分配 | AI 自己决定做什么 | 用打分器+回归模型先挑最容易的,成功率最大化 |
| 防跑偏 | 写更长的提示词 | 把纠错写进工具输出里,防御性工具 > 提示词工程 |
| 止损机制 | 靠人判断 | 硬编码「10 次无进展即放弃」+ 每步 commit 保住进度 |
| 选型 | 哪个模型新用哪个 | 同一任务 Sonnet 判死刑的题 Opus 能做对 5/7 |
claude -p。本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
