12 可扩展性机制
语料库中的每个系统都提供扩展点,只是机制相差很大。
12.1 插件架构
OpenClaw 提供语料库中最成熟的插件架构——而且自 2026 年春季版本起,是一个外部化的架构:官方的供应商与通道插件已切换为独立的一等 npm 包,带清单优先的元数据,把模型目录与路由表移出核心。 插件由清单驱动(openclaw.plugin.json),在工作区目录中发现,经 jiti 动态加载,并通过类型化的 SDK 契约注册:
-
•
通道插件:实现 ChannelEntry(receive、send、status、configure)。
-
•
供应商插件:实现 ProviderEntry(推理流)。
-
•
技能插件:经能力系统注册。
严格的导入边界被强制执行:扩展的生产代码只允许导入公开的 plugin-SDK 表面和本地 API 桶(barrel)。 直接导入 src/** 被禁止。
不过,OpenClaw 在清单驱动插件阵营里已不再独行。 Codex 的插件架构在我们两次快照之间大幅扩张:一条 marketplace-add 管线(GitHub、git、本地路径、URL)、一个可被模型调用的会话内审批工具(request_plugin_install)、.claude-plugin 格式兼容与工作区级共享,加入了早已存在的插件管理器;插件贡献工具、技能与生命周期 Hook。 OpenHands 的插件系统把趋同挑明了:其插件捆绑技能、Hook、MCP 配置、智能体与命令,而其清单加载器接受 plugin.json 的 [".plugin", ".claude-plugin"] 目录——它刻意读取 Claude Code 的插件格式,这是语料库中最清晰的“经由采纳达成互操作”案例。 Claude Code 本身经一个 JSON/Zod schema(内建、自定义与插件三种来源,见第 11.2 节)支持 MCP 服务器(外部工具)、技能(专门工作流)与智能体定义(自定义智能体类型)。 Pi 把整个问题重新安置:扩展是运行时加载的 TypeScript 模块,面对一个约 33 个类型化事件的 API,覆盖会话生命周期、工具拦截(阻塞与就地参数改写)、整上下文重写,以及不同寻常的——原始供应商 I/O 手术(before_provider_request、after_provider_response);仓库随附 78 个示例,逐项对应其他 Harness 的内建功能,多在 1–16 KB 之间,经包管理器分发(pi install npm:…|git:…)。 OpenCode 的插件是返回约 20 个类型化 Hook 的异步函数(chat.params、tool.execute.before/after、tool.definition 重写、多步 OAuth auth 流),为确定性而顺序执行;自定义工具根本不需要插件——任何 .opencode/tool/*.ts 导出即成工具。
Gemini CLI:扩展 + 斜杠命令 + 早期 MCP 采纳。
Gemini CLI 出货显式的 ExtensionLoader 接口,背后是 GeminiCLIExtension 类型。 扩展可贡献自定义工具(通常经 MCP)、斜杠命令、Hook、技能与 GEMINI.md 片段,从 ~/.gemini/extensions/ 目录发现。 Gemini CLI 是 MCP 的早期采纳者,对 stdio 派生的本地服务器、SSE 连接与 Streamable HTTP 传输都有一等实现,外加内建认证提供者(google-credentials、OAuth)。 MCP 支持超出工具,覆盖提示词与资源(更广的 MCP 规范),多数其他系统的适配器都省略了这部分。 斜杠命令(/agent、/mcp、/skill、/memory、/help)本身也经技能元数据可扩展,让扩展注册新命令。
Mistral Vibe:技能、MCP、自定义工具、智能体与 Hook。
Mistral Vibe 的可扩展性表面已长成五个正交轴。 技能遵循 agentskills.io 规范 [43]:每个技能是一个目录,内含带 YAML frontmatter 的 SKILL.md,从 .agents/skills/、.vibe/skills/、~/.vibe/skills/、~/.agents/skills/ 与任何用户配置的路径发现——如今还补上了内建技能(包括一个向 Harness 自己记录 Harness 的“自我认知”技能)和一个从托管目录安装带版本技能的远程注册表客户端。跨系统的完整比较见第 12.5 节。 MCP 服务器声明为 [[mcp_servers]] 块,支持 http、streamable-http 与 stdio 传输,工具以 {server_name}_{tool_name} 命名空间化,权限与内建工具一致;这一层在两次快照之间成熟为一个受管理的集成表面——从 TUI 驱动的 OAuth 登录流(/mcp add|login|logout|status)、托管的 Mistral “连接器”精选注册表,以及一个让已连接服务器借 Mistral Vibe 的 LLM 后端做自己补全的 MCP 采样处理器——一种反向依赖,语料库中没有其他系统实现。 自定义工具可经路径发现(tool_paths)添加;自定义系统提示词放 ~/.vibe/prompts/{prompt_id}.md;自定义智能体放 ~/.vibe/agents/{agent_name}.toml,对基础配置做深合并覆盖——配置本身如今也是一个显式配置层栈的一部分(默认、用户 TOML、受信任项目 .vibe/config.toml、VIBE_* 环境变量、运行时覆盖、智能体档案)。 第五个轴是面向用户的生命周期 Hook:声明在 hooks.toml 里的 before_tool/after_tool/post_agent_turn shell Hook 可以拒绝工具调用、改写其输入或附加上下文——这是 Claude Code 的 PreToolUse/PostToolUse 直接的结构性兄弟,叠加在(而非取代)内部中间件管线之上。
12.2 基于协议的接口
Mini-SWE-Agent 用 Python Protocols 做结构化子类型:任何实现 Model、Agent 或 Environment 协议的类都可替换,无需继承。 这是最轻的可扩展性机制:不要求注册、清单或 SDK,只要符合接口。
12.3 配置驱动的可扩展性
Aider 的模型注册表含 350+ 模型的逐模型元数据,包括编辑格式、弱模型名、缓存控制设置、额外 API 参数、推理标签处理与编辑器模型配置。 这种数据驱动方式无需改代码即可支持新模型。
Codex 的分层 TOML 配置如今延伸到用户之上:移动设备管理(MDM)、整机系统与企业云端下发的层作为基础默认值进入,垫在用户(config.toml 加具名 profile)、项目(.codex 目录)与会话标志作用域之下;一个单独组合的需求/约束引擎(从同样的 MDM、系统与云端来源供给)校验并可以硬性限制低层能设置什么。这是语料库中最面向企业治理的配置模型。 Mistral Vibe 现在也镜像了分层方法(六层经一个 ConfigBuilder 按 per-field 合并策略合并),使显式配置层栈成为一个双系统模式。
OpenClaw 的配置系统是语料库中最复杂的:经 Zod 校验的 openclaw.json 带数百个嵌套结构,另有一个大型自动生成的 TypeScript 文件存放全部捆绑通道的校验规则,旁边还有一份手工维护的 schema 帮助表面。
12.4 Model Context Protocol(MCP)
MCP 仍是横切性的扩展机制,受 Claude Code、Codex、Gemini CLI、Mistral Vibe、OpenHands、Hermes、OpenCode 与 OpenClaw 支持——11 个系统中的 8 个(10 个编码优先系统中的 7 个)。 OpenHands 经 MCPToolAction/MCPToolObservation 事件类型实现 MCP,用单个 MCPServer 模型校验四种传输(stdio、http、streamable-http、sse),一等认证直至带令牌状态的完整 OAuth 流。 Hermes 的支持近乎完整(stdio/Streamable HTTP/SSE、资源、提示词、采样、征询、OAuth;只忽略提示词列表变更通知),且 Hermes 本身就是一台 MCP 服务器,与 OpenClaw 的通道桥对偶。 OpenCode 覆盖工具、提示词、资源与资源模板,带 OAuth 动态客户端注册(采样与征询显式禁用并留有跟踪 issue 评论)。 语料库中唯一有原则的拒绝者是 Pi:其文档直接拒绝 MCP——“构建带 README 的 CLI 工具”——把技能加 shell 作为它成文的线上协议替代品。
12.5 技能:一个浮现中的能力包标准
与 MCP 并行,第二种横切的扩展机制出现在语料库中:技能(skills)。 MCP 标准化智能体如何与外部工具进程对话;技能标准化智能体如何把一个专业知识单元打包成可发现的目录(指令、可选脚本、可选工具白名单、元数据),可以丢进项目或用户主目录,由智能体在发现时拾取。 Mitra 等人 [80] 从训练侧框出同一思想:技能是智能体流中的可教授单元。 11 个系统中有 9 个实现了某种形式的技能系统;只有 Aider 与 Mini-SWE-Agent 缺席(表 10)。
| 系统 | 技能? | 发现路径 | 调用方式 | 规范 / 加载 |
| Claude Code | ✓ | .claude/skills/、~/.claude/skills/,另有由 paths frontmatter 门控的文件编辑动态发现 | SkillTool(延迟);MCP 提示词按名称经 uniqBy 去重 | 自定义(路径门控扩展);预载 + 按需混合 |
| Codex | ✓ | core-skills/ + skills/ 根;插件提供的技能根 | skills/list 应用服务器 RPC + TUI $ 提及;隐式调用检测 | 自定义 Rust;元数据在按上下文伸缩的 token 预算下预载,正文在 $ 提及或检测到调用时注入;技能声明 MCP/env 依赖,Codex 自动安装 |
| Gemini CLI | ✓ | ~/.gemini/skills/、.gemini/skills/、.agents/skills/,另有内建(skill-creator、antigravity-support);优先级 工作区用户内建 | ActivateSkill 工具把技能包进带 available_resources 树的 XML;权限确认 UI | 对齐 agentskills.io,带 isBuiltin 扩展;启动时预载遍历;安装经路径穿越加固 |
| Mistral Vibe | ✓ | .agents/skills/、.vibe/skills/、~/.vibe/skills/、~/.agents/skills/、用户 skill_paths;项目发现受信任门控 | skill 工具(延迟);用户 /技能名 调用物化为合成工具调用 | 完全符合 agentskills.io;远程注册表客户端(带版本目录);内建自我认知技能 |
| OpenHands | ✓ | {workdir,git-root}/.agents/skills/、.openhands/skills/(+ 遗留 microagents);用户等价路径 + 受管安装 | 元数据放 <available_skills>;正文按需经内建 invoke_skill 工具获取 | agentskills.io 旗标;渐进披露;PathTrigger 规则在文件触碰时注入;服务器端 CRUD/同步/市场 API;把 AGENTS.md/.cursorrules 摄入为带作用域规则 |
| Hermes | ✓ | ~/.hermes/skills/(由 72 个捆绑技能播种;另可经 Skills Hub 安装 102 个官方技能)+ 只读 external_dirs | 三层渐进披露:提示词中的索引 skill_view 关联资产;技能兼任斜杠命令 | 兼容 agentskills.io;信任分级的 Skills Hub(builtin/trusted/community),预安装扫描与隔离区;经 skill_manage 自我创作 |
| Pi | ✓ | ~/.pi/agent/skills/、~/.agents/skills/、.pi/skills/、.agents/skills/(cwd 至 git 根)、包、--skill;项目路径受信任门控 | 无专用工具:<available_skills> XML 索引;正文经普通 read 工具加载;/skill:名称 展开 | agentskills.io,刻意宽松(警告但仍加载);disable-model-invocation 门控 |
| OpenCode | ✓ | 配置目录中的 {skill,skills}/**/SKILL.md、~/.claude/skills、.claude/、.agents/ 向上遍历、额外路径、远程 URL 注册表(带版本的 index.json 缓存) | 原生 skill 工具(延迟:目录只列名称+描述) | agentskills.io 字段集;逐技能权限门控 |
| OpenClaw | ✓ | ~/.openclaw/skills/、.agents/skills/、插件提供、skills.load.extraDirs 配置 | 以 XML 注入系统提示词;/skills 斜杠命令列出合格技能 | 兼容 agentskills.io;经 metadata.openclaw.requires(bins、env、操作系统)门控;受治理的安装(Skill Workshop 审批流、来源经验证的 ClawHub) |
| Aider | ✗ | — | — | — |
| Mini-SWE-Agent | ✗ | — | — | — |
收敛到 SKILL.md 格式与 .agents/skills/ 路径。
格式在九个采纳者中几近普适:以技能命名的目录,内含带 YAML frontmatter 的 SKILL.md(最少要 name 与 description,常带 paths、requires 或 user-invocable 之类的可选字段)。 .agents/skills/ 发现路径(agentskills.io 的规范位置)被六个系统接受(Mistral Vibe、Gemini CLI、OpenClaw、OpenHands、Pi、OpenCode),而各厂商专属的家(~/.claude/skills/、~/.gemini/skills/、~/.vibe/skills/、~/.hermes/skills/、~/.pi/agent/skills/、~/.openclaw/skills/)与项目本地等价路径并存。 最尖锐的互操作数据点:OpenCode 刻意搜索竞争对手的家——它的发现清单包含 ~/.claude/skills 与 .claude/ 目录,因此为 Claude Code 安装的技能无需修改即可在 OpenCode 中工作。
技能对 MCP:平局已破。
MCP 与技能作用于不同的层。 MCP 是让智能体与一个独立运行的进程(暴露工具、提示词与资源)对话的线上协议;技能是打包“指令 + 脚本”组合的文件系统约定,智能体直接读取。 两者可以组合:Claude Code 的技能注册表把看起来像技能的 MCP 提供的提示词去重,Mistral Vibe 则向反方向组合,让 MCP 服务器经采样借用它的 LLM,而技能来自托管注册表。 4 月时两个标准在采纳数上打平(6/8);扩大的 7 月语料库把平局打破、倒向技能——技能 9/11,MCP 8/11——因为 Pi 实现 agentskills.io 而直接拒绝 MCP。 “技能作为 MCP 替代品”如今是一个成文的立场,而不再是并存关系。
延迟加载成为主导模式。
呼应 Claude Code 的工具延迟加载(第 8.3 节),九个采纳者中的八个如今只预载技能元数据,按需取正文——通过专用工具(SkillTool、ActivateSkill、skill、OpenHands 的 invoke_skill)、通过 $ 提及与隐式调用检测(Codex)、通过三层披露链(Hermes),或者最简地,通过普通 read 工具对着 XML 索引(Pi)。 OpenHands 在 4 月还是预载的离群者,随 V1 SDK 转向渐进披露;OpenClaw 仍是唯一的预载者,用合格性门控来补偿——不合格的技能根本不会到达提示词。
门控与条件激活。
架构上最有趣的变体是条件激活。 OpenClaw 的技能声明运行时需求(PATH 上的二进制、环境变量、操作系统家族),加载时即被过滤,防止“如何使用 kubectl”污染没有 kubectl 的机器的提示词。 Claude Code 的 paths frontmatter 在模型触碰匹配文件(经 Read、Edit 或 Write 工具)时激活技能;OpenHands 如今以 PathTrigger 规则实现了同一思想,在文件触碰时注入——把技能与 [19] 的 JIT 上下文哲学联姻。 这是对 MCP 的结构性超越:MCP 对每个已连接服务器一视同仁,不管其工具与当前任务是否相关。
技能长出了供应链——以及作者。
分发在一个季度内职业化了。 远程注册表现在存在于四个系统(Mistral Vibe 的托管目录客户端、OpenCode 的带版本索引缓存 URL 注册表、Hermes 的 Skills Hub、OpenHands 的市场 API),有分发就有供应链安全:Hermes 施加信任分级、安装前静态扫描、隔离区与依赖检查;OpenClaw 把安装走经带来源验证的审批工作流;Gemini CLI 对技能安装做路径穿越加固;Codex 自动安装技能声明的 MCP 服务器依赖(可选先询问)。 更惊人的是,技能有了非人类作者:Hermes 的后台审查智能体从完成的任务中创建并修补技能(由一个策展者维护合集),Gemini CLI 的抽取子智能体把会话挖掘成技能补丁送进收件箱审查。 能力包层正在以惊人的速度获得包管理器的经济学——注册表、来源验证,以及如今由生成产生的包。
观察 8。技能已超越 MCP,成为语料库中采用最广的可扩展性标准:9/11 系统实现 SKILL.md 包(只有 Aider 与 Mini-SWE-Agent 弃权),MCP 为 8/11——4 月的平局被 Pi 明确的“技能要、MCP 不要”立场打破。三个二阶发展标志着这一层的成熟:延迟加载如今是近乎普适的策略(9 个采纳者中的 8 个);条件激活(Claude Code 的 paths、OpenHands 的 PathTrigger、OpenClaw 的 requires)把 JIT 上下文工程推进可扩展性层;一条供应链出现了——四个系统有托管注册表、Hermes 有信任分级与隔离区、OpenClaw 有来源验证——与第一批智能体撰写的技能(Hermes 的自我改进循环、Gemini CLI 的抽取收件箱)一同到来。