跳到主要内容

Skills

File-based Agent 从自身的 skills/ 目录发现 Skill,并在构建时将其打包。Skill 是可复用的流程或参考资料,Agent 可以在相关时加载它们,无需将所有细节都放入始终启用的 prompt。

本页介绍基于文件的约定。有关代码定义的 Skill,请参阅 Agent Skill。有关 SKILL.md 包格式,请参阅 Workspace Skill

快速开始
快速开始的直接链接

最简单的 Skill 是 skills/ 下的一个 Markdown 文件。文件名将成为 Skill 名称,description 则告诉 Agent 何时加载它。

src/mastra/agents/weather/skills/temperature-units.md
---
description: Use when reporting temperatures or comparing forecast units.
---

Always report temperatures in Celsius and Fahrenheit. Include the user's preferred unit first when known.

Skill、Tool 与 instructions 的区别
Skill、Tool 与 instructions 的区别的直接链接

需求使用原因
始终启用的身份、语气或规则instructions.md模型每一轮都应看到这些指导。
带有输入和输出的可调用操作tools/模型需要执行代码、调用 API 或产生副作用。
在相关时加载的详细参考资料或流程skills/模型只在特定任务中需要完整指导。

Skill 格式
Skill 格式的直接链接

Mastra 支持三种基于文件的 Skill 格式:

格式适用场景
TypeScript/JavaScript 模块希望通过代码默认导出 createSkill() 的结果。
打包的 SKILL.md 目录Skill 包含 instructions 以及 references/ 下的支持文件。
扁平 Markdown 文件Skill 是一个包含 frontmatter 和 instructions 的 Markdown 文件。

对于打包的 Skill,SKILL.md frontmatter 中必须包含 description。扁平 Markdown Skill 的 frontmatter 中也必须包含 description。请说明何时使用该 Skill,而不只是它包含什么内容。

加载的内容
加载的内容的直接链接

File-based Agent Skill 会在构建时添加到生成的 bundle 中,因此部署后的 Agent 不会从磁盘读取它们。

对于打包的 Skill,Mastra 会读取:

  • SKILL.md 中的 metadata 和 instructions。
  • references/ 直属目录下的文件,作为支持性参考内容。

参考文件以文件名作为键。发现期间会跳过 references/ 下的符号链接文件和目录。

与 config 的优先级
与 config 的优先级的直接链接

发现的 Skill 会与 config.ts 中的所有 skills 合并。如果名称冲突,config.skills 优先,并会记录警告。

如果 config.skills 是函数,Mastra 会忽略发现的 Skill 并发出警告,因为值为函数的 Skill 无法进行静态合并。