Skills 是 OpenCode 中一种可复用的“技能包”,它将完成特定任务的指令、资源和工作流打包,让 AI 能按预设流程执行任务,而非每次都从零开始理解需求。
学习资源
- 官方 Skills 仓库:https://github.com/anthropics/skills
- OpenSkills 工具:https://github.com/numman-ali/openskills
- OpenCode 项目:https://github.com/opencode-ai/opencode
- Skill0 平台:https://skill0.io/
Skills 是什么?
- 本质:一个包含
SKILL.md文件的文件夹,其中定义了技能名称、使用场景、执行规则,并可附带脚本、文档或模板。 - 作用:将常用任务(如代码审查、项目初始化、错误分析等)固化为可复用的工作流,提升 AI 执行任务的稳定性和效率。
如何使用 Skills?
- 创建 Skills 目录 在
~/.config/opencode/skill目录下创建你的技能文件夹(如code-review),并编写SKILL.md文件。 - 编写技能描述 在
SKILL.md中定义技能名称、场景、规则和示例,例如:markdown# 代码审查 - 场景:审查代码质量、发现潜在问题 - 规则:检查代码风格、性能、安全等 - 示例:`@code-review 帮我审查这个文件` - 调用技能 在 OpenCode 中,通过
@技能名或斜杠命令调用,AI 会自动加载技能并执行任务。
当然可以。以下是一些实用的 OpenCode Skills 示例模板和最佳实践,帮助你将常用工作流固化为可复用的技能。
实用 Skills 示例模板
1. 代码审查 (code-review)
目录结构
.opencode/skill/code-review/
├── SKILL.md
└── scripts/review.shSKILL.md 内容
markdown
---
name: code-review
description: 审查代码质量、发现潜在问题,包括代码风格、性能、安全等。
---
# 代码审查
## 使用场景
- 提交前代码审查
- 代码重构前评估
- 新功能代码质量检查
## 审查规则
- 检查代码风格一致性
- 识别潜在性能问题
- 发现安全漏洞
- 评估可维护性
## 调用方式
- `@code-review 帮我审查这个文件`
- `@code-review 审查当前目录下的所有 Python 文件`2. Docker 容器化 (docker-composer)
SKILL.md 内容
markdown
---
name: docker-composer
description: 创建 Docker Compose 配置、Dockerfile 和容器编排的专家指南。
---
# Docker 理念
## 容器原则
- **每个容器一个进程**:保持容器专注
- **不可变基础设施**:不要修改正在运行的容器
- **无状态容器**:将状态存储在卷或外部服务中
- **最小化镜像**:更小 = 更快 + 更安全
## 最佳实践
- **应该**:在生产环境中使用多阶段构建
- **应该**:锁定依赖项的特定版本
- **应该**:使用 `.dockerignore` 排除不必要的文件
- **应该**:以非 root 用户身份运行
- **不应该**:将密钥存储在镜像或 Dockerfile 中
- **不应该**:在生产环境中使用 `latest` 标签
- **不应该**:安装不必要的软件包
## 检查清单
### Dockerfile
- [ ] 生产环境多阶段构建
- [ ] 非 root 用户
- [ ] 最小基础镜像(尽可能使用 Alpine)
- [ ] 优化层缓存(依赖项优先于代码)
- [ ] 定义健康检查
- [ ] 配置 `.dockerignore` 文件
### Docker Compose
- [ ] 服务已启用健康检查
- [ ] 用于持久化数据的卷
- [ ] 用于服务隔离的网络
- [ ] 定义资源限制
- [ ] 配置重启策略
- [ ] 环境变量已外部化
### 安全性
- [ ] Dockerfile 和 docker-compose 中不包含任何密钥
- [ ] 已扫描镜像漏洞
- [ ] 权限最小化(不使用 root)
- [ ] 服务之间已进行网络隔离
## 何时使用
- 容器化新应用程序
- 使用 Docker 设置开发环境
- 创建多服务架构
- 优化 Docker 构建
- 调试容器问题
- 使用 Docker 设置 CI/CD 流水线
- 从 docker-compose 迁移到 Kubernetes3. SQL 审查 (sql-reviewer)
SKILL.md 内容
markdown
---
name: sql-reviewer
description: SQL 审查和优化,识别性能、安全和可维护性问题。
---
# SQL 审查
## 审查重点
- **性能**:索引缺失、全表扫描、N+1 查询
- **安全**:SQL 注入风险、权限过大
- **可维护性**:复杂嵌套查询、缺少注释
## 最佳实践
- 使用参数化查询防止 SQL 注入
- 避免 `SELECT *`,明确指定字段
- 为频繁查询的字段添加索引
- 使用 `EXPLAIN` 分析查询计划
- 避免在循环中执行 SQL 查询
## 调用示例
- `@sql-reviewer 审查这个 SQL 文件`
- `@sql-reviewer 分析这个查询的性能`4. 测试生成 (test-generator)
SKILL.md 内容
markdown
---
name: test-generator
description: 为代码生成单元测试、集成测试和端到端测试。
---
# 测试生成
## 测试类型
- **单元测试**:测试单个函数或类
- **集成测试**:测试模块间交互
- **端到端测试**:测试完整业务流程
## 测试框架支持
- Python: pytest, unittest
- JavaScript: Jest, Mocha
- Java: JUnit, TestNG
## 测试原则
- 测试覆盖率 > 80%
- 测试名称描述行为而非实现
- 使用模拟对象隔离依赖
- 测试边界条件和异常情况
## 调用示例
- `@test-generator 为这个函数生成单元测试`
- `@test-generator 为这个模块生成集成测试`5. 文档生成 (doc-generator)
SKILL.md 内容
markdown
---
name: doc-generator
description: 为代码生成 API 文档、README 和项目文档。
---
# 文档生成
## 文档类型
- **API 文档**:函数、类、接口说明
- **项目文档**:README、安装指南、贡献指南
- **架构文档**:系统设计、数据流图
## 文档标准
- 使用 Markdown 格式
- 包含代码示例
- 提供快速开始指南
- 维护更新日志
## 调用示例
- `@doc-generator 为这个模块生成 API 文档`
- `@doc-generator 生成项目 README`Skills 最佳实践
1. 原子化设计
- 单一职责:每个 Skill 只做一件事,不要创建"全能 Skill"
- 聚焦场景:明确 Skill 的使用场景和边界
- 可组合性:多个 Skills 可以组合使用,如
@code-review+@test-generator
2. 渐进式披露
- SKILL.md 精简:主文件保持在 500 行以内,超过则拆分到子文件
- 按需加载:细节内容放在
references/目录,Agent 只在需要时读取 - 避免深层嵌套:引用层级不超过 1 层 (SKILL.md → ref.md)
3. 命名规范
- 动名词形式:如
code-review、docker-composer、sql-reviewer - 小写字母+连字符:仅使用小写字母、数字、连字符
- 避免无意义名称:不要使用
helper、utils等模糊名称
4. 权限控制
在 opencode.json 中配置权限,确保只有可信的技能可以执行写操作:
json
{
"agent": {
"build": {
"permission": {
"bash": {
"git push": "ask",
"grep *": "allow"
}
}
}
}
}5. 迭代优化
- 用 AI 训练 AI:利用 Claude 的
skill-creator生成和优化 Skills - 持续改进:根据实际使用反馈不断优化 Skill 内容
- 社区分享:将通用 Skills 开源分享,促进社区发展
通过遵循这些最佳实践,你可以将日常开发中的重复任务固化为可复用的 Skills,大幅提升开发效率。建议从最常用的场景开始,逐步积累自己的 Skills 库。
