参加讯飞 AI 开发者大赛 Skill 赛题,第一步该干什么?不是写代码,不是写文档,而是先搞清楚——你的 Skill 到底解决谁的问题。
前言:Skill 是什么
在进入搭建方法之前,我们先对齐一个基本认知:
Skill 是一种结构化的 Prompt Engineering——通过标准的文件格式,把分散在人脑中的领域知识、操作流程和最佳实践,转化为 AI 可理解、可执行的指令集。
一个标准的 Skill 目录结构如下:
skill-name/
├── SKILL.md (必需)
│ ├── YAML frontmatter (必需)
│ │ ├── name: # 技能名称 8-15汉字
│ │ └── description:# 三段式描述
│ └── Markdown instructions
└── Bundled Resources (可选)
├── scripts/ # 可执行代码
├── references/ # 参考文档
└── assets/ # 资源文件
核心只有两个必填字段:name 和 description——但要把这两个字段写好写精准,前期的调研和设计工作远比你想象的多。
为什么需要八步法?
很多同学一开始做 Skill 会踩三个坑:
第一种:“上来就写文件”——还没有想清楚业务场景就开始写 SKILL.md,最后做出来的 Skill 看起来完整,但不知道解决谁的问题。
第二种:“做得太大”——比如一开始就想做"医疗 AI 助手"“智能诊断系统"“全科健康管理专家”,范围太大,边界也危险。
第三种:“只有演示,没有真实流程”——最终展示时只有一段对话截图,没有业务调研、样例输入、输出设计、测试迭代,看不出 Skill 的复用价值。
为了解决这些问题,我们把 Skill 搭建拆解为 8 个步骤,每一步都有明确的输入输出和验收标准:
业务调研 → 场景收敛 → 样例准备 → 流程设计 → 结构设计 → 编写 Skill → 测试迭代 → 打包交付
下面我们用一个真实的案例——体检报告人话翻译官(参赛讯飞 AI 开发者大赛医疗健康赛道)——来逐一拆解每个步骤。
第 1 步:业务调研
核心问题:这个 Skill 为什么值得做?
业务调研不是走过场。它决定了你的 Skill 是"自嗨"还是"真有用”。我们用一个 6 问框架来快速扫一遍:
| 问题 | 说明 | 案例:体检报告人话翻译官 |
|---|---|---|
| 谁会用? | 目标用户是谁 | 每年做体检的普通人,年龄 25-55 岁,非医学背景 |
| 在什么场景用? | 具体发生的时间/地点 | 拿到体检报告后,看到 ↑↓ 箭头和医学术语,感到焦虑 |
| 现在痛点是什么? | 用户为什么需要这个 Skill | 看不懂指标含义,不知道哪些严重哪些没事,百度搜了更焦虑 |
| 输入是什么? | 用户提供什么 | 体检报告中的异常指标列表(文本粘贴) |
| 输出是什么? | Skill 产出什么 | 逐项人话翻译 + 关注等级 + 生活建议 + 就医提醒 |
| 哪些事情不能做? | 安全边界 | 不诊断疾病、不推荐药物、不代替医生、不制造恐慌 |
调研方法推荐:如果你有自己的目标用户群,做 3-5 个用户访谈比任何 desk research 都有效。如果没有,就从自己的真实痛点出发——“我自己拿到体检报告时最想知道什么?”
第 2 步:场景收敛
核心问题:这个 Skill 到底只做哪一件事?
一个 Skill 最怕"大而全"。医疗健康场景尤其如此——范围越大,越容易越界,越难测试,越难拿高分。
收敛的方法可以参考双钻模型:
- 发散:先列出所有可能的方向(病历结构化、体检解读、用药提醒、症状分诊……)
- 收敛:选一个最具体、边界最清晰的方向,砍掉所有"顺便也做一下"的功能
场景收敛的核心是定义 4 个边界:
| 边界 | 问题 | 案例 |
|---|---|---|
| 输入边界 | Skill 接收什么 | 脱敏体检报告文本(指标名称+数值+单位+参考范围) |
| 输出边界 | Skill 产出什么 | 人话翻译 + 关注等级(放心/留意/建议就医)+ 生活建议 |
| 能力边界 | Skill 能做什么 | 解释指标含义、标注偏离程度、给出非药物建议 |
| 安全边界 | Skill 不能做什么 | 不诊断疾病、不推荐药物、不代替医生、不解读影像报告 |
在我们的案例中,收敛决策很明确:
❌
病历结构化 + 体检解读 + 药品问答 + 健康管理(太宽) ✅ 只做一件事:体检报告异常指标的通俗翻译与关注等级标注
第 3 步:样例准备
核心问题:这个 Skill 要处理什么样的数据?处理完应该长什么样?
没有样例的 Skill 是空泛的。样例就像"设计图"——写 SKILL.md 之前,你要先知道输入长什么样、输出长什么样。
输入样例:
总胆固醇 6.8mmol/L ↑(参考值 3.1-5.7)
低密度脂蛋白 4.2mmol/L ↑(参考值 0-3.4)
谷丙转氨酶 58U/L ↑(参考值 0-40)
尿酸 420μmol/L(参考值 200-430)
血压 135/85mmHg(参考值 <120/80)
理想输出样例(节选):
📊 关注等级:🟡 留意
🗣️ 人话翻译:这是在查你血液里所有"油"的总量
💡 类比:就像水管里的水垢——6.8 说明水垢开始变厚了
🥗 生活建议:减少高油高脂食物,增加膳食纤维
但只有"理想输出"是不够的。真实场景中经常有信息缺失、表达模糊、用户追问越界等问题。尤其是医疗这种高风险领域,至少要覆盖 4 种测试场景:
| 类型 | 用途 | 案例 |
|---|---|---|
| 正常样例 | 验证基本功能 | 完整指标列表 + 参考范围 |
| 缺失样例 | 验证会不会脑补 | 用户只说了"总胆固醇6.8"没有单位 |
| 模糊样例 | 验证能否标记不确定 | 用户说"好几个箭头"但没有具体数值 |
| 高风险样例 | 验证会不会越界 | 用户问"这个病吃什么药好" |
第 4 步:工作流程设计
核心问题:第一步做什么?第二步做什么?
流程设计就是把一件事拆成可执行的步骤序列。一个好的流程让 AI 不会漏步骤、不会跳逻辑。
以体检报告翻译为例,流程是:
步骤 1:解析输入
→ 识别指标名称、数值、单位、参考范围
→ 筛选出异常项
步骤 2:逐项翻译
→ 对每个异常指标输出:人话翻译 + 类比 + 关注等级 + 建议
步骤 3:综合结论
→ 整体评估 + 优先级排序 + 就医提醒
步骤 4:可视化
→ Mermaid 图表展示异常分布
流程设计的原则:
- 每个步骤只做一件事
- 步骤之间有明确的输入输出衔接
- 每个步骤都要有"异常处理"(用户没提供足够信息怎么办)
第 5 步:Skill 结构设计
核心问题:这个 Skill 文件夹里应该放什么?
不是所有 Skill 都需要复杂的目录结构。实际上,最小可用 Skill 只需要一个 SKILL.md 文件。但随着场景变复杂,你可能需要以下目录:
| 文件/目录 | 作用 | 何时需要 |
|---|---|---|
SKILL.md | 触发场景、目标、流程、输出格式、安全边界 | 必需 |
references/ | 字段定义、医学映射表、安全规则详情 | 规则较多时 |
examples/ | 输入样例、期望输出、测试材料 | 推荐始终包含 |
scripts/ | 稳定的计算逻辑、格式转换 | 需要精确计算时 |
对于体检报告案例,我们选择了最简单的结构:
体检报告人话翻译官/
├── SKILL.md # 核心指令文件
└── examples/
├── test-case-001.md # 10项指标的模拟输入
└── 真实跑测输出.md # 完整跑测报告
第 6 步:编写 Skill
核心问题:怎么写 SKILL.md?
到了这一步,我强烈推荐用自然语言跟 AI 对话来生成 Skill——你不是写一个文件,而是告诉 AI 你想要什么。
你可以这样说:
请帮我创建一个 Codex Skill,名称为"体检报告人话翻译官"。
这个 Skill 用于:输入体检报告中的异常指标,逐项翻译成通俗易懂的人话, 标注"放心/留意/建议就医"三个关注等级,给出非药物的生活改善建议。
要求:
- 不诊断疾病
- 不推荐药物
- 不代替医生
- 原文未提及的写"未提及"
- 严重指标引导就医
然后根据 AI 生成的初版,你可以在对话中不断迭代:
- “输出格式太自由了,请固定成表格结构。”
- “安全边界不够,请加强’不诊断、不调药、不脑补’的规则。”
- “请为每个关注等级补充具体的判定标准。”
SKILL.md 的关键质量检查点:
- ✅ name 是否 8-15 个汉字,是否具体无歧义
- ✅ description 是否三段式完整(核心能力 + 适用场景 + 触发词)
- ✅ 触发词是否 ≥6 个,覆盖书面指令和自然口语
- ✅ Workflow 是否一步步写清楚,没有"一步到位"的黑箱
- ✅ 安全边界是否足够严格,有没有遗漏红线
- ✅ 输入输出格式是否具体到文件格式和结构
第 7 步:测试迭代
核心问题:这个 Skill 能稳定工作吗?
Skill 写完不测试,就像程序写完不运行。医疗类 Skill 至少要测试 5 种情况:
| 测试类型 | 目的 | 我们的测试用例 |
|---|---|---|
| 正常输入 | 验证基本功能 | 10 项完整指标 |
| 缺失信息 | 验证是否会脑补 | 缺少单位或参考范围 |
| 模糊表达 | 验证能否标记不确定 | 只有"好几个箭头" |
| 矛盾信息 | 验证是否能提示复核 | 数值和描述不一致 |
| 高风险情况 | 验证是否会及时引导就医 | 指标超上限 2 倍 |
常见问题和修改方向:
| 问题 | 修改方向 |
|---|---|
| 输出太自由 | 固定输出结构(表格/JSON) |
| 经常脑补 | 加强"原文未提及"规则 |
| 安全边界弱 | 补充 safety-rules 或严格的约束清单 |
| 没有原文依据 | 要求每个字段带 source/evidence |
| 诊断口吻太强 | 改成"需医生确认"或"仅供参考" |
| 对缺失数据不敏感 | 增加缺失项检查和对应的处理逻辑 |
在我们的测试中,最关键的发现是:比喻需要严格审核。一个不恰当的医学类比可能导致用户误解病情。所以我们为每个常用指标建立了固定的比喻库,而不是让 AI 自由发挥。
第 8 步:打包交付
核心问题:怎么交付一个完整的 Skill?
这一步很多人会栽坑:
- ❌ 只交了 SKILL.md,没交整个 Skill 文件夹
- ❌ 把整个工作区打包,混了很多无关文件
- ❌ 压缩包打开后多套了一层目录,AI 找不到 SKILL.md
正确的打包方式:
体检报告人话翻译官.zip ← 压缩包根目录就是 Skill 名
├── SKILL.md ← 直接放在根目录
└── examples/ ← 可选,但推荐包含
├── test-case-001.md
└── 真实跑测输出.md
注意:压缩包打开后第一层就是 SKILL.md,不要再套一层
src/或skill/目录。SkillHub 和 AI 解析工具都是直接从根目录查找 SKILL.md 的。
案例回顾:体检报告人话翻译官
最后,让我们看看这个 Skill 从 0 到 1 的全貌。
业务调研结果:大多数人体检后看不懂报告,搜百度越搜越焦虑,需要一个"人话翻译"级别的解读工具。
场景收敛结果:只做体检报告异常指标的通俗解读,不做病历、不做药品、不做诊断。
输入样例:
总胆固醇 6.8mmol/L ↑(参考值 3.1-5.7)
低密度脂蛋白 4.2mmol/L ↑(参考值 0-3.4)
输出样例(节选):
🗣️ 人话翻译:这是在查你血液里所有"油"的总量
💡 类比:就像水管里的水垢
📊 关注等级:🟡 留意
🥗 生活建议:减少高油高脂食物,增加膳食纤维
核心安全边界:
- 不诊断疾病——所有解读均为"这是什么指标/异常意味着什么"
- 不推荐药物——生活建议仅限于饮食、运动、作息等非药物方案
- 不否定医生——如果用户已在看医生,引导遵循医嘱
- 严重指标引导就医——显著异常必须标注"建议就医"
测试结果:10 项指标全部正确识别,关注等级判定合理,所有类比经过医学准确性审核,严重指标均标注了就医提醒。在缺失信息测试中,Skill 正确标记"未提供"而非自行脑补。
总结:八步法的核心思维
把这 8 步走完,你得到的不仅是一个 SKILL.md 文件,而是:
- 一种产品思维——先理解真实问题,再收敛任务范围
- 一种工程习惯——先准备样例和流程,再编写指令
- 一种交付意识——写完之后测试、迭代,并完整打包交付
八步法的价值不在于机械地走完全程,而在于帮你在每个决策点上停下来想清楚。当你的 Skill 在 SkillHub 上获得下载和收藏时,你会发现——每一步的思考都体现在了最终的用户体验里。
附录:快速检查清单
| 步骤 | 完成标准 |
|---|---|
| 业务调研 | 6 问框架全部回答清楚 |
| 场景收敛 | 4 个边界(输入/输出/能力/安全)明确定义 |
| 样例准备 | 至少包含正常、缺失、模糊、高风险 4 类样例 |
| 流程设计 | 每个步骤都有输入输出和异常处理 |
| 结构设计 | 目录结构只放必要的文件 |
| 编写 Skill | name 8-15字、description 三段式、触发词 ≥6 |
| 测试迭代 | 至少 5 种测试场景全部通过 |
| 打包交付 | ZIP 根目录直接放 SKILL.md |
本文案例 Skill 已参加 2026 年讯飞 AI 开发者大赛医疗健康赛道。如果你想获取完整代码或在 SkillHub 上体验,欢迎留言交流。