词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
本课深入 Skill 的高级应用:与 MCP 协作、五种工作流模式、分发共享策略,帮你打造企业级专业知识包。

场景 1:公司有 5 个 MCP 服务(Notion、Linear、Slack、Drive、GitHub)
用户:帮我创建一个新项目
AI:[调用了 Notion MCP,但没有创建 Linear 任务,也没有通知 Slack]场景 2:Skill 只能做单步操作
用户:帮我生成报告并自动优化直到质量达标
AI:我只能生成报告,"优化"是什么意思?场景 3:团队想共享 Skill
开发者 A:我把 Skill 放到 GitHub 了
开发者 B:我怎么用?每次都要手动下载吗?┌─────────────────────────────────────────────────────────────────────┐
│ 专业厨房 (MCP) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 炉灶 │ │ 冰箱 │ │ 刀具 │ │ 调料架 │ │
│ │ (工具) │ │ (数据) │ │ (操作) │ │ (资源) │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────────┐
│ 菜谱 (Skill) │
│ │
│ 「宫保鸡丁」 │
│ 1. 从冰箱取出鸡肉 200g │
│ 2. 用刀具切丁 │
│ 3. 炉灶开大火,倒油... │
│ 4. 加入调料:花椒、干辣椒... │
└─────────────────────────────────────────────────────────────────────┘| 分类 | 特点 | Skill 重点 |
|---|---|---|
| 1. 文档/资产创建 | 输出质量优先 | 嵌入风格指南、模板、质量检查清单 |
| 2. 工作流自动化 | 多步骤一致性 | 步骤定义、验证关卡、错误处理 |
| 3. MCP 增强 | 工具使用优化 | 协调 MCP 调用 、嵌入领域知识 |
## 最终定稿
1. 应用最终格式
2. 生成摘要
3. 保存最终版本┌─────────────────────────────────────────────────────────────────────┐
│ 搜索优先级(后加载的覆盖先加载的) │
├─────────────────────────────────────────────────────────────────────┤
│ 1. 全局外部目录 │
│ ~/.claude/skills/**/SKILL.md │
│ ~/.agents/skills/**/SKILL.md │
├─────────────────────────────────────────────────────────────────────┤
│ 2. 项目外部目录(从当前目录向上遍历到 git 根目录) │
│ .claude/skills/**/SKILL.md │
│ .agents/skills/**/SKILL.md │
├─────────────────────────────────────────────────────────────────────┤
│ 3. OpenCode 配置目录 │
│ ~/.config/opencode/skill/**/SKILL.md │
│ .opencode/skill/**/SKILL.md │
├─────────────────────────────────────────────────────────────────────┤
│ 4. 配置文件指定的额外路径 (skills.paths) │
├─────────────────────────────────────────────────────────────────────┤
│ 5. 远程 URL 下载 (skills.urls) │
│ 缓存到 ~/.cache/opencode/skills/ │
└─────────────────────────────────────────────────────────────────────┘| 目录 | 作用范围 | 说明 |
|---|---|---|
.opencode/skill/<name>/SKILL.md | 当前项目 | 项目专属 |
~/.config/opencode/skill/<name>/SKILL.md | 全局 | 所有项目可用 |
opencode.json 中指定额外的 Skill 目录:{
"skills": {
"paths": [
"~/my-skills", // 绝对路径(~ 展开为用户目录)
"../shared-skills", // 相对于项目目录
"/opt/company-skills" // 绝对路径
]
}
}{
"skills": {
"urls": [
"https://your-company.com/.well-known/skills/",
"https://skills.example.com/index.json"
]
}
}{
"skills": [
{
"name": "project-setup",
"description": "项目初始化工作流",
"files": [
"SKILL.md",
"references/templates.md",
"references/checklist.md"
]
},
{
"name": "code-review",
"description": "代码审查助手",
"files": [
"SKILL.md"
]
}
]
}https://your-company.com/.well-known/skills/
├── index.json # Skill 索引
├── project-setup/
│ ├── SKILL.md
│ └── references/
│ ├── templates.md
│ └── checklist.md
└── code-review/
└── SKILL.mdindex.json~/.cache/opencode/skills/my-skills/
├── README.md # 给人类看的说明
├── skills/
│ ├── project-setup/
│ │ └── SKILL.md
│ └── code-review/
│ └── SKILL.md
└── examples/
└── screenshots/{
"skills": {
"paths": ["~/opencode-skills/skills"]
}
}| 方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 本地目录 | 个人使用 | 简单直接 | 不便于共享 |
| 额外路径 | 团队共享(NAS) | 一次配置多处使用 | 需要文件系统共享 |
| 远程 URL | 企业/社区 | 自动更新、版本管理 | 需要搭建服务器 |
| Git 仓库 | 开源/团队 | 版本控制、协作方便 | 需要手动 pull 更新 |
| 现象 | 原因 | 解决 |
|---|---|---|
| 远程 Skill 下载失败 | index.json 格式错误 | 检查 JSON 格式和 files 数组 |
| Skill 不显示 | 路径配置错误 | 检查 skills.paths 是否正确展开 |
| 同名 Skill 冲突 | 多处定义同名 | 后加载的覆盖,检查日志警告 |
| MCP 调用失败但 Skill 加载了 | MCP 服务未连接 | 检查 opencode.json 中的 MCP 配置 |
| 多个 MCP 调用顺序混乱 | 没有明确步骤编号 | 用「步骤 1/2/3」明确定义顺序 |
| 迭代优化无限循环 | 缺少终止条件 | 添加「最多迭代 N 次」或质量阈值 |
下一课我们将学习快捷命令,一键触发常用任务。
更新时间:2026-02-14
| 功能 | 文件路径 | 行号 |
|---|---|---|
| Skill 加载与发现 | src/skill/skill.ts | 52-175 |
| Skill Info Schema | src/skill/skill.ts | 18-24 |
| 外部 Skill 目录扫描 | src/skill/skill.ts | 90-122 |
| 远程 Skill 下载 | src/skill/discovery.ts | 38-96 |
| Skill URL 配置 | src/config/config.ts | 664-668 |
| MCP 连接管理 | src/mcp/index.ts | 全文件 |
EXTERNAL_DIRS = [".claude", ".agents"]:外部 Skill 搜索目录OPENCODE_SKILL_GLOB = "{skill,skills}/**/SKILL.md":Skill 文件匹配模式Skill.state():扫描并加载所有 Skill(包含外部目录扫描逻辑)Skill.get(name):获取指定 SkillSkill.all():获取所有 Skill 列表Skill.dirs():获取所有 Skill 目录Discovery.pull(url):从远程 URL 下载 Skill