ESC
↑↓ 选择↵ 打开esc 关闭⌘K 唤起
← Home NO.14
第 14 期 · AGENT 工程 · 收录于 2026 年 8 月 15 日

Code直播编程

BJ
Boris Jarred Claude · Claude
视频 31:13 原文约 2.7 万字 预计阅读 30 分钟 来源视频 ↗ 中英对照全文
双人对谈 · 本期速读电台 00:00 / 27:35
TL;DR · 三句话
  1. Bun 用一套叫 RoboBun 的自动化流水线接管 GitHub issue——每个 issue 一上报,机器人先自动复现、再自动提 PR(强制带测试,且同一个测试必须「在旧版 Bun 里失败、在调试分支里通过」才算数),随后让 Claude 代码审查与 CodeRabbit 两个 agent 在 PR 评论区来回拉锯、逐条标记「已解决」;如今打开 GitHub 的 Insights 看最近三个月的 main 分支,RoboBun 的贡献量已经超过作者 Jarred Sumner 本人——而且这还是在它的 PR 并未全部被合并的前提下。 → 详细
  2. 这套自动化把工程的难点一层层往后推:从「写代码、修 bug」推到「验证、跑测试」,再推到「我有没有信心合并这个 PR」,最后推到「规划——该做什么、不该做什么、正确的修法是什么」——每攻克一个瓶颈就冒出下一个。让它真正跑通的三个前提是:写得很细的 CLAUDE.md(否则机器人会提交一堆你根本不想合并的 PR)、一个能跑完整回路(构建→测试→CI→读错误日志)的环境,以及 Opus 4.7 这一代终于够强够高效的模型。 → 详细
  3. Jarred 现在几乎每晚都用 CLI 配 auto mode(自动批准权限模式)挂一堆 agent,一连跑好几个小时;现场这整件事「就是一个 prompt 跑了 30 分钟」,约 25 分钟产出 3 个 PR、还在等第 4 个。两人由此得出一个判断:工程范式正转向「PR 变成建议、人只负责做高信心的合并决策」——而且因为不再有「不合并就对不起同事」的负罪感,人「决定合并什么」的门槛反而被抬高了。 → 详细
01

嘉宾与场景:一场用 Claude Code 现场修 issue 的 demo

现场两位嘉宾:Jarred Sumner(左,台上一边讲一边挂 agent 干活)与 Boris Cherny(右)

  • 开发者大会上的现场编程 demo。主持词把两位嘉宾请上台:Anthropic 的 Claude Code 负责人 Boris Cherny,以及 JavaScript 运行时 Bun 的作者、现就职于 Anthropic 的 Jarred Sumner(Bun 对标 Node.js,用底层语言写成、需要编译)。Boris 开场定调:「这是一场开发者大会,我们会稍微聊几句,但大部分时间就是直接写代码。」Jarred 预告要讲「Bun 是怎么用 Claude Code 来构建和维护 Bun 自身的」,并提醒「我们这套配置比现在大多数人用的要稍微进阶一些(slightly more advanced)」——定下全场基调:看的不是入门,而是一套打磨过很多轮的高级工作流。话音刚落他就先跑了几个 agent 去修真实 issue,Boris 当场调侃:「这就是典型的 Jarred——演讲的同时还在干活(classic Jared doing work during a talk)。」 → 详细
02

RoboBun:每个 issue 自动复现 + 强制带测试

RoboBun 自动提交的一个 PR(修 console.group 缩进)——绿色为新增的 Zig 代码,左侧是改动文件列表,且强制带测试

  • 在 Bun 仓库里,每当有人提交一个 issue,一个叫 RoboBun 的 Claude 机器人就会自动运行,去尝试复现这个问题。Jarred 现场点开一个最新 issue(用户遇到某种「副作用」问题),指给观众看:RoboBun 已经成功复现了它、并自动提交了一个 PR。他特意强调这条流程是无差别覆盖的:「在 Bun 的 issue tracker 里,每一个上报的 issue,都会先由 RoboBun 自动尝试复现,然后才轮到人去看。」也就是说人看到 issue 之前,机器已经先把「能不能复现、要怎么修」跑过一遍了。 → 详细
  • 所有 RoboBun 的 PR 都强制带测试——Jarred 的原话是「所有这些 PR 都一定带测试,这是它提交 PR 之前的一个硬性要求(one of the actual hard requirements)」。他把这里的真正难点点破了:代码自动生成出来之后,问题不再是「能不能写」,而是「这段代码看起来对不对(does this code look correct)」——也就是说,当「写」变得几乎免费,瓶颈立刻挪到了「判断对不对」。 → 详细
  • 而验证机制写得非常具体、可证伪:同一个测试必须在 Bun 的旧版本里失败、在这个调试分支里通过。这等于用一个「红→绿」的对照实验证明「这个测试确实抓到了这个 bug,而这次改动确实把它修好了」——光「测试通过」不够,必须是「在没修的版本里它会挂、在修了的版本里它才过」,才说明测试真的咬住了 bug。Jarred 强调这是一道闸门:「如果不满足这个条件,机器人根本没法提交 PR(the bot actually can't submit a PR without that being the case)。」 → 详细
03

难点从「修 bug」转移到「该不该合并」

现场打开 GitHub Insights 看 oven-sh/bun 近一年的提交量(绿色柱状),末尾一周飙到 296 次——正是「RoboBun 贡献量已超过我」那个数据的出处

  • 因为 Bun 有非常多未关闭的 issue,这套自动化省下大量时间,并把工程难点整体搬了家:「它实际上把难点从『修复和调试 issue』转移到了『这个东西该不该合并(is this the right thing to merge)』。」Jarred 把这个新难点拆成一串具体的判断题:「这是正确的修复吗?质量怎么样?它完成了你 100% 的工作,还是只有 10%?」——注意这三问全是「价值/品味」层面的判断,而不再是「代码写没写出来」的执行层问题,这正是难点搬家后的新形态。 → 详细
  • 然后他现场拿出了那个最有冲击力的数据。操作路径很具体:打开 GitHub 的 Insights → Contributors,把范围选成最近三个月、并专门看 main 分支——结果是「RoboBun 现在对 Bun 的贡献量已经超过我了(Robbun is now a bigger contributor to Bun than I am)」,全场大笑。他立刻补了一句把这个数字坐实而非吹大的限定:「而且这还是在它的 PR 并没有全部被合并的情况下(that's with merging not all of its PRs for sure)」——也就是说,即便砍掉那些没被采纳的 PR,机器人的净产出仍然压过了 Bun 的作者本人。这条数据是全场「机器产量碾压人」最硬的一个证据。 → 详细
04

对抗式代码审查:CodeRabbit × Claude 来回拉锯

  • Bun 还配了自动跑的代码审查机器人。Jarred 现场展示这个画面时自己都乐了:「CodeRabbit 留一条评论、RoboBun 回一条,它们就这样来回拉锯……我太喜欢这个了(I love this)。」处理完之后机器人还会把评论标记为「已解决」(marks the comments as resolved)——不是留完言就不管了,而是真的把每一条意见跟进到关闭。一个 PR 里这种来回评论能有 30 条(30 comments or something)——本质上是两个 AI 在同一个 PR 上互相挑刺、互相回应,直到把彼此的意见全部消化干净,整个过程几乎不需要人插手。 → 详细
  • 两类审查的分工是错开的,各有所长:CodeRabbit 擅长「风格类问题,以及确保代码遵守 CLAUDE.md」(守规范、守约定);Claude 的代码审查擅长另一类——Jarred 描述得很具体:「它特别擅长发现那种非常微妙的边界情况(really subtle edge case),那种我得花 30 分钟读完所有代码、掌握全部上下文才能搞明白的问题(would have taken me like 30 minutes of reading all the code and having all the context to figure out)。所以它特别擅长把那些需要完整上下文才能真正理解的 bug 挖出来。」一句话:CodeRabbit 管「表面合不合规」,Claude 管「深层逻辑对不对」。 → 详细
  • 两人觉得这种「两个 AI 互相审、互相驳」的模式值得有个名字。Boris 当场提议:「我们应该给这种模式起个名字,比如『对抗式代码审查(adversarial code review)』之类的。」(adversarial——让两个 agent 站在对立面互相挑错,而不是一个 agent 自说自话。) → 详细
05

为什么这能省下大量时间

  • 关键在于 Claude 真正参与到回路里(in the loop):它不是「装样子地回复」,而是真的在动手修。Jarred 把这点说得很重:「如果没有 Claude 参与到回路里的代码审查,这整套自动化其实很难真正跑起来——它不只是『装样子地回复』(very performative),而是真的在修(at fixing)。」过去 PR 耗时的元凶是上下文切换成本(switching cost):「以前 PR 之所以要花那么久才能合并,是因为你得在本地 checkout 那个分支、修一个 lint 错误、再在本地跑一遍 linter,然后再推回去」,「这中间一直有大量的上下文切换成本(all this switching cost that's constantly there)」——把这一串来回切换自动化掉,正是省时间的大头。 → 详细
06

systems code 的天然优势,以及如何推广到客服工单

  • 为什么 Bun 特别适合这套打法?因为它是系统级代码(systems code,贴近 OS 底层、不依赖图形界面)、又是命令行工具(CLI),「我们测试东西不需要跑浏览器」,复现和验证都很轻——每个 issue「本质上就是某个特定架构上的一个测试用例,你基本上能复现或验证任何东西」(前端类的可以「配置一些东西去截图、录视频」来验,「但在 Bun 的场景里我们暂时还不需要」)。更可推广的一点,Jarred 主动替「不开源、没 GitHub issue」的公司想了出路:「因为大多数产品并不是开源的,所以起点也许不是 issue,而是一张客户支持工单(customer support ticket)」——「把客户支持工单自动转交给一个 Claude 机器人,让它去复现问题、提交 PR,然后让代码审查来回拉锯」,他认为「对很多公司来说,这就是它影响力大得多的地方(a lot more impactful)」。 → 详细
07

前置条件:环境配置与 CLAUDE.md

Bun 仓库 CLAUDE.md 现场片段:测试目录约定、test/regression/issue/${issueNumber}.test.ts 的硬规则,以及「怎么写测试」的 TypeScript 示例

  • Jarred 明确泼冷水:照搬表面流程跑不通。「如果你只是简单地这么做,其实不太行(if you just do this then it doesn't quite work)。你需要的第一步,是确保开发环境配置好了。」紧接着点名 CLAUDE.md(放仓库里、给 Claude 读的项目说明):「CLAUDE.md 真的非常重要,否则它就会提交一些你看了根本不想合并的 PR。」 → 详细
  • Bun 的 CLAUDE.md 里有一条关键约定:用一个专门命令做构建。这个命令「既会构建、也会运行——它会把参数透传过去」,这么做是为了堵一个特别容易踩的坑:「因为 Bun 是需要编译的,你得确保它跑的是真正改动后的版本,而不是某个已经过期的 debug 构建。」大白话:改了源码却忘重新编译,跑的还是旧二进制,测试结果全是假的——这条命令就是防这个的。文件里还「非常详细地写了怎么跑测试、怎么写测试、测试该放哪里,以及大量『我们之前踩过的所有坑』」。 → 详细
  • 核心模式(全场最可操作的一条):「每当你发现自己在重复某件事,它大概率就应该写进 CLAUDE.md(every time that you find yourself repeating something it should probably go in cloud MD)。」Jarred 给了具体闭环:「你让 Claude 写一个测试,测试写得不好、或者有什么地方不对,你看到这种情况重复出现一两次之后,就直接告诉 Claude『把这条加进 CLAUDE.md』,这样以后每次写测试,它第一次就能写对。」还有个很微观但实用的技巧:「为了确保 Claude 能看到错误信息,我们让它把错误信息打印在那些信息量较少的内容之前(print the error message before the less informative conditions)」——因为模型读日志也有「注意力」,把关键报错往前放,能保证它一定看得到。 → 详细
08

compound engineering:让 agent 跑完整个回路

  • 「把每次踩坑的经验沉淀进 CLAUDE.md、让系统越用越顺」这套做法有个名字叫 compound engineering(复利式工程——像复利一样,每一次积累都让下一次更省力)。Jarred 补充,光有规则不够,给 agent 一份地图也很重要:「给它一份『所有文件夹在哪、代码整体怎么组织』的概览(an overview of where all the folders are, how the code is laid out)也很有帮助」,以及「关于依赖关系」的说明——让 agent 一上手就知道东西都在哪、谁依赖谁,而不是每次都现摸。 → 详细
  • 更关键的是让 agent 能读 CI 错误和构建日志(CI = 持续集成,每次提交后自动跑构建和测试),从而跑完一整圈闭环。Jarred 把这一圈列得很完整:「你希望把 agent 配置成能读代码、能跑完整个回路——写代码、测试代码能不能跑通、检查 CI、监控 CI、读完所有错误(writing the code, testing the code works, checking CI, monitoring CI, reading all the errors)。」目的是把人从苦力里解放出来、只留判断:「这样等它交到人手上时,一切都已经就位。理想状态是:你读一遍代码,就有非常清楚的信号让你高度确信可以合并它(very clear indications that you can be high confidence to merge it)。」最后他点出唯一前提:「而要做到这一点,唯一的办法就是把它配置成『为成功而设』(set up for success)。」 → 详细
09

并行跑上百个 agent:Boris 的愿景与自我验证

  • Boris 回忆很早提过一个愿景、当时 Jarred 没听懂:「我记得我们第一次见面时,你就在讲你的愿景——每个人都能并行跑上百个 agent(everyone being able to run hundreds of agents in parallel)……我感觉我当时其实没真正理解。」而现在这成了 Jarred 的日常:「但现在我每天晚上真的会跑上百个 agent,我感觉自己终于到那个状态了。」他点出能扩到这个规模的技术前提:「你需要自我验证机制(self-verification),agent 才能自主运行(run autonomously)」——没有自动验证,人就得盯着每个 agent,规模上不去。他还回顾演化起点有多简陋:「这套东西在 Bun 的代码库里经历了很多次迭代。我们以前只是有一个 Discord 机器人,我 @ 一下它,它就会拉起一个容器(spin up a container)。那时候它还没有 CI 那一块,也没有代码审查那一块。」 → 详细
10

Opus 4.7:第一个真正能闭环的模型

  • 从「只会拉容器」的 Discord 机器人到今天,最大的变量是模型。Jarred 说「现在好太多了,尤其是有了 Opus 4.7」,Boris 给出更强判断:「4.7 是第一个真正让人感觉『它能做到这件事』的模型。」并对比之前的窘境:过去也许能靠脚手架(scaffolding,为让弱模型勉强工作额外搭的辅助代码和提示)做到——「往里塞一大堆 token,它勉强能跑」,但「现在它已经足够高效了,你真的可以每天都这么干」。Jarred 反复强调时间线近得惊人:「这在 6 个月前绝对做不到3 个月前也不行。」他也坦承这对工程师是种新痛苦:「最难的是模型变得很频繁,我得不断重新调整、重新校准对『它能做什么』的认知……它是一种非常奇怪的技术,是我用过的第一种这样的技术。」 → 详细
11

现场审 PR 的实战判断

  • demo 中途 Boris 现场举手统计观众的开发方式:第一问「你的流程是不是开一堆终端窗口/桌面标签页、手动把 issue 粘进去」——「大概一半的人」举手;第二问「有没有人更像 RoboBun 那样把回路闭合得更多」,举手寥寥,Boris 定位为「下一层抽象(the next level of abstraction)」。说明闭环自动化在当时(哪怕在 Anthropic 大会观众里)仍是少数派前沿玩法。被问「看到一个 PR 你怎么审」,Jarred 给的是按复杂度分流:「通常取决于它有多复杂。」对眼前这个他判断「这个其实挺简单的,我相当有信心,只要测试通过我大概率就会合并」,但仍补一道保险:「我还是会等代码审查——至少会等 Claude 那个跑完,以防万一」,因为 Claude 能找到「不在 diff 里、要靠追踪控制流(tracing the control flow)才能发现的问题」。可信度上他给了量化信噪比:「大概只有 10% 的时候它是错的」,而别家审查产品「基本上你得无视它说的大部分内容」——别家 90% 是噪音,Claude 审查 90% 命中,这正是值得每次等一等的原因。 → 详细
12

hill climbing:给指标 + 验证方式,让模型一路爬到目标

  • 全场技术含量最高的案例。Jarred 让 Claude 在一台单独的 Linux 机器上跑性能基准(benchmark),目标是让 Bun 新加的图像处理比业界标杆 Sharp(Node 生态里最流行的图像处理库)更快。他强调投入极少:「我跟它说『让它比 Sharp 更快(make it faster than sharp)』,我基本上就做了这么点事。」只额外给了几个方向性提示:「比如『你可以去读一下 JavaScriptCore 里的这段代码,搞明白怎么在并非严格必要时避免克隆 TypedArray』。」(JavaScriptCore 是 Bun 底层用的 JS 引擎;TypedArray 是存二进制数据的数组,少复制一次就少一份开销。)结果:「它就真的去做了,并且把它搞定了……说实话挺疯狂的,因为这些东西在几个月前根本都跑不起来。」 → 详细
  • Boris 给这种打法贴上 AI 实验室内部术语:「在 Anthropic 内部、在一个 AI 实验室里,我们把这种事叫做 hill climbing(爬山)。」并解释机理:「如果你给模型某个指标,再给它一个验证结果的方法,你就能让它不断迭代、一直跑一直跑,直到它达到那个指标(give the model some metric and a way to verify its result, you can just make it iterate and keep going until it hits that metric)。」(爬山——像蒙着眼往山顶走,每一步摸一下「是不是更高了」,靠这个反馈逼近最优。)他认为这是 4.7 被低估的强项:「这是 4.7 格外擅长的一件事,而且我觉得它被严重低估了(really underutilized),因为它是第一个真正很擅长这件事的模型。只要你给它一个目标、给它一个提升性能的途径、再给它一个衡量的办法,让它在 auto mode 里跑,它就会一直跑到把事情做完为止。」 → 详细
  • 另一个佐证「人几乎不用盯」的例子:有一个 PR 里「大概有 100 条评论,它就一条条地去把所有问题都修掉」。而 Jarred 当时投入度低到——「这件事并不是我 100% 专注在做的,我大概只有 10% 的注意力在上面,我是同时在做五件事(maybe like 10% focused on this, doing five things at once)」。100 条审查意见自动闭环、人只分 10% 心神,这就是「闭环自动化」省力的直观画面。 → 详细
13

近期大 PR:图像处理库与 Rust 重写

  • Jarred 澄清:除了 RoboBun 修小 issue,他最近还亲自用 Claude Code(而非 RoboBun)做了一些挺大的 PR——最典型的是「给 Bun 加了一个内置的图像处理库支持——那是 Claude 做的,我们后面还做了一堆后续 PR」(即上节「比 Sharp 更快」案例的来源功能)。他一口气数了过去两周用 Claude 完成或在做的重活:HTTP/3 服务器HTTP/2 服务器 PR、HTTP/3 和 HTTP/2 的 fetch 支持、图像处理 API,以及正在进行中的 Rust 重写(「不一定会真的发布」)。他对 Rust 重写既骄傲又克制:「那是我到目前为止做过的最有野心的一个,不过『做过』用得太重了,因为它远远还没做完。」Boris 给 Jarred 的整套打法下了很高评价:「你做这件事的方式,其实比 Claude Code 团队自己开发 Claude Code 的方式还要超前」,并形容它「几乎就像是『完全起飞』、完全闭合的回路(full liftoff, full fully closed loop)」。 → 详细
14

auto mode、CLI 与 --dangerously-skip-permissions

现场的 Claude Code 终端:正在自动改 Bun 的 Zig 源码,底部状态栏写着 auto mode on (shift+tab to cycle) · esc to interrupt——这一整场就是「一个 prompt 在 auto mode 里跑了 30 分钟」

  • Jarred 摊开了真实配置:「我主要是用 CLI(命令行界面),权限一直用 auto mode(自动批准模式)。」被问到 auto mode 之前用什么,他爆了个有现场效果的料:「在那之前我用的是 --dangerously-skip-permissions(直译『危险地跳过权限』)。」全场笑,他赶紧自我纠正、当场打免责声明:「不行,你们用那个是会删掉东西的(you can delete stuff if you do that)。我……我觉得我不该推荐那个。」 → 详细
  • auto mode 解决的痛点很具体——人不用再当「批准按钮的人肉中继」。Jarred 描述了那个让人抓狂的旧体验:「等着给 Claude 按『批准』实在不爽,因为你一转身去做别的事,回来发现它就一直干等在那儿(it's just been sitting there)。」他点出 auto mode 的价值是「真正解决了这个问题,而不只是『全靠信任』」——它不是「闭眼信任」,是把人从「一步一确认」的人肉环节里彻底拿掉。它带来的直接结果就是超长自主运行:「在 auto mode 里,我可以让 Claude 一连跑好几个小时(for hours and hours at a time)。我几乎每天晚上都这么跑,就挂一堆 Claude 在 auto mode 里跑着(a bunch of quads running in auto mode)。」而现场这整场 demo 本身就是最好的证明:「这整件事就是一个 prompt,然后它就一口气跑了 30 分钟(this entire thing was one prompt and that just ran for 30 minutes)」,他补充「我说的就这么多(this is all I said)」。对比之下,auto mode 之前「它根本跑不通,因为它总会卡在某种权限请求上(always got stuck at some kind of permission request)」——一卡住就得人回来按一下,根本不可能挂着跑一晚上。 → 详细
15

no flicker mode:重写的 CLI 渲染器

  • Boris 注意到 Jarred 屏幕上输入框(composer)固定贴在屏幕底部,由此引出 no flicker mode(无闪烁模式)。Jarred 用得很满意:「说实话我觉得我们干脆该把它设成默认,因为它好太多了」,并现场演示体验差异:「你能看到我可以飞快地滚动——以前你也能滚得快,但有时会有闪烁,现在没有了」。Boris 自曝它差点被当成玩笑:「我们是在愚人节那天上线它的(we launched it on April Fools),现在回头看,它当时确实有点像个玩笑」,但正色给了实操建议:「如果你真的去用 Claude Code,把 no flicker 设成 1 就对了——你只要设一下那个环境变量就行。」这个功能背后是一次彻底重写:「我们彻底重写了 CLI 里跑的渲染器,所以它现在用的是虚拟化滚动、虚拟化选择」(虚拟化——只渲染屏幕上看得见的那部分,无论历史多长开销都一样),带来两个硬好处「内存占用恒定、CPU 占用恒定」,还有个意外彩蛋——鼠标在终端里能用了:「Jarred 打字时真的可以在 composer 里点来点去……这对一个终端来说挺疯狂的」。 → 详细
16

瓶颈不断转移

  • Jarred 直接给出「当下瓶颈在哪」、且强调它是新出现的:「现在真正的瓶颈是:我对合并这个东西放心吗?我有信心它的改动是对的吗?(do I feel good about merging this?)这是个新情况,因为以前是代码本身还不够好。」对大多数简单 issue,他认为应更激进合并:「对于大多数简单的 issue,我们其实应该更多地去按下『合并』。」眼下卡住的是工程基建那层:「现在的瓶颈其实是 CI——是确保代码完整跑起来、确保所有测试都正常。」破法他给了两个方向:「我们怎么确保能传达出『足够的证据』来证明改动是正确的;或者让回滚变得更容易」(前者降「合并前」判断成本,后者降「合并错了」纠错成本)。他把整套思维提炼成本主题的题眼:「Claude Code 促使你思考的方式是:每当出现一个新瓶颈,你就得把那个瓶颈自动化掉,然后总会冒出另一个瓶颈,你再去攻它(every time there's a new bottleneck, you automate that bottleneck, and there's always some other bottleneck after)。」并把迁移链一节节数出来:「一开始『写代码』是瓶颈,现在不再是;然后『验证、跑测试』是瓶颈,现在也不再是;现在大概是更深一层的验证」——再往后他预判下一个瓶颈是「规划(planning)——该做什么、不该做什么,以及修复这件事的正确方式是什么」。 → 详细
17

RoboBun 不做功能开发:工程品味的边界

  • RoboBun 目前只修 issue、不做功能需求(doesn't do feature requests yet)——但这条线不是死的,功能开发可走「人工 @ 触发」的旁路:「我们也可以在 Discord 或 Slack 里 @ 它,它就会尝试去实现那个功能。」真实场景:「有时候别人说『嘿,Bun 少了这个东西』,我就直接 @ 那个机器人,大概一个小时后就有一个 PR 了。有很多次有人在 Twitter 上 @ 我说『能修一下这个 bug 吗』,我基本上就是这么干的,然后回复一个 PR 的链接。」两人还冒出个玩笑:「我们要不要给 RoboBun 开个 Twitter 账号?」但 Jarred 对「照单全收所有功能请求」有明确顾虑,理由落在「工程品味」:他「对『让它把任何人在 GitHub issue 里要求的所有东西都照单实现』这件事有顾虑,因为那有点太多了」。他用「把图像处理库塞进 Bun」这个自己刚做过的决定反思:「某种程度上,把图像处理库这种东西塞进 Bun 里,本身就有点疯狂——但我们一直在谈『工程品味(engineering taste)』,这里面是有品味成分的。」核心疑问:决定「一个运行时该不该内置某个能力」是个有品味的取舍,而「我们还不确定 Claude 是否已经到了『会和你一样认为这是个好主意』的程度」——不过他乐观补一句:「未来某个时刻它会到那一步,也许已经开始接近了。」 → 详细
18

PR 变成「建议」:合并门槛反而被抬高

  • 两人共同得出一个对团队协作很有冲击力的判断:「PR 正在变成『建议』(PRs become suggestions)。」Jarred 解释背后的心理学差异:「以前不合并一个同事的 PR,你会有负罪感,因为他们投入了工作;但当它是 Claude 的时候,你就不必有负罪感。所以如果一个 PR 是错的,或出于任何别的原因,你直接不合并就行。」反直觉的二阶效应是门槛不降反:跟人合作时「你不希望别人因为白费的工作而难受」,这份体谅会让你倾向放行同事的 PR;可一旦 PR 来自 Claude、不再需要这份体谅,「某种程度上,这其实反而抬高了你决定合并什么的门槛(raising the bar for what you decide to merge)」。Boris 把它上升到团队信任结构的变迁:「随着瓶颈的转移,这里面的动态也跟着变了一点。这有点像从『彼此信任、信任团队里的人』,变成『我们有没有正确的自动化?以及我们作为一个团队,信不信任这套自动化?(do we have the right automation, and do we trust automation as a group?)』」 → 详细
19

现场 demo 成绩单

  • 现场这套 agent 带「巡检」逻辑:它会自动监控 PR,「跑了一些命令,然后它会睡 20 分钟再醒来(go to sleep for 20 minutes and wake back up)」,靠某种循环(a loop)持续盯着。Jarred 顺口吐槽间隔:「20 分钟可能有点太长了,不过没关系。」时间到点时两人盘了战果:「过了 25 分钟,我们一共拿到了三个 PR」,Boris 评「不错」,期间还「顺手多修了一个 bug」,而 RoboBun 仍在后台「还在生成更多的 PR」。收尾时第 4 个 PR 也压线完成,Jarred 实况解说它最后那段「自我纠错」:它「正在攻最后那第四个 PR,来来回回地:发现一个 bug,然后修掉一个 bug……看起来它现在就要提交 PR 了」,他顺势判断「这个修复听起来也对」。最后他点开对应 issue 看热度:「这是一个开了很久的 issue」,赞数 20 个——Jarred 说「挺多的」,给这场 demo 收了个有分量的尾。 → 详细

本视频没有正式的闪电问答环节,收尾部分是 Boris 对工程未来的展望,以及两人对「现状」的坦诚交代:

  • Boris 的收尾陈词把这场 demo 抬到了「行业先行者」的高度:「对我来说,这真的是一幅很酷的图景——工程未来的走向(such a cool vision of where engineering is going),我觉得对在座每个人都是。而且你知道,我们会最先看到这一切,我们得先把它摸索明白,然后其他所有人也都得把它摸索明白(we're going to see this first, we're going to have to figure it out first, and then everyone else is going to have to figure this out)。」 → 详细
  • 两人没有把话说满,反而强调「还在路上」:「你也能看到,我们还没把所有事情都搞明白(we haven't figured everything out yet)。但我觉得我们现在所处的状态,就是不断地实验、不断地去找下一个瓶颈是什么,好把它解决掉(constantly experimenting, constantly trying to see what the next bottleneck is so we can solve it)。」demo 在「这太酷了」的感叹和掌声中收尾。 → 详细

本视频为大会现场 demo,未提供嘉宾联系方式。RoboBun 与本视频提到的整套自动化(自动复现、强制带测试的 PR、Claude × CodeRabbit 对抗式代码审查),可在 Bun 的开源仓库 oven-sh/bun 的 issue 与 PR 中看到实际运作。

🎯 于你何益 为你定制 · 非通用结论

相关度:高。 这是你能找到的、对你这几个 Agent 工厂最对症的一份实操母带——它不讲理念,讲的是一个真实仓库怎么把「issue → 复现 → 带测试的 PR → 两个 AI 互审 → 高信心合并」这条线整条焊死、跑到机器人产量超过作者本人。你正在搭的 Holdwell PRD 工厂、app_incubator 造 App 链路、你自己每天怎么挂 Claude 干活、以及 Personal Thinking 里那一堆技能怎么写,几乎每一节都能照着抄。下面按项目分。


🏭 Codex Holdwell ERP work(多-Agent PRD 工厂)

1 · 「强制带测试 + 红绿对照」就是你『agent 产出可验证』的标准答案

  • 怎么做的:RoboBun 提 PR 有一道硬闸门——同一个测试必须「在旧版 Bun 里失败、在调试分支里通过」,Jarred 原话「如果不满足这个条件,机器人根本没法提交 PR」。它不是「建议带测试」,是「不带就物理上交不出来」。
  • 你可以怎么做:你工厂最痛的就是碰撞协议的纪律靠自觉、没人卡。把流程每个环节的产出物变成「不满足某个可机检的条件就根本无法进入下一个环节」——比如 UX 与 tech 的独立初稿没各自成稿就不开碰撞、验收标准没写成「现状 X → 期望 Y」的可证伪对照,就让流程自己卡死、不靠人盯。把「红绿对照」翻译过来就是:每条需求都要能指出它对应的『坏掉的现状』和『修好后的样子』,对不上的需求工厂不收。

2 · CLAUDE.md = 你跨线共享约定该有的地基,且要靠「重复就沉淀」长出来

  • 怎么做的:Jarred 反复说 CLAUDE.md「真的非常重要,否则它就会提交一些你看了根本不想合并的 PR」,里面写满了构建命令、怎么写测试、测试放哪、以及「我们之前踩过的所有坑」。沉淀方式是一条铁律:「每当你发现自己在重复某件事,它大概率就该写进 CLAUDE.md」——看到同一个错误重复一两次,就当场让 Claude「把这条加进去」,下次它第一次就做对。
  • 你可以怎么做:你六条产品线之所以跨线老对不齐,本质就是「项目的硬约定没有一个机器读得到的事实源」。别想着一次写全——改成增量长出来:每次真人评审发现某个 agent 又把某个业务概念理解错了、或又漏了某条 ERP 规则,立刻把这条沉淀进项目级 AGENTS.md / 跨线共享约定。把「踩坑→沉淀」做成你工厂的肌肉记忆,地基会自己长厚。

3 · 给 Agent 一份「地图」+ 让它能读 CI 日志,才能跑完整圈

  • 怎么做的:光有规则不够,Jarred 强调还要「给它一份『所有文件夹在哪、代码怎么组织、依赖关系』的概览」,并把 agent 配成能读 CI 错误和构建日志、跑完「写代码→测试→检查 CI→读完所有错误」一整圈。还有个微观神技:为确保模型一定看到报错,他们让系统「把错误信息打印在那些信息量较少的内容之前」——因为模型读日志也有「注意力」。
  • 你可以怎么做:你的三驾马车之所以「跨线对不齐」,往往是因为下游 agent 看不到上游的全貌。给工厂配一份始终最新的「仓库地图」(各角色产物在哪、六条产品线谁依赖谁、工单走到哪一步),当成每个 agent 的开场必读。评审反馈也照搬那条注意力技巧:把『这一版哪里不达标』放在反馈最前面,别埋在一长串夸奖后面,Agent 才不会读漏。

📲 app_incubator(7-Agent 造 App 链路)

4 · 把瓶颈从『做』前移到『该不该做』——正中你「把『该做什么』前移到 agent」

  • 怎么做的:全片题眼是「每出现一个新瓶颈,你就把它自动化掉,然后总会冒出下一个」。这条迁移链 Jarred 数得很清楚:写代码 → 验证/跑测试 → 更深一层的验证 → 最后是规划(planning):该做什么、不该做什么、正确的修法是什么。也就是说当「做」不再难,难点会一路退到「品味与决策」。
  • 你可以怎么做:你已经把「设计稿即工程强制契约」做出来了,等于把「做」这一段焊死了——那现在你链路的真瓶颈,正是片子说的「规划」。把 7-Agent 里最前面那个『决定这个 App / 这个首屏到底该不该这么做』的环节做厚:让某个 Agent 在动手前先产出「为什么是这个方案、砍掉了哪些、风险在哪」,把人的判断力请到最前面。这就是你说的「把该做什么前移到 agent」的具体抓手。

5 · 「对抗式代码审查」可直接搬成你的『设计稿 vs 实现』双 Agent 互卡

  • 怎么做的:Bun 让 CodeRabbit 管表面合规(风格 + 守 CLAUDE.md),Claude 审查管深层逻辑(追控制流、挖只有读完全部上下文才懂的边界 bug),两个 agent 在 PR 里来回拉锯、逐条标「已解决」,一个 PR 能来回 30 条。Jarred 说别家审查工具「你得无视它说的大部分内容」,而 Claude 审查「大概只有 10% 的时候是错的」。
  • 你可以怎么做:你的强契约是「设计稿即工程」,那就配一对对抗 Agent:一个只管「实现有没有 1:1 还原设计稿」(对应 CodeRabbit 的守规范),另一个管「这实现有没有破坏交互逻辑 / 边界(空态、报错、加载)」(对应 Claude 的深层审)。让它俩在产物上互相挑错、逐条消解,再交到你手上——把你的人审从「逐像素看」省成「看两个 AI 吵完的结论」。

🧑‍💻 本人(怎么用工具)· 精力是元约束

6 · auto mode 挂一堆 agent 跑几小时——这是「杠杆 > 工时」的字面实现

  • 怎么做的:Jarred「主要用 CLI、权限一直用 auto mode」,「几乎每天晚上挂一堆 Claude 在 auto mode 里跑好几个小时」。现场整场 demo「就是一个 prompt,跑了 30 分钟,我说的就这么多」,25 分钟出 3 个 PR。auto mode 之前的旧痛点是「等着按『批准』,你一转身回来发现它一直干等在那儿」。他还自爆早期用 --dangerously-skip-permissions,当场打免责「你们用那个是会删东西的,我不该推荐」。
  • 你可以怎么做:你是单兵扛正职 + 7 个副业,精力是你最稀缺的东西——而你现在大概率还在当「人肉批准中继」,盯着 Claude 一步步问。把你信得过的活(StockHelp 拉数据、Personal Thinking 摄入归档、xiaohongshu 选题)改成 auto mode 夜间批跑:睡前一个 prompt,早上收 3 份产物。这是把你的睡眠时间变成产能,正对你那条「杠杆 > 工时」。⚠️ 照搬他的免责:auto mode 要在能回滚的环境里跑(git 干净、产物落在 outbox 而非直接覆盖源),别用 skip-permissions。

7 · hill climbing:给指标 + 给验证方式,让模型自己爬到目标

  • 怎么做的:Jarred 让 Claude 在单独机器上跑 benchmark,目标「让它比 Sharp 更快」,他「基本上就做了这么点事」+ 给几个方向提示,「它就真去做了、搞定了」。Boris 给这套贴了实验室术语 hill climbing:「给模型一个指标、再给它一个验证结果的方法,它就会一直迭代、一直跑,直到达到那个指标」,并说这是 4.7「被严重低估」的强项。
  • 你可以怎么做:凡是你那种「有明确数值目标 + 能自动验证」的活,都别再手动调——交给 hill climbing。最贴的就是 StockHelp:给 Claude 一个「让回测/选股逻辑命中率达到 X」或「让看板加载 < N 秒」的指标 + 一个能自己跑出结果的脚本,让它在 auto mode 里自己迭代到达标。判据很简单:这件事有没有一个能机器量出来的「更好」?有,就交给它爬;没有,才轮到你亲自下场。

🧠 Personal Thinking(这本第二大脑 · 技能怎么写)

8 · 你已经在做 compound engineering——把它变成自觉纪律

  • 怎么做的:「踩坑→沉淀进 CLAUDE.md→系统越用越顺」这套有个名字叫 compound engineering(复利式工程):每一次积累都让下一次更省力。配套铁律还是那条「重复一件事就把它写进规则文件」。
  • 你可以怎么做:你的 wiifm / video-to-text / 拆书技能其实就是在攒这种复利——但你现在多半是「想起来才改」。把它制度化:每次某个技能跑出来不对、或你又手动纠了同一类错,当场回写进那个 SKILL.md(就像你已经把 WIIFM 6 镜头焊进 video-to-text 那样)。你的「摄入 SOP、信噪比」痛点,本质就是规则没随用随长——让每一次手动纠错都变成一条永久规则,技能库会自己复利。

9 · 「让回滚更容易」比「合并前想清楚」更值得投资

  • 怎么做的:破「该不该合并」这个瓶颈,Jarred 给了两条路:① 让产物传达出足够的证据证明它是对的;② 让回滚变得更容易。前者降「合并前」的判断成本,后者降「合并错了」的纠错成本。
  • 你可以怎么做:你的第二大脑最怕「牵强关联污染信噪比」(你自己写进红线的)。与其每次摄入都纠结「这条到底入不入库」,不如把回滚做便宜:所有 AI 自动入库的笔记打个可批量撤销的标记 / 落在隔离区,定期回看、错了一键清掉。一旦撤销成本趋近于零,你就敢让摄入更激进、覆盖更广——这正对你那条「pressing merge a lot more」的同构решение。

🔍 更深三角度

  • 该反着用:Bun 是开源、海量 issue、systems code(无需浏览器就能测)——验证天然便宜,所以它敢让 RoboBun 无差别覆盖每个 issue。你反过来:Holdwell 是业务系统、产物是 PRD/设计稿而非可一键跑测的代码,验证贵得多。所以别照抄「全自动无人值守」,而要先解决『怎么自动验证一份 PRD/设计稿够不够好』——验证方式没立起来之前,自动化跑得越欢,垃圾产出越多。Jarred 也亲口说前端类的得「截图、录视频」才能验,你的领域更接近这一边。

  • 和你现在做法冲突:你的产品价值观第一条是「判断力 > 努力、问『该不该做』先于『做多快』」——而这套打法的精髓恰恰是先把『做』全自动化、把人逼到只剩判断。表面上完全契合,但藏着一个张力:当机器产量碾压人(RoboBun > 作者本人),你会被海量「看起来都能合」的产物淹没,判断力本身成了新瓶颈。冲突点在于:你信「留一天思考」,可全自动流水线会持续向你倾倒决策、挤占那一天。这张力我不替你下结论,但值得你警惕——别把「自动化做」做成「逼自己当 24h 审批机」。

  • 对你的镜子:Jarred 说他最难的是「模型变得很频繁,我得不断重新校准对『它能做什么』的认知……这是种非常奇怪的技术」。你这种单兵多线、还在自建一堆 Agent 工厂的人,真正的护城河也许不是「搭好某条流水线」——流水线会随模型每季度过期;而是你对『此刻这代模型能/不能干什么』的校准速度。你不是在「建工厂」,你是在「养一种能跟着模型一起进化的判断力」。


One Human Company 新号(2026-07 回填)

1 · B 支柱重磅:「机器人贡献量超过作者本人」+「不合并 Claude 的 PR 没有负罪感」——AI 员工绩效的两条独家叙事线

  • 怎么做的:Jarred 现场打开 GitHub Insights:最近三个月 main 分支上「RoboBun 对 Bun 的贡献量已经超过我了」——而且是在它的 PR 没全被合并的前提下。更妙的是那个心理学观察:「以前不合并同事的 PR 会有负罪感,但当它是 Claude 的时候,你就不必有负罪感——这反而抬高了你决定合并什么的门槛。」团队信任也从「信任人」变成「我们信不信任这套自动化」。
  • 你可以怎么做:这两条拼起来就是你 B 支柱(AI 员工管理 25%,最独占)的骨架文。候选标题:《本公司产出最高的员工不是我:一人公司第一季度"绩效榜"公开》——晒 drizzle tech 各角色的真实产出量、返工率、被你"拒绝合并"的比例,重点写那个反直觉判断:正因为对 AI 不用讲人情,你的验收标准可以变态高——这是人类团队永远做不到的管理红利。可抄物:你的"AI 产出放行三问"(对不对/完成了 100% 还是 10%/回滚贵不贵)。全是你自己的数据和判断,闸门稳过。

2 · C 类验证体:「对抗式代码审查」——让两个 AI 在我的流水线里互相挑刺一周

  • 怎么做的:Bun 的 PR 上 CodeRabbit 和 Claude 审查来回拉锯、一个 PR 能吵 30 条评论、机器人还把每条标记「已解决」;分工错开——CodeRabbit 管风格合规,Claude 管「要读 30 分钟代码才能发现的微妙边界情况」。Jarred 给了量化信噪比:Claude 审查「大概只有 10% 的时候是错的」,而别家产品「基本上你得无视它说的大部分内容」。Boris 当场给这模式起名 adversarial code review。
  • 你可以怎么做:标准 C 类。候选标题:《Claude Code 负责人给这招起了名,我在自己 App 流水线跑了一周"对抗式审查":抓到 X 个真 bug、误报 Y 条、多花了 Z 元》——drizzle tech 的审查角色现在多半是单人审,你实测加一个对立审查 agent 后的命中率和账单,并给判断:什么规模的项目值得上双审。可抄物:两个审查角色的分工 prompt(一个管规范、一个管深层逻辑)。没有你的命中/误报数据这篇不成立,正好过闸门。

3 · A 类复盘骨架:「跑通三前提」+「瓶颈转移链」——你第一个 App 的自动化翻车都能挂在这上面

  • 怎么做的:Jarred 明确泼冷水「照搬表面流程跑不通」,三前提是:写得很细的 CLAUDE.md(否则机器人提交一堆你不想合并的 PR)、能跑完整回路的环境(写码→测试→CI→读错误日志)、够强的模型(「6 个月前绝对做不到,3 个月前也不行」)。配套题眼:「每当出现一个新瓶颈,你就把它自动化掉,然后总会冒出下一个瓶颈」——从写代码→验证→敢不敢合并→规划。
  • 你可以怎么做:把它当你 A 支柱(造 App 决策复盘 30%)的通用复盘模板:每次流水线翻车,先对照三前提定位缺哪个,再写「这次瓶颈从哪挪到了哪」。候选标题:《我的 AI 流水线翻的 5 次车,事后发现全是同一类原因:规则文件写太薄》——附你 CLAUDE.md 前后版本的对比片段当可抄物。另外「每当你发现自己重复一件事,它就该写进 CLAUDE.md」这句本身就是一张好封面承诺的三问卡素材。

🧩 所以呢

  • 可迁移思维模型

    • 【耐用】「自动化瓶颈 → 下一个瓶颈浮现」:这是个跨技术周期都成立的元规律。无论模型怎么变,「攻克当前最痛的那一环,下一环自动暴露」永远是你给任意工厂排优先级的罗盘。
    • 【耐用】compound engineering(重复即沉淀):把每次手动纠错变成一条永久规则——这是穿越所有工具更替的复利法则。
    • 【会过期】「Opus 4.7 是第一个真能闭环的模型」「auto mode / no flicker 的具体开关」「10% 错误率」:这些是此刻这代模型/产品的快照。Jarred 反复说「6 个月前、3 个月前都不行」——同理,6 个月后这些数字和能力边界都会变,别把它们当常量焊进你的设计。
  • 判断更新:你过去多半把「Agent 工厂」的难点放在「怎么让它做得对」。这片告诉你:当下真正稀缺的不是『让 AI 做对』,而是『让 AI 自我验证 + 让你高信心地放行』。你工厂的下一笔投入,重心该从「教 Agent 干活」移到「给产物配一套机器可读的验证 + 把回滚做便宜」。

  • 这周一个赌注:挑你最信得过的一条自动化(建议 StockHelp 收盘后拉数据,或 Personal Thinking 摄入归档),今晚用 auto mode 挂一个 prompt 跑通一次,明早收产物——前提是 git 干净、产物落隔离区可一键回滚。一次就好。目的是亲身验证「睡觉时间 = 产能」这件事对你成不成立;成立,再谈把它铺到别的项目。

接着读