本文最后更新于 2026年1月24日。
在 OpenCode 平台(通常指开源的 AI 编程 Agent 工具,如 opencode-cli)中,Skills(技能) 是一种让 AI 助手按需加载特定知识或自动化脚本的机制。它的核心逻辑是“按需加载”:AI 只有在需要处理特定任务时才会读取技能内容,从而节省上下文窗口(Tokens)。
以下是使用 OpenCode Skills 的详细指南:
1. 技能的基本结构
每一个技能本质上是一个文件夹,里面必须包含一个 SKILL.md 文件。
-
目录结构示例:
Plaintext
my-skill/ ├── SKILL.md # 核心文件:包含元数据和指令 ├── scripts/ # (可选) 自动化脚本,如 Python 或 Shell └── references/ # (可选) 参考文档、API 规范等 -
SKILL.md 内容模板:
文件顶部必须有 YAML 格式的元数据(Frontmatter),这是 AI 识别技能的关键。
Markdown
--- name: git-expert description: 用于编写符合规范的 Git Commit 信息和处理复杂的 Merge 冲突。 --- # Git 专家技能 当你被要求提交代码时,请遵循以下规范: 1. 使用 <type>(<scope>): <subject> 格式。 2. 允许的 type 包括:feat, fix, docs, style, refactor...
2. 放置技能的位置
OpenCode 会在启动时扫描特定目录。你可以将技能放在以下位置:
-
项目级(仅限当前项目):
./.opencode/skills/<技能名>/SKILL.md
-
全局级(所有项目通用):
~/.config/opencode/skills/<技能名>/SKILL.md
-
兼容模式:
OpenCode 也支持 Claude Code 的路径:~/.claude/skills/ 或 ./.claude/skills/。
3. 在对话中使用 Skills
在 OpenCode 的终端界面(TUI)或 CLI 中,你可以通过以下方式调用技能:
A. 自动触发(推荐)
只要你的 SKILL.md 中的 description 写得清晰,AI 会在识别到相关意图时自动加载。
- 例子:如果描述是“处理数据库迁移”,当你输入“帮我写个迁移脚本”时,AI 会发现匹配并自动激活该技能。
B. 手动强制调用
如果 AI 没有自动识别,你可以直接在对话中命令它:
-
"Use the git-expert skill to commit my changes." -
"Load my-skill and run the setup script inside it."
C. 使用命令(新版本特性)
在 OpenCode v1.0.190 后的版本中,你可以使用内置工具命令:
-
skill_find "关键词":搜索相关技能。 -
skill_use "技能名称":强制将该技能加载到当前会话。
4. 高级进阶:带脚本的技能
Skills 不仅仅是文档,还可以包含可执行脚本。
-
在技能文件夹的
scripts/下放入脚本(如optimize_image.py)。 -
在
SKILL.md指令中告诉 AI:“如果用户要求优化图片,请运行./scripts/optimize_image.py”。 -
AI 在获得授权后,会调用系统 Shell 执行该脚本并获取返回结果。
💡 提示:如何写出好的 Skill?
-
描述要“标题党”:技能的
description是 AI 决定是否加载的唯一依据,写得越明确越好(例如:使用“必须加载此技能来格式化代码”比“这是一个代码格式化器”更有效)。 -
保持精简:不要在一个 Skill 里塞入所有东西。将复杂的任务拆分成多个小 Skill(例如
git-commit和git-rebase分开),可以显著提高 AI 的响应速度。