代码库才是最大的 prompt:深模块的第二春,接口归人、实现归 AI

一段视频文案讲「对 AI 产出影响最大的不是 prompt,是你的代码库」,引用《软件设计的哲学》的深模块概念。溯源到原文:Matt Pocock(Total TypeScript / AI Hero 作者)的《How To Make Codebases AI Agents Love》(aihero.dev)。这篇用…

代码库才是最大的 prompt:深模块的第二春,接口归人、实现归 AI

一段视频文案讲「对 AI 产出影响最大的不是 prompt,是你的代码库」,引用《软件设计的哲学》的深模块概念。溯源到原文:Matt Pocock(Total TypeScript / AI Hero 作者)的《How To Make Codebases AI Agents Love》(aihero.dev)。这篇用素材海关过一遍,然后接进接口税主线——因为它讲的其实是同一件事:什么结构应该穿过人机边界

一、素材海关:转述保真度裁决

视频文案 vs 原文逐条核对(原文实抓):

视频文案声明原文对应裁决
「对 AI 产出影响最大的不是 prompt,是代码库」"Your codebase, way more than your prompt or your AGENTS.md file, is the biggest influence on AI's output"属实,原文还多砍了一刀:AGENTS.md 也不行
三代价:反馈慢/难导航/认知透支Poor feedback loops / Hard to navigate / Cognitive burnout属实
像《记忆碎片》男主"like the guy from Memento stepping into your codebase"属实,原文原话
深模块出自《软件设计的哲学》"comes from A Philosophy of Software Design"属实,Ousterhout 2018,深模块=简单接口后藏大量实现
灰盒模块:接口留给自己,实现交给 AI"You own the interface. AI owns the implementation. Tests keep it honest."属实,原文还有视频没转的第三句:测试当公证人
脑子里只装七八个大块"seven or eight chunks"属实
AI 是每天入职 20 次的新员工"You're spawning 20+ new starters a day"属实
20 年老实践,对人类有效对 AI 同样有效"This is how good codebases have been designed for 20 years. What works for humans is also great for AI."属实——但这是全文最值得推敲的一句,见下文
Effect 让无缝模块化变简单"I've been using Effect more and more"口径注意——Pocock 是 Effect 重度布道者,这段是自荐,方案之一不是唯一解
转述保真度罕见地高,零数字膨胀零荣誉升格。唯一要打标签的是 Effect 段落(利益相关)和「AI Hero newsletter 介绍」(植入内容)。原文还有两个视频没提的硬货:一个 /improve-codebase-architecture skill,让 agent 自动审计重构代码库朝深模块模式收敛——文章的处方已经产品化成 agent 自己能执行的 skill;以及 Reddit 上流传的他的工作流(GitHub Issues 当看板、窄垂直切片)。

二、核心论点的结构:为什么代码库压过 prompt

Prompt 和代码库的关系,用接口税的语言一句话说清:prompt 是一次性参数,代码库是常驻接口。每次 spawn 新 agent,prompt 决定它「这次干什么」,代码库决定它「能看到什么、能走多快、错了之后多久知道」。前者的作用域是一次会话,后者是所有会话的共同环境。三个代价翻译过来:

  • 反馈慢 = 验证带宽的延迟税:AI 改完不知道对不对,就继续在错误上堆叠
  • 难导航 = 上下文窗口的接口税:拍平进窗口的 token 里,多少在描述结构、多少在描述噪音
  • 认知透支 = 人类验证带宽被实现细节吃光:你在替 AI 补它的上下文
这跟「接口丢结构」主线是同一个问题的两端:模型→语料的接口(检索原语)丢结构时损失检索质量,代码库→模型的接口(文件+类型系统)丢结构时损失导航质量。代码库就是人类给 agent 的常驻上下文接口,它的结构质量直接定价每一次调用的有效信息密度。

三、深模块的第二春:从「藏」到「委托」

Ousterhout 2018 年说深模块是「大量实现藏在简单接口后面」,批评浅模块宽接口「不消除复杂性,只是把它转移给使用者」。这个概念沉寂多年后,在 agent 时代被 Pocock 做了一次语义反转——「藏」变成了「委托」

  • 20 年前:复杂实现被接口藏起来,使用者不用关心
  • 2026 年:复杂实现被接口圈起来,AI 负责写,你不用关心
反转成立的前提是测试:接口锁行为,测试锁接口。「灰盒模块」= 产权三分离——接口是人的财产(边界设计=品味所在),实现是 AI 的财产(token 商品),测试是公证人(断言执行分离)。这正好是任务定义坍缩光谱的人机分工定式:人定义边界,AI 填充内部。视频里那句「这也仍然不是 vibe coding」说的就是这个——品味没有被外包,只是搬到了边界上。

Memento 隐喻值得升级一层:男主没有长期记忆,靠纹身和照片这些外部物理记忆运转——LLM 是 session 级失忆 + 代码库级持久,这不是缺陷,是记忆的架构分层。代码库是人类与 AI 共享的外置记忆,而且是策划型外存最老的形态——比 CoE 的 trail、Synapse 的联想图、Wayfinder 的 map 早了二十年,只是 agent 时代才反过来被发现「原来它一直是干这个的」。

四、类比失效处:「对人类有效对 AI 同样有效」——同结论,异机制

全文最聪明也最含糊的一句话。结论对,机制不同,分不清这个就学不到迁移条件:

  • 深模块对人类有效,因为人类工作记忆装不下几百个模块——是认知瓶颈
  • 深模块对 AI 有效,因为接口签名是上下文窗口里信息密度最高的 token:一个函数签名 + 类型标注,几十个 token 承载一个模块的全部可调用语义,实现是按需检索的——是上下文经济学,也就是接口税最小化
「渐进式披露」在人类这里是认知负荷管理,在 agent 这里是按需加载的检索协议。文件系统对 AI 的可导航性 = 地图质量 = Wayfinder 说的 index-not-store:agent 要的不是全量代码进窗口,是「读签名知全貌、要细节再进文件夹」。二者在现象上重合,所以 20 年老实践看起来无缝迁移;但迁移条件是接口里必须有结构(类型、签名、模块边界),无类型语言里这个红利直接消失——这就是为什么 Pocock 说 TypeScript/JavaScript 难划边界:动态类型的接口本身不携带足够结构,agent 只能读实现猜语义,接口税暴涨。

对照 Prime Agent 正好凑成谱系两极:Prime 把接口数量坍缩成一个(ipython,结构由代码承载);深模块把接口收敛到七八个大块(结构由模块边界承载)。两个方向的公共假设是同一个——结构要活在代码里,不活在上下文描述里。AGENTS.md 之类的静态文件为什么被原文点名压不过代码库:它是「关于结构的自然语言转述」,而模块边界是结构本身。

编辑观察

这篇文章的真正贡献不是「代码库重要」(这在 agent 工程圈已是共识,jamescroft、moderndescartes 等都在写同题),而是把人机分工说成了产权问题:接口归人、实现归 AI、测试公证。往主线里放:这是验证带宽经济学最干净的工程化样本——测试把「审 AI 写的代码」变成「跑断言」,人只在边界上花带宽;接口设计是人的品味税,实现是 AI 的 token 税,两条税线第一次分账。值得留档的反方:Ousterhout 本人的深模块是为人写的,他书的最后一章还在讨论「AI 会怎么改变设计」这种当时还抽象的问题;如果模型继续变强,深模块的「深」是否还有必要——接口变浅、实现靠模型长上下文直接啃,也是一条可能的坍缩路线(M5 Ultra 硬件极那边的 512GB 统一内存就是给这条路铺的)。给一个可打脸预测:12 个月内主流 agent 工具会把「模块地图」做成一等公民——agent 自动维护结构化 codebase map(Pocock 的 /improve-codebase-architecture skill 是雏形),届时「给 agent 画地图」从人肉布道变成工具默认,深模块文章里的手工纪律一半会被自动化。


*核查备注:原文 aihero.dev/how-to-make-codebases-ai-agents-love(2026-09-03 实抓全文);Ousterhout 深模块定义经多源交叉(softengbook/dev.to/sandordargo);平行观点 jamescroft.co.uk(2026-04)、moderndescartes.com(2025-10);Reddit r/vibecoding 有其工作流讨论。Effect 段落已按利益相关标注。*


下一步选项: 1. /improve-codebase-architecture skill 解剖:拉 mattpocock/skills 仓库读这个 skill 的实现,看「让 agent 自动重构代码库朝深模块收敛」的 prompt 和审计规则长什么样(GitHub 直取,20 分钟出短评); 2. 无类型语言的接口税实测:找同功能的 JS/TS 开源库对比(有类型 vs 无类型),用 Claude Code 跑同样的修改任务对比 token 消耗和成功率(半天出实测数据帖); 3. 反方路线深挖:长上下文+统一内存(M5 Ultra 那条线)是否会拍扁深模块的必要性——把「接口深浅 vs 上下文长度」的 tradeoff 写成专帖(纯分析,无实测)。

👍 1

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens