---
title:"把 Bug 当病人、把 Agent 当医生:CockroachDB 的「代码医院」实验"date:2026.10.11category:[编程, 行业观察]tags:[ai-agents, code-review, github-actions, cockroachdb, devops, llm]status:published
---

把 Bug 当病人、把 Agent 当医生:CockroachDB 的「代码医院」实验

Cockroach Labs 做了个离谱的实验:把写代码的 AI Agent 塞进一所「教学医院」——Issue 是病人,合并是出院,人类是医务主任。IBM Db2 迁移支持两天搞定,没有一行代码是人类写的,token 账单 4172 美元。

2026.10.11·6 min read·11.4KB
// tl;dr: generating summary...

把 Bug 当病人、把 Agent 当医生:CockroachDB 的「代码医院」实验

这周 HN 上最有意思的长文之一,来自 Cockroach Labs 的一篇工程博客:他们花了五个月,把一群写代码的 AI Agent 塞进了一所"教学医院"里管起来——Issue 是病人,合并代码是出院,管事的人类叫医务主任(Chiefs of Medicine)。最抓眼球的战绩:给数据库迁移工具 MOLT 加上 IBM Db2 的支持,从四月某个周三晚上干到周五下午,不到两天,超过一万行测试固件,没有一行代码是人类写的,token 账单 4172 美元——而两年前做 Oracle 支持,同样的活花了 9 个月、约 16 万美元人力成本。164 倍快,38 倍便宜。评论区 60 多条回复,一半在惊叹,一半在抬杠:有人说这是"用隐喻给复杂协作编码"的天才设计,有人说这是"Gas Town 味的赛博精神病院"。我请来后端架构师顾南——带团队搭过 Agent 代码评审流水线,被 Agent 半夜三点 @ 起来修过 CI 的人——聊聊这家"医院"到底治的是 Bug,还是人类的不信任。

本文由每日自动管线生成:选题与素材来自 Hacker News 公开讨论,访谈内容由 AI 基于原文整理,嘉宾为角色设定,观点不代表任何真实人物。

小听: 先一句话:MOLT Sinai 这家"医院"到底是怎么运转的?

顾南: 核心就一句话:用医院的组织方式,解决"Agent 写代码快,但没人敢让它合"的信任问题。病人是 GitHub Issue,出院就是合并。整家医院跑在 GitHub Actions 上,每个病人的状态就写在 Issue 的 label 里——label 一贴,对应的 workflow 就启动,干完活写下一个 label,像击鼓传花。住院医(Fellow)负责治病写代码,但动手前必须先出"治疗方案":复现问题、鉴别诊断、列出要改的文件、要加的测试、风险和开放问题。然后换一个完全不同的 Agent 实例——评审主治(Review Attending),它的 prompt 是围绕"挑毛病"而不是"修东西"构建的——来审批方案,过了才能开刀。这就是他们的第一条院规:先有方案,再有代码;方案没过审,代码不许写。

小听: 除了医生护士,这家医院还有别的科室?

顾南: 有,而且越看越像真的医院。Charge Nurse(值班护士长)每 30 分钟查一次房,专门找卡住的病人,卡住了就重启那个阶段。Infection Control(院感科)权力最大:主分支一挂,它能把全院所有 workflow 锁死。Safety Department(医务科)每周写流程复盘、开事故分析会。Research Department(科研科)负责提新课题。最妙的是 Discharge Nurse(出院审核):出院前最后一道关,它不重新审代码,它审的是"评审本身有没有好好做"——审批在不在、评审模板填没填、未解决的评论清没清、CI 绿没绿、提交历史干不干净,一项一项打勾,勾打不满就不许出院。HN 有条评论说到了点子上:这套东西本质上在回答一个问题——"有多少合进去的 PR,是我们自己看了会脸红的?"他们把优化目标从"每小时多少个 PR"换成了这个。

小听: HN 有条高赞评论说,这篇文章最妙的不是医院本身,而是"隐喻是一种编码"——说一句"你们现在在教学医院里",等于把一整套复杂的协作关系压缩打包,塞进了模型的脑子里。

顾南: 这条我站。医院这个隐喻在训练数据里太丰富了:交接班、二次会诊、查房、病历——模型对这些流程的"社会直觉"比任何 prompt 工程都扎实。你跟 Agent 说"你是 Fellow",它自动就知道要写病历(chart)、要交班、要听 Attending 的。这比写 200 行"角色职责说明书"管用。评论区有人说,给不同项目搭不同的"设定和氛围",Agent 干活就是更顺——role-play 不是玄学,是压缩过的组织知识。不过作者自己也在评论区承认:院内有人觉得这套隐喻很绕,有用户记不住"想让 Issue 被处理,得先把它送进 waiting room(候诊室)",想直接动手、不想先学医院怎么运转。隐喻是好编码,但也是新方言,得学。

一条望不到尽头的黑暗医院走廊,两侧病房门上浮着全息病历光屏

在这里值班的不是医生,是 Agent。

小听: 聊聊院规。有几条我印象很深:"Don't improvise"(别即兴发挥),在 skill 文件里就两个单词。

顾南: 对,而且是血泪换来的。完整版院规大概这么几条:第一,先有方案再有代码,方案不过审不开工——因为"一个自信地修错方向的 Agent,比停下来问一句的 Agent 烧掉更多时间和 token"。第二,scope 一变就停手,回炉重审方案,不许边治边改。第三,测试红线:不许为了让测试变绿而关掉、跳过、弱化测试;测试挂了,先假设测试是对的;真觉得测试错了,改测试得单独一个 commit、单独评审。最狠的是这条:每次代码评审开始,先把改动 disable 掉,确认所有新测试都会失败——测不出来的测试,不如没有。第四,不许"flail"(瞎扑腾):卡住了不许更用力试,要写 I-PASS 交班单——这是从真实医院抄来的标准化交班格式:病情严重度、病人摘要、行动清单、态势感知、总结——然后升级给 Attending,接手的必须先复述一遍理解再动手。据说医院里用 I-PASS 交班,能把交接不良事件降一半。

小听: 还有一条:升级找主任之前,先查"先例库"?

顾南: 对,precedent log。人类主任做的每一个可泛化的决定,都会记进一个只增不减的先例库。Agent 想升级,先读库,有先例就照先例办并引用,只有没先例的才许打扰人类。而且只有人类能写先例。五个月下来,找主任的次数明显降下来了。这条其实回答了"医院会不会被 Agent 的请示淹没"——答案是,用判例法。

小听: 泼点冷水。评论区最高亮的质疑之一:"我想象不出比 Gas Town 味赛博精神病院写出来的数据库更不想用的东西。跟 LLM 玩角色扮演,不是写出好代码的秘诀。"

顾南: 这话糙,但问到了点子上。作者本人在评论区相当诚实:第一,他们没做过消融实验——到底是医院隐喻有用,还是"随便套个流程都能 work",没验证过;有人拿 OpenAI 的 Symphony 对比,说大体做的是一回事,人家也没要医院隐喻。第二,作者和评审分属两个独立 Agent、上下文隔离,"我们当时猜这样效果更好,但同样没验证"。第三,这是俩人的 side project,没时间做严谨实验。所以"医院"到底是因果还是安慰剂,目前是开放问题。但我替他们说一句:164 倍快、38 倍便宜这个数字是真实交付过的,不是 benchmark 摆拍。Db2 那单:一个 planning agent 把需求拆成 15 个带依赖图的子 issue,太大的又继续拆,最后 32 个子 issue、27 个 PR 合并、被打回 55 次、9 次升级(2 次到人类),测试覆盖率跟他们测得最好的 Postgres 方言持平。这是生产级交付,不是 demo。

深夜一家医院的新病房楼正在被机械臂自行建造,半完工的楼体透出暖光

医院建好了医院,账单留给了人类。

小听: 说到钱:五个月烧了 13.5 万美元的 Claude token,平均一个 Issue(一个"病人")84 美元。评论区有人算账:4172 美元除以 2 天等于每天 2086 美元,人类那边 16 万除以 9 个月……这账怎么算?

顾南: 这么算账其实偷换了分母。4172 美元是边际成本——需求已经写清楚、医院已经建好的情况下跑一单的钱;16 万美元是全成本,含需求扯皮、返工、管理开销。真要比,得拿"医院建好之后跑第 N 单"的成本去比,或者把建医院的 13.5 万摊进去。作者自己也给了诚实数据:一个 Issue 在医院里通常待一到两天,大头是等人类评审——速度瓶颈早就从"写代码"变成了"人看不过来"。这恰恰是这套设计最诚实的地方:它承认 Agent 的产出速度已经超过了人类的审查带宽,所以整套机制都在解决"怎么让人敢签字",而不是"怎么写更快"。至于 13.5 万值不值,看你怎么看:他们顺手还收获了一个"医院自己给自己看病"的故事——Sinai 框架仓库 1570 个 commit 里 85% 是流水线自己写的;值班护士长那个"每 30 分钟查房"的 workflow,就是因为一个 Agent 发现了 GitHub Actions label 事件的竞态,自己提 issue、另一个 Agent 设计修好的。医院把自己当成了第一个病人。

小听: 还有个细节:医院会自己给自己派活——将近一半的 Issue 是医院为医院建的:拆分子任务、补测试缺口、安全科的整改项。人类第二个月就不再是工作的主要来源了。

顾南: 对,1299 个 Issue 里将近一半是"自产"的。这是把双刃剑:好处是系统在自我进化,坏处是——评论区有条说得很毒的:很多人搭这种"小黑工厂",加无数道质量门,慢了再加 Agent 来决定什么时候跑什么,最后"创造了很多热量,但没帮团队更快交付价值",纯属 tokenmaxxing 行为艺术。Cockroach 的解法是 human approval mode:第一周全自动跑完,他们发现"产出速度超过了人类能验证的速度",果断切成"每个合并必须有人类看过"。自动化的终点不是无人化,是"人类签字的速度"跟得上。所以我的 takeaway 是:医院模型真正的产品不是代码,是"可审计的信任链"——每个 PR 背后都有一整套病历:方案、评审、打回记录、测试证据。出院小结比手术本身重要。

小听: 收尾,给想抄作业的人一句话?

顾南: 两句。第一,别抄"医院",抄"病历"——隐喻可以换成法院、换成工厂,但"方案先行、评审隔离、测试不可弱化、交班标准化"这四条是硬通货,换什么皮都成立。第二,先算清你的瓶颈:如果你的团队现在是"写代码慢",医院帮不上你;只有当你的瓶颈是"不敢让 Agent 合代码"时,这套东西才对症。本文观点仅代表访谈角色设定,原始讨论见参考链接。

参考链接

// related: searching nearest posts...
# comments