Wink Pings

Google 让金鱼审规格,14.4k star 的项目先别急着装

Google 开源 EGM 插件,让大象代理带着上下文写规格,让金鱼代理丢掉上下文挑毛病,人负责拍板。流程有用,但指令继承和文件系统共享是坑,别把审查当测试。

Google Cloud Tech 在 X 上推了一个开源插件 Elephant-Goldfish Model,简称 EGM。GitHub 页面显示 14.4k star、1.1k fork,Apache 2.0,README 写明它不是 Google 官方支持产品。仓库地址放在文末。

一句话说清它的设计:让记性好的代理起草软件规格,让记性差的代理审查,人决定架构取舍并批准规格,然后才写代码。

Elephant-Goldfish Model

为什么是这两个动物。Elephant 拿着项目上下文、需求、早前决策,负责把问题聊清楚并写出规格。Goldfish 拿到文档和它引用的源材料,不拿之前的对话,专门找没写明的假设、模糊需求、实现风险。你负责目标、约束、权衡和批准。README 把角色拆得很直白:大象起草,金鱼挑刺,人拍板。

规格不是代码。对非开发用户,可以把它理解成写代码前的设计说明:每个界面做什么,失败时怎么办,同一个事件来两次怎么处理。EGM 自带的工作流偏软件规格。示例是给项目加 webhook 投递:投递失败怎么办,重复事件怎么办。先 brainstorm 写概念简报,再 draft 成 design_draft.md,然后 review,最后 resolve 审查意见。实现前由你批准。技能不止这几个,还有 bootstrap 给现有代码库补文档,drift report 对比文档和当前源码。

安装支持 Antigravity、Claude Code、Codex CLI、ChatGPT 和 Codex desktop。Antigravity CLI 用 agy plugin install https://github.com/google/elephant-goldfish-model。Claude Code 两条命令:claude plugin marketplace add google/elephant-goldfish-model 和 claude plugin install egm@egm。Codex CLI 是 codex plugin marketplace add google/elephant-goldfish-model 和 codex plugin add egm@egm。装完开新会话。在 Antigravity 和 Claude Code 里,命令名要带 /egm: 前缀;Codex 从技能选择器选。ChatGPT 和 Codex desktop 走插件列表安装。细节看官网和GitHub 仓库。

争议在这里。回复里 Anthony Russano 指出,Goldfish 子代理可能仍共享底层文件系统,也可能继承 coding tool 的指令文件。仓库 issue #237 记录了这个问题:Codex CLI 0.166.0 在 fork_turns 为 none 时,仍把项目和用户级 AGENTS.md 提供给 reviewer;Antigravity 也有 AGENTS.md 和 GEMINI.md 的类似情况。Claude Code 的 adapters 明确用了 omitClaudeMd: true,项目记录的测试对指令排除的证据更窄。父对话没有泄漏,不等于独立。reviewer 可能收到作者本来希望它独立挑战的项目假设。一个围绕独立审查做的流程,这里就是关键限制。

这条限制值得说重一点。很多团队以为隔离聊天记录就独立了,项目里的默认共识还在。金鱼换了条鱼,水还是那缸水。

网友反应也分成几路。Antony Fuentes 说他在 Cursor 里早就做类似的事,叫 unbiased reviews,父代理通过子代理跑几轮审查,子代理拿不带偏见的上下文,多数时候能收到有用反馈。Asmir 把这事说得更短:大象不忘,金鱼不记,大多数代码审查本来就是没参加会议的人在做的。karnstack 把它追溯到 IBM 1976 年的 Fagan inspection,读设计的人从来不是作者,因为作者的大脑会悄悄补全所有缺口。Jimmy Young 认为金鱼才是有用的一半:它继承不了作者的假设,它困惑的地方,下一个读者也会困惑。也有人不买账。Axel 问这是好流程还是又一笔 token 浪费。Bryce Vanderhollen 的讽刺更直接:他们试过,零上下文子代理什么都批准,然后把它升成了 VP。

这些反馈把 EGM 的边界说清楚了。它不替代测试,也不替代人的判断。Goldfish review 需要能创建 fresh subagent contexts,代理做不到,EGM 会停止审查。审查结果要你挑,规格要你批。对开发者,安装前先检查你的 coding agent 是否真的隔离了 AGENTS.md、GEMINI.md 和文件系统。对非开发用户,它的价值在把作者脑内补全变成流程里必须过的一道成本:先写清楚,再让一个没听过你解释的家伙读一遍。

README 把想法追溯到 Dave Rensin 的 essay。原文和仓库都在下面。先别急着把它当银弹,拿一个正在设计的 feature 跑一遍,看看金鱼到底挑出了什么。如果它只会点头,问题可能不在鱼。

链接:Google Cloud Tech 原帖 GitHub 仓库 官网 Dave Rensin 的 essay

发布时间: 2026-11-08 20:28