skill.md 文件,用于描述 AI agent 在你的产品中可以执行哪些操作。
skill.md 规范 是一种结构化、机器可读的格式,它将产品的能力、必填输入以及约束条件显式列出,从而让 agent 能更可靠地使用这些能力。
Mintlify 会通过一个 agentic loop 分析你的文档,自动为你的项目生成一个 skill.md 文件。随着你更新文档,这个文件会自动保持最新且无需维护。你也可以选择在项目根目录添加一个自定义的 skill.md 文件,以覆盖自动生成的版本。
生成或更新
skill.md 文件最多可能需要 24 小时。/skill.md,即可查看你的 skill.md。Mintlify 只会为公开的文档站点生成 skill.md 文件。
将 skill.md 文件与代理一起使用
如果你使用反向代理,请将其配置为将对
/skill.md、/.well-known/skills/* 和 /.well-known/agent-skills/* 路径的请求转发到你的 Mintlify 子域。skill.md 文件作为 MCP 资源来发现和使用,无需单独安装这些 skills。
要手动将你的 skills 添加到代理的上下文中,请使用 skills 命令行界面 (CLI)。
skill.md 结构
skill.md 文件。生成的文件包括:
- Metadata:项目名称、说明和版本。
- Capabilities:智能体可以通过你的产品完成的能力范围。
- Skills:按类别组织的具体操作。
- Workflows:常见任务的分步流程。
- Integration:支持的工具和服务。
- Context:与你产品架构相关的背景信息。
自定义 skill 文件
skill.md。Mintlify 支持托管单个 skill 文件和用于多个 skill 的目录。如果你删除所有自定义 skill 文件,Mintlify 会重新生成一个 skill.md 文件。
单个 skill 文件
skill.md 文件,以覆盖自动生成的文件。
多个 skill 文件
.mintlify/skills/ 目录。每个 skill 必须位于自己的子目录中,并包含一个 SKILL.md 文件:
/skill.md 端点会重定向到 /.well-known/skills/index.json 发现端点,该端点列出所有可用的 skill。发现端点使每个 skill 可以被单独访问。
你可以同时使用两种方式——在根目录放置一个
skill.md 文件,并使用 .mintlify/skills/ 目录。发现索引会包含所有 skill。使用符号链接避免重复
plugins/ 或 skills/ 目录),你可以将 .mintlify/skills 通过符号链接指向该位置,而无需复制文件:
.mintlify/skills/ 内一样被发现和提供。这对目录符号链接和单个 skill 符号链接都有效。
Frontmatter 字段
skill.md 文件必须以 YAML frontmatter 开头。
| Field | Type | Description |
|---|---|---|
name | string | 该技能的名称。 |
description | string | 该技能功能的简要说明。 |
license | string | 该技能的许可证(例如,MIT、Apache-2.0)。 |
compatibility | string | 运行要求或兼容性说明(例如,运行时依赖)。 |
metadata | object | 以字符串形式的 key-value 对提供的附加 metadata(例如,author、version)。 |
allowed-tools | string | 以空格分隔的、预先批准可供该技能使用的工具列表(实验性)。 |
Example frontmatter
Skills 发现端点
/.well-known/skills/ 和 /.well-known/agent-skills/ 托管了 skills 目录,代理可以通过这些目录以编程方式发现和获取你的 skill 文件。
Agent-skills 发现(推荐)
/.well-known/agent-skills/ 端点遵循 agent-skills 0.2.0 发现规范,并包含内容完整性验证。
GET /.well-known/agent-skills/index.json 返回一个 JSON 清单,列出所有可用的 skills:
| 字段 | 描述 |
|---|---|
$schema | Agent-skills 0.2.0 发现规范的 schema URL。 |
name | 一个 URL 安全的 slug,源自你 skill.md frontmatter 中的 name 字段。 |
type | Skill 格式,始终为 skill-md。 |
description | 来自你 skill.md frontmatter 的简要描述,截断为 1024 个字符。 |
url | 获取完整 skill 文件的路径。 |
digest | Skill 文件内容的 sha256 哈希值,用于完整性验证。 |
GET /.well-known/agent-skills/{name}/SKILL.md 返回通过索引中 slugified 名称标识的特定 skill 的 skill.md 文件。
Skills 索引
/.well-known/skills/ 端点是原始的发现格式。
GET /.well-known/skills/index.json 返回一个 JSON 清单,列出所有可用的 skills:
name 字段是一个 URL 安全的 slug,源自你 skill.md frontmatter 中的 name 字段。
单个 skill 文件
GET /.well-known/skills/{name}/skill.md 返回通过索引中 slugified 名称标识的特定 skill 的 skill.md 文件。
Agent 卡片
/.well-known/agent-card.json 托管一个 Agent-to-Agent (A2A) agent card。agent card 是一个标准化的 JSON 文档,可帮助兼容 A2A 的代理在一次请求中发现你的文档站点和可用的 skills。
GET /.well-known/agent-card.json 返回一个符合 A2A agent card 0.3 规范 的 JSON 文档。skills 数组中的每一项都对应于你 skills 发现端点中的一个 skill。
兼容 A2A 的代理通过获取 /.well-known/agent-card.json 按名称和描述发现你的站点,沿着 documentationUrl 检索人类可读的内容,并迭代 skills 来获取每个 skill.md 文件。该 card 还公开了一个 supportedInterfaces 数组,以便代理在发出请求前协商传输方式。
| 字段 | 描述 |
|---|---|
protocolVersion | A2A 协议版本。始终为 0.3。 |
preferredTransport | 未协商的客户端使用的默认传输方式。始终为 HTTP+JSON。 |
supportedInterfaces | { url, protocolBinding, protocolVersion } 条目数组,描述代理如何访问你的站点。 |
provider | 标识文档站点的 { url, organization }。organization 是站点标题。 |
defaultInputModes | 代理接受的输入媒体类型。始终为 ["text/plain"]。 |
defaultOutputModes | 代理产生的媒体类型。始终为 ["text/plain"]。 |
capabilities | 功能标志。目前为 { streaming: false, pushNotifications: false }。 |
skills | 在 /.well-known/agent-skills/ 暴露的 skills。 |
url、documentationUrl、provider.url 以及每个 skill URL)使用你配置的自定义域名,因此发布的 card 始终公布规范域名而不是 *.mintlify.app 子域名。
如果你使用反向代理,请将其配置为将
/.well-known/agent-card.json 转发到你的 Mintlify 子域名。