Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

模型: openai/gpt-5.4
生成日期: 2026-04-01
书名: Claude Code VS OpenCode:架构、设计与未来
章节: 第22章 — 可扩展性设计
Token用量: 约 5,700 input + 1,860 output

22.4 简单性光谱

扩展架构不应该脱离组织规模来设计。一个两人团队为了“显得专业”提前搭完整插件市场,通常是过度工程;反过来,一个十几人团队还试图靠若干平铺 markdown 文件维护整个扩展生态,也很快会陷入混乱。因此,可扩展性设计更适合放在一条 simplicity spectrum(简单性光谱) 上理解:不是越复杂越成熟,而是在当前组织规模下,使用最少但足够的机制

第一段光谱,对应 1 到 2 名开发者。这个阶段,最合适的往往是 平铺的 SKILL.md / markdown-first 模型。也就是说,扩展就是一些直接可读、可改的文本文件,加上一点最基础的约定。为什么这时简单文件最好?因为团队极小,社会协调成本非常低。大家可以直接看文件、直接理解行为、直接改内容。人和人之间的沟通,足以弥补系统治理机制的缺位。此时你如果上来就做 registry、package 签名、依赖解析、市场化分发,通常不是增强生产力,而是在给自己制造流程负担。

这种平铺模型尤其适合扩展内容本身还偏轻量的时候,比如 instruction bundle(指令包)、小型工作流、局部配置、少量 skills 或 commands。它最大的好处是低认知成本。调试时也很直观:打开文件,看内容,改掉,重跑。对于小团队来说,这种透明性往往比复杂抽象更珍贵。

第二段光谱,对应 3 到 10 名开发者。这时,单靠“大家心里有数”开始不够了。多人并行修改时,命名冲突、版本差异、依赖关系、兼容性问题都会出现。有些扩展还需要声明生命周期钩子、权限信息、宿主兼容性,这些都不是单个 markdown 文件最擅长表达的。因此,这个阶段通常更适合引入 JSON registry(注册表)+ hooks(钩子)

注册表的意义在于,它把扩展生态从“文件集合”提升为“有索引的系统”。它可以集中记录名称、版本、作者、兼容范围、依赖、权限、生命周期事件等元数据。钩子则提供有限但明确的自动化,比如安装、激活、校验、清理。这个阶段的平台还不需要完全演化成 marketplace,但已经需要一张系统级目录表,告诉所有人扩展到底有哪些、彼此是什么关系、能不能安全加载或移除。

这一中间阶段尤其容易走偏。欠设计 的问题是:平铺文件开始失控,没人知道某个扩展依赖哪个工具、删掉会不会出事、哪个版本跟当前宿主兼容。过设计 的问题则是:还没多少人用,就把时间花在造包管理器和分发平台上。JSON registry + hooks 的价值,就是它往往能在“还不必市场化”和“已经不能纯靠人脑管理”之间,提供一个很好的中间解。

第三段光谱,对应 10 人以上,尤其跨团队或跨组织协作。当扩展贡献者达到这个数量级,可扩展性就不再只是“内部方便用的小机制”,而开始变成一个真正的生态系统。此时,完整插件系统 + 发现机制 + 类市场治理 就开始合理了。这里的“marketplace(市场)”不一定意味着公开商店,它更广义地指:发现、索引、发布、版本管理、信任控制、依赖解析、审批流程、评分或审核机制等一整套生态治理能力。

为什么此时它变得必要?因为人已经不可能熟悉每一个扩展了。直接社会信任退场,系统化信任模型必须登场。你会开始关心 semantic versioning(语义化版本)、签名、发布审批、兼容矩阵、弃用策略、搜索与推荐。此时如果还坚持“一个目录里放文件就够了”,平台很快就会失去可控性。

所以,简单性光谱其实可以压缩成一张非常实用的经验表:

  • 1–2 人:平铺文件、markdown 优先、低仪式感。
  • 3–10 人:注册表、元数据、生命周期钩子、有限治理。
  • 10+ 人:完整插件平台、发现能力、信任与分发治理。

这里最容易被误解的一点是:简单,并不等于“永远选择最少机制”。真正的简单,是在当前规模下使用最少但仍能保持秩序的机制。对两人团队来说,平铺文件是简单;对二十人团队来说,同样做法就不再简单,而是混乱。反过来,对两人团队直接上市场化插件系统,也不是成熟,而是负担。

OpenCode、OMO、Claude Code 其实可以落在这条光谱的不同位置上理解。OpenCode 的扩展面比较轻,适合较早阶段快速组合;OMO 则在技能、hook、配置上叠加了更丰富的中层机制,已经更接近注册表加治理的中段;Claude Code 的插件边界更收敛、更产品化,也体现了对较大生态秩序的考虑。三者并不存在谁绝对更先进的问题,而是各自假设了不同的生态规模与控制需求。

更深一层看,可扩展性从来不只是技术设计,它也是组织协调设计。什么样的扩展结构最合适,本质上取决于:有多少人维护它、这些人之间的信任边界如何、扩展变化频率多高、失败代价多大。好的平台设计者,既要警惕 vanity complexity(虚荣式复杂化),也要警惕 false minimalism(伪极简主义)。

因此,最稳妥的原则其实很简单:团队小就从平铺文件开始;当多人协作开始出现摩擦,就引入注册表与钩子;只有当扩展真正形成生态,才升级为完整插件系统。让架构复杂度跟着社区规模一起长,扩展系统才有机会长期保持可持续。