---
title: 加载与发现
description: 验证清单、发现支持的组件，并应用最窄的失败边界。
---

# 加载与发现



## 确定包边界 [#确定包边界]

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

## 先加载清单 [#先加载清单]

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

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

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

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

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

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

## 发现支持的组件 [#发现支持的组件]

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

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

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

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

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

## 路径失败边界 [#路径失败边界]

应用最窄的相关边界：

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


---

Source: [content/docs/client-implementers/loading-and-discovery.mdx](https://github.com/agentplugins/agent-plugins-site/blob/237bbf575f5843214923419f9d0933852662f4f3/content/docs/client-implementers/loading-and-discovery.mdx)
Source commit: 237bbf575f5843214923419f9d0933852662f4f3

---

For a semantic overview of all documentation, see [/zh/sitemap.md](/zh/sitemap.md)

For an index of all available documentation, see [/zh/llms.txt](/zh/llms.txt)