Skill
将指令和文件打包为带修订版本的 skill,供 agent 按需加载。
Skill 是一组指令和配套文件,agent 在任务需要时可以加载。Skill 使用修订版本管理:每个新软件包新增一个不可变的修订版本,agent 修订版本固定引用精确的 skill 修订版本。运行时的使用方式请参阅 Harness skill。
Skill 通过 ID(sk_…)标识,用于 /api/v1/skills/{skill_id} 等路径和 agent 配置。模型看到的名称来自固定修订版本的 SKILL.md 中声明的 name。同一工作空间的两个 skill 可以声明相同名称,新修订版本也可以改名,但同一 agent 的 skill 必须声明互不相同的名称。
软件包格式
Skill 包是 zip 归档,SKILL.md 位于根目录或唯一的顶层目录中。SKILL.md 使用 UTF-8 编码,YAML front matter 至少声明 name 和 description:
---
name: release-notes
description: Write release notes from merged pull requests.
---
# Release notes
1. List the merged pull requests since the last tag...限制:最多 1000 个文件,单文件 8 MiB,解压后总计 32 MiB,SKILL.md 最多 256 KiB,路径最多 1024 字节。归档条目必须是使用相对路径的普通文件,采用存储或 deflate 压缩,不得加密。
添加 skill
在 Console 中打开 技能 → 导入技能,选择 ZIP 文件或 GitHub 仓库。通过 API 使用时,skill 来源可以是上传文件或公开 GitHub 目录:
# Stage the archive (see Uploads), then create the skill from it
curl -X POST "$A13N_URL/api/v1/uploads" \
-H "Authorization: Bearer $A13N_API_KEY" -H "Idempotency-Key: release-notes-1" -F [email protected]
curl -X POST "$A13N_URL/api/v1/skills" \
-H "Authorization: Bearer $A13N_API_KEY" -H "Content-Type: application/json" \
-d '{"source": {"kind": "upload", "upload_id": "upl_..."}}'{"source": {"kind": "github", "repository": "owner/repo", "ref": "main", "path": "skills/release-notes"}}- 响应的
id(sk_…)用于路径和 agent 配置。name和description默认取自SKILL.md;可显式提供以覆盖。 - GitHub 导入匿名读取公开仓库。
ref默认为默认分支,path默认为仓库根目录。解析得到的 commit 会被记录;传入commit可要求精确提交,不匹配时返回409 conflict,原因为commit_mismatch。每次 GitHub 请求受control.import_timeout限制。 - 上传大小受
objects.upload_bytes限制(默认 1 MiB)。 POST …/skills/validate传入{"source": ...},按创建时相同的规则检查软件包,返回清单(名称、描述、文件、大小、摘要和解析后的来源),不存储任何内容。
修订版本
POST …/skills/{skill_id}/revisions传入{source, note?, make_default?}和 skill 的If-Match,添加修订版本;除非make_default为false,否则设为默认修订版本。包中的SKILL.md可以声明新name。包与当前默认修订版本相同时,不做修改:无论make_default如何设置,都再次返回该修订版本(201),不创建新的修订版本。GET …/revisions按从新到旧列出修订版本;POST …/revisions/{revision_id}/set-default修改默认修订版本。修订版本的skill_id指向所属 skill。GET …/revisions/{revision_id}/content下载归档,GET …/revisions/{revision_id}/files/{path}下载其中一个文件。PATCH …/skills/{skill_id}修改name、description和labels。列表可按label、q(名称或描述)、archived和source(默认修订版本的upload或github)筛选。POST …/archive阻止新的 agent 修订版本固定引用该 skill,并拒绝修改;已固定引用的 agent 仍可使用。POST …/unarchive取消归档。
Agent 修订版本在 skills 中使用 {"skill_id": "sk_…", "revision_id": ...} 选择 skill;不提供 revision_id 时,保存会固定引用 skill 当前的默认修订版本。GET /api/v1/agents?skill_id=sk_… 列出含有引用该 skill 的修订版本的 agent;skill_revision_id 可按一个 skill 修订版本筛选。