加载与发现

验证清单、发现支持的组件,并应用最窄的失败边界。

确定包边界

插件根目录是单一的文件系统位置。客户端发现、读取或执行的每个包文件,在解析符号链接、目录联接、重解析点和同等机制后,都必须留在经过文件系统解析的根目录内。

先加载清单

客户端先检查插件根目录中的 plugin.json 并加载它,然后才能发现组件或应用客户端行为。这个封闭 JSON 对象有两个必填字段:$schema 选择 Agent Plugins 版本和验证约定,name 标识插件。其他允许的字段提供可选元数据或客户端扩展数据。完整字段集合请参阅清单参考

根据 $schema 选择本地支持的验证和解释规则;加载插件时不要获取 Schema。缺少 $schema 或其值不受支持时,客户端拒绝插件。

以下两类清单 Schema 违规不是致命错误:

  • 报告并忽略每个未知顶层字段;如果清单的其他部分有效,则继续加载。
  • 报告并忽略不是对象的 extensions 字段,然后继续加载组件。

任何其他清单 Schema 违规都会使整个插件被拒绝。

extensions 是对象时,其每个成员都归反向域名命名空间所标识的客户端所有。忽略客户端未实现的命名空间,不验证其值。

发现支持的组件

Agent Plugins 为每种组件类型分配固定位置:

组件类型固定位置发现规则
技能skills/包含普通 SKILL.md 文件的直接子目录。
MCP 服务器mcp.json根目录中的单个 JSON 配置文档。

缺少固定位置不是错误。如果位置存在但文件系统类型不正确,只将该组件类型标记为无效,并继续处理其他支持的类型。

如果发现的技能不符合 Agent Skills 规范,跳过该技能并继续加载其同级技能。不要递归搜索嵌套后代目录来寻找其他技能。

客户端会忽略未实现的组件类型。缺少支持本身不是插件错误;合规客户端至少实现技能或 MCP 服务器中的一种。如何向用户或模型展示有效技能仍由客户端策略决定。

路径失败边界

应用最窄的相关边界:

  1. 如果 plugin.json 解析到插件根目录之外,拒绝插件。
  2. 如果某个组件类型的固定位置具有错误的文件系统类型或逃逸根目录,只禁用该组件类型。
  3. 如果某个技能的 SKILL.md 逃逸根目录,只跳过该技能。
  4. 如果某个 MCP 条目配置的包路径逃逸其允许的根目录,只跳过该条目。
  5. 拒绝访问其他逃逸包目录的路径。

译文与记录的源版本一致。

来源提交
237bbf575f5843214923419f9d0933852662f4f3
上次同步
2026年8月11日 08:30
规范仓库
规范仓库