Skills
什么是Skills?
Skills是一个可移植、支持版本控制的包,用于让 Agent 学会如何执行特定领域的任务。技能可以包含脚本、模板和参考资料,Agent 可以使用其工具对这些内容进行操作。
▍可移植 :Skills适用于任何支持 Agent Skills 标准的 Agent。
▍受版本控制:Skills以文件形式存储,可以在你的代码仓库中追踪其变更
▍可操作:Skills可以包含脚本、模板和参考资料,Agent 使用其工具对这些内容进行处理。
▍渐进式:Skills按需加载资源,使上下文使用更加高效。
Skills的工作原理
Comate 启动时,会自动从Skills目录中发现并加载Skill,并将它们提供给 Agent 使用。Agent 会看到所有可用Skills,并根据当前上下文决定何时调用它们。
你也可以在 Agent 对话中输入 / 并搜索技能名称来手动调用技能。
Skills目录
技能会自动从以下位置自动加载:
| 位置 | 作用域 |
|---|---|
.agents/skills/ |
项目级 |
.comate/skills/ |
项目级 |
~/.comate/skills/ |
用户级(全局) |
Comate提供的create-rule、create-skill、create-subagent三个系统级的Skills也在~/.comate/skills/目录下。
每个技能应为一个包含 SKILL.md 文件的文件夹:
1.comate/
2└── skills/
3 └── my-skill/
4 └── SKILL.md
技能还可以包含脚本、参考文件和资源等可选目录:
1.comate/
2└── skills/
3 └── deploy-app/
4 ├── SKILL.md
5 ├── scripts/
6 │ ├── deploy.sh
7 │ └── validate.py
8 ├── references/
9 │ └── REFERENCE.md
10 └── assets/
11 └── config-template.json
SKILL.md 文件格式
每个 Skill 都在带有 YAML 前置信息(frontmatter)的 SKILL.md 文件中定义:
1---
2name: my-skill
3description: 简要描述此技能的功能及使用时机。
4---
5
6# 我的技能
7
8为 Agent 提供的详细指令。
9
10## 使用时机
11
12- 在以下情况使用此技能...
13- 此技能适用于...
14
15## 指令
16
17- 为 Agent 提供的分步指导
18- 特定领域的约定
19- 最佳实践和模式
20- 如需向用户澄清需求,请使用提问工具
Frontmatter字段
| 字段 | 必填 | 说明 |
|---|---|---|
name |
Yes | 技能标识符。仅限小写字母、数字和连字符。必须与父文件夹名称一致 |
description |
Yes | 描述技能的作用及其使用场景。由Agent用于判断相关性。 |
在Skills中包含脚本
Skills可以包含 scripts/ 目录,内含可由代理运行的可执行代码。在 SKILL.md 文件中使用相对于Skills根目录的相对路径引用这些脚本。
1---
2name: deploy-app
3description: 将应用部署到预发布或生产环境。在部署代码时使用,或当用户提及部署、发布或环境时使用。
4---
5
6# Deploy App
7
8Deploy the application using the provided scripts.
9
10## Usage
11
12Run the deployment script: `scripts/deploy.sh <environment>`
13
14Where `<environment>` is either `staging` or `production`.
15
16## Pre-deployment Validation
17
18Before deploying, run the validation script: `python scripts/validate.py`
当Skills被调用时,Agent 会读取这些指令并执行引用的脚本。脚本可以使用任何语言编写,例如 Bash、Python、JavaScript,或 Agent 实现所支持的任何其他可执行格式。
可选目录
Skills 支持以下可选目录:
| 目录 | 描述 |
|---|---|
scripts/ |
Agents 可以运行的可执行代码 |
references/ |
按需加载的附加文档 |
assets/ |
模板、图片或数据文件等静态资源 |
请让主 SKILL.md 文件保持简洁,将详细参考资料放在单独的文件中。这样可以更高效地利用上下文,因为 Agent 会按需逐步加载资源——只在需要时才加载。
导入或生成Skills
基于/create-skill生成Skills
Comate内置了系统级别的Skill/create-skill,可以一键创建项目级或个人级别的Skills。
请注意,使用 /create-skill创建Skills的时候,请采用明确的话术告知Agent是创建个人级还是项目级的Skills,会显著提升识别的准确率,例如:
- 创建项目级:
/create-skill在当前仓库创建xxxxx的Skills,以解决xxxx问题 - 创建个人级:
/create-skill创建一个个人级的Skill,以解决xxxx问题
基于/find-skills搜索Skills
Comate内置了系统级别的Skill/find-skills,当本地已安装的skills都不适合处理用户问题时,自动从远端Skills中心搜索、推荐并安装最匹配的新skill,支持安装到当前项目(.comate/skills/<skill_name>/)或全局个人目录(~/.comate/skills/<skill_name>/)。
精选了一批超实用、超好玩的 Skill,试试对 Comate 说:
| 分类 | 你可以说 | Skill | 效果 |
|---|---|---|---|
| 提效狠活 | "有没有能用自然语言查数据库的skill?我想查最近7天的异常订单" | database-helper | 不用手写SQL,说人话就能查数据 |
| "有没有专门做Go代码性能分析的skill?这段代码跑得太慢了" | go-code-analyzer | 41项检查帮你揪出性能瓶颈 | |
| "有没有能自动清理AB实验代码的skill?实验结束了想把实验分支删干净" | experiment-code-cleanup | 自动识别实验分支,干净利落删干净 | |
| 告别切屏 | "有没有skill能直接在Comate里操作iPipe流水线?" | ipipe_pipeline_assistant | 不用切浏览器,对话框里直接操作 |
| "有没有skill能直接在Comate里管理知识库文档?我想查一下这篇文档的内容" | ku-doc-manage | 查文档、建文档、管权限,不用切到知识库网页 | |
| "有没有能搜索iAPI接口的skill?我想找用户登录相关的API" | iapi-manager | 自然语言搜接口,告别翻文档 | |
| "有没有skill能直接在Comate里发如流消息?想给群里通知今天5点发版" | so-send-message | 通知一句话搞定,不用再手动@ | |
| 信息投喂 | "有没有能聚合今天AI热点新闻的skill?" | hot-news-skill-manus | 19家信息源聚合,3分钟看完一天热点 |
| "有没有能搜arXiv论文的skill?想找几篇RAG优化相关的" | arxiv-search | arXiv论文即搜即得,带摘要 | |
| 整点花活 | "有没有能根据PRD自动生成技术方案的skill?" | prd-to-tech-design | 产品文档直出技术设计,先搭框架再填细节 |
| "有没有什么skill能在我写代码累的时候给我打打气" | programmer-cheerleader | 程序员专属啦啦队,负责给你打气续命 |
兼容其他Agent工具
Comate 还会从 Claude、Codex、Cursor等20多个Agent工具的目录加载技能,包括但不限于:.claude/skills/、.codex/skills/、~/.claude/skills/ 和 ~/.codex/skills/等。加载的外部Agent工具的将会被有效标示出来,在实际使用过程中和Comate原生的Skills没有任何区别。
将Rules迁移到Skills
通过内置的/create-skill还可以帮助你现有的Rules转换为Skills。迁移步骤如下:
- 在 Agent 聊天中输入
/create-skill - 输入迁移的诉求,如:转换当前仓库的Rules为Skills,你要先识别哪些可以转换并供我确认,我确认后再转换z
- 在
.comate/skills/中查看生成的技能
- 具有
alwaysApply: true或特定globs模式的规则一般不会被迁移(这并非强制),因为它们有与技能行为不同的显式触发条件。 - 用户规则也不会被迁移,因为它们不存储在文件系统中。
