Skip to main content
Skill 是基于文件系统的可复用资源,为 Agent 提供领域专长:工作流程、上下文和最佳实践,把一个通用 Agent 变成领域专家。每挂载一个 Skill 都会占用少量会话上下文(用于帮助模型理解何时使用它),Agent 会在任务相关时自动调用。 Skill 有两种来源:
  • 平台内置 Skill(type: zai):平台预置、开箱可用。当前两份:planning(拆步骤、跟 todo)、code-review(按正确性 / 安全 / 清晰度审代码)。列表会随平台更新,以 GET /v1/skills?source=zai 为准。
  • 自定义 Skill(type: custom):你自己编写并上传的技能。

创建自定义 Skill

一个自定义 Skill 就是一个目录:根下必须有 SKILL.md(frontmatter 中的 description 不能为空),加上任意配套文件。通过 multipart 上传整个目录,每个文件 part 的字段名就是它的相对路径,所有文件必须位于同一个顶层目录下:
创建成功返回 201 和 Skill 对象。记下 id(skill_ 前缀)与 latest_version,挂载到 Agent 时需要引用:
上传约束:
  • 所有文件总量 ≤ 20 MB,文件数 ≤ 200(超出的文件 part 会被静默丢弃,不报错)。
  • 根目录必须包含 SKILL.md,且 frontmatter 含非空 description
  • display_title 是可选的 multipart 文本 part,作为展示名持久化。
  • 同一账号下不能重复创建相同目录名的 Skill(返回 409 skill_directory_conflict);每个账号有 Skill 总数配额,超出返回 429。

版本管理

Skill 的版本是不可变的。要更新一个 Skill,向 POST /v1/skills/:id/versions 重新上传完整目录(约束同创建),生成一个新版本;版本号是服务端生成的 epoch 微秒串。相关接口:

把 Skill 挂载到 Agent

创建 Agent 时通过 skills 数组挂载,单个 Agent 最多 20 个 Skill。每个条目的字段:
挂载的 Skill 越多,会话沙箱的启动时间越长。只挂载当前任务需要的 Skill。会话运行时,Skill 内容以文件形式挂载在沙箱的 /mnt/skills 目录下,Agent 按需读取。
同一账号下自定义 Skill 的目录名不能重复,冲突时返回 409 skill_directory_conflict。平台内置 Skill 的 skill_id 就是名称(如 planning),用 GET /v1/skills?source=zailatest_version 后再挂载。 Skill 也可以在创建会话时通过 agent.skills 覆盖,只影响该会话,见创建会话

编写 Skill 的建议

  • SKILL.md 是入口:frontmatter 写清 name 与 description(模型靠它判断何时使用),正文写工作流程与规范;大块参考资料放在子文件里,让模型按需读取,避免一次性占用上下文。
  • 一个 Skill 解决一类任务:范围过宽的 Skill 会稀释触发信号;按领域拆分成多个 Skill 更有效。
  • 附带可执行资产:模板、脚本、示例文件都可以放进目录,Agent 能在沙箱里直接使用它们。

下一步

定义 Agent

skills 数组的完整更新语义

创建会话

按会话覆盖 Skill 配置

本页对应 OpenAPI

Skill:创建、版本、下载