SKILL.md 加上若干资源文件(脚本、模板、参考文档等),打包成不可变的版本。把技能挂载到智能体上,模型就能在任务中按照技能说明使用这些能力。
什么是技能
每个技能是一个文件包,其中恰好包含一个SKILL.md。SKILL.md 的 frontmatter 声明技能的名称与描述,正文是写给模型阅读的使用说明;包内其余文件是技能工作时需要的资源。
SKILL.md 示例
SKILL.md,并按说明使用包内资源完成任务。
官方技能与自定义技能
技能分为两类,两者使用相同的版本、文件与挂载规则:官方技能可读不可改:你可以查看它的
SKILL.md 内容并直接引用,但不能更新或归档。如需定制,参照官方技能的内容创建你自己的自定义技能。不可变版本与版本冻结
技能与智能体一样采用不可变版本机制,二者配合使用:- 创建即不可变:创建技能时生成第一个不可变版本,自定义技能创建后不能再修改内容。
- 智能体冻结精确版本引用:创建或更新智能体时,技能引用的
version可以省略或填"latest",服务端会在写入新版本前解析并冻结为 精确版本引用。 - 会话冻结智能体版本:会话在创建时冻结当时的智能体版本,因此一次会话运行期间技能文件不会变化,中断恢复后也继续使用同一版本。
- 修订等于换新:需要修订技能时,归档旧技能并创建新技能(新技能有新的 ID 和版本线),再更新智能体的引用以生成新的智能体版本。已有的智能体版本和会话继续使用当时冻结的版本,不受影响。
挂载到云沙箱
会话启动时,平台把智能体冻结的每个技能版本以 只读 方式挂载到云沙箱的固定路径:- 每个技能挂载为独立目录,挂载目录名即技能的名称(
SKILL.md中声明的name); - 文件 按需读取,首次访问时才加载,不会一次性全部下载;
- 挂载只读,会话中的任何进程都不能修改技能文件;
- 同一智能体不能重复引用同一个技能;两个技能的名称相同时会占用同一挂载路径,创建或更新智能体会被拒绝。
接口一览
归档和删除只作用于自定义技能,对官方技能调用会返回 404。两者是同一个归档操作的两种写法:返回 204 且无响应体,已归档的技能不能被新的智能体版本引用,已有的精确版本引用继续可用。
KIMI_API_KEY 读取 API Key。请求地址默认使用 https://api.moonshot.cn。
创建自定义技能
创建技能时必须通过multipart/form-data 提交一个必填的 file part:包含 SKILL.md 和资源文件的 .zip 或 .skill 二进制包。包内必须恰好包含一个 SKILL.md,缺失或出现第二个都会导致创建失败(400)。
平台会解析 SKILL.md frontmatter 中的 name 和 description,作为该版本面向模型的元信息。创建成功后返回 {"skill": Skill, "version": SkillVersion},请保存 skill.id 用于在智能体中引用。
修订自定义技能
自定义技能创建后不可修改。需要修订时:归档旧技能,用修订后的技能包创建新技能,再在智能体中更新引用以生成新的智能体版本;已有的智能体版本和会话不受影响。官方技能始终只读,不在本流程中。在智能体中引用技能
创建或更新智能体时,在skills 数组中声明技能引用,version 可省略或填 "latest":
"1" 的写法。
以下情况会导致创建或更新智能体被拒绝:
- 引用的技能不可见、已被归档,或指定版本不存在;
- 同一智能体中重复引用同一个
skill_id; - 两个技能的名称相同(挂载路径冲突)。
active 与 archived 两种;技能之后被归档(archived)时,已建立的精确版本引用不受影响。
归档技能
不再维护的自定义技能可以归档。归档后 新的智能体版本不能再引用它,但已有的精确版本引用继续可用。限制
下一步
智能体
在智能体配置中引用技能并冻结版本。
会话
用挂载好技能的智能体启动一次任务。
云沙箱参考
了解沙箱文件系统与挂载路径布局。
工具
了解内置工具集的配置方式。