拓冰建站拓冰建站
首页 / 资讯中心 / 正文

2026官方首发!Claude官方Skills构建完全指南:从零到一打造你的AI技能包(33页完整版PDF中英文)

1. 从一堆散装提示词到可复用技能包我踩过的坑Claude Skills 是 Anthropic 在 Agent 能力基础上推出的一套「技能封装规范」它把一个文件夹、一份 SKILL.md、若干脚本和参考资料打包成可被 Claude 按需加载的能力单元。简单说它解决的是「我每次都要把同一段提示词复制粘贴一遍」的问题。适合谁做 AI Agent 的开发者、天天用 Claude Code 写代码的工程师、以及想把内容发布、数据查询、状态统计这类重复流程固化下来的 AI 工具使用者。我最早接触 Skills 的时候是把它当成「高级一点的提示词模板」来用的。结果第一次跑就翻车SKILL.md 里塞了两千多字Claude 每次对话都把这坨东西全量加载Token 消耗直接翻倍响应还变慢。后来才明白官方设计的核心是「渐进式披露」——YAML 前置元数据只放「什么时候该用我」的触发信息正文才放完整指令链接文件再按需展开。这个三级结构如果搞反了技能包不但不省事反而变成负担。这篇就按我实际搭一遍的路径来写先讲清楚 Skills 的目录结构和设计原则再给出可复制的 config.toml 骨架和 TaoToken 统一 Key 的接入配置然后一步步验证请求是否跑通最后把几个高频报错摊开讲。你跟着做能拿到一个能跑起来的 AI 技能包而不是一份看完就忘的文档。2. TaoToken 前置准备统一 Key 与接入地址在动手写 SKILL.md 之前先把「调用通道」铺好。Skills 本身是能力描述层真正执行时还是要走模型 API。我习惯用 TaoToken 做统一入口原因是它把多家模型的 Key 收敛成一个切换模型时不用改代码里的 base_url 和鉴权逻辑技能包的可移植性会好很多。你需要准备的东西只有两样一个 TaoToken 账号以及一个 API Key。官网入口在这里官网地址https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content注册登录后进控制台创建 API Key。注意 Key 只在创建时完整显示一次复制下来存到环境变量里别硬编码进 SKILL.md 或脚本。API Keys 管理页https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite接入地址统一用https://taotoken.net/api这个地址不加任何 UTM 参数直接作为 base_url 使用。下面所有配置里的TAOTOKEN_API_KEY都指你刚创建的那把 Key。环境变量建议这样设export TAOTOKEN_API_KEYsk-你的实际key export TAOTOKEN_BASE_URLhttps://taotoken.net/apiWindows PowerShell 用$env:TAOTOKEN_API_KEYsk-...。设完可以用echo $TAOTOKEN_API_KEY确认一下有没有生效这一步别省后面报 401 十有八九是这里没设对。3. 可复制的 Skills 目录结构与 config.toml 骨架3.1 目录结构一个技能包长什么样官方规范里一个 Skill 就是一个文件夹最小可用结构如下my-skill/ ├── SKILL.md # 必需YAML 前置元数据 Markdown 指令 ├── scripts/ # 可选可执行代码 │ └── fetch_data.py ├── references/ # 可选按需加载的文档 │ └── api_spec.md └── assets/ # 可选模板、字体、图标 └── report_template.mdSKILL.md 是唯一必需项。它的开头必须是 YAML 前置元数据用---包起来里面至少要有name和description。description 写得好不好直接决定 Claude 能不能在正确的时机触发这个技能——它是第一级「始终加载」的内容所以要精炼只讲「我是干什么的、什么时候用我」。--- name: daily-report description: 当用户需要生成日报、汇总当日数据或整理工作记录时使用。支持从指定数据源拉取指标并套用模板输出。 --- # 日报生成技能 ## 使用步骤 1. 读取 references/api_spec.md 确认数据源字段 2. 运行 scripts/fetch_data.py 拉取当日指标 3. 套用 assets/report_template.md 生成最终日报正文部分就是第二级内容只在 Claude 判断相关时才加载。所以这里可以写详细但别把参考资料整段抄进来——那些应该放 references/ 里让 Claude 需要时自己去读。3.2 config.toml 骨架把模型调用参数固化Skills 在 Claude Code 或自建 Agent 里跑的时候通常需要一个配置文件来指定模型、base_url、超时等。下面这份 config.toml 可以直接抄改掉 Key 引用方式即可[llm] provider taotoken base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY model claude-sonnet-4-20250514 max_tokens 4096 temperature 0.3 timeout_seconds 60 [skills] root_dir ./skills auto_load true max_loaded_skills 3 [skills.daily-report] enabled true trigger_keywords [日报, 汇总, 工作记录]几个参数说明一下。max_loaded_skills控制同时加载的技能数量官方强调「可组合性」但组合太多会挤占上下文我实测 3 个以内比较稳。temperature对技能类任务建议调低0.2 到 0.4 之间输出更稳定。api_key_env写环境变量名而不是 Key 本身避免泄露。3.3 渐进式披露的三级落地把三级机制对应到文件上是这样级别对应内容加载时机体积控制第一级SKILL.md 的 YAML 前置元数据始终加载越短越好50 字内第二级SKILL.md 正文判断相关时加载几百字讲清步骤第三级references/ 与 assets/按需导航不限但别主动全读很多人第一次写会把第二级和第三级混在一起导致正文膨胀。记住一句话正文只写「怎么做」参考资料写「细节是什么」。4. 接入配置与逐步验证请求4.1 用 curl 先验证 Key 通不通在写任何脚本之前先用最原始的方式确认通道没问题curl https://taotoken.net/api/v1/messages \ -H x-api-key: $TAOTOKEN_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 128, messages: [ {role: user, content: 只回复两个字通了} ] }返回里能看到content数组和正常文本就说明 Key 和 base_url 都对。如果返回 401回去检查环境变量返回 404检查 base_url 有没有多写或少写/v1。4.2 用 Python 脚本加载技能并调用下面这个脚本演示「读取 SKILL.md 前置元数据 → 拼进系统提示 → 调用模型」的最小闭环import os import re import requests BASE_URL os.environ[TAOTOKEN_BASE_URL] API_KEY os.environ[TAOTOKEN_API_KEY] def load_skill_meta(skill_path): with open(skill_path, r, encodingutf-8) as f: content f.read() match re.match(r^---\n(.*?)\n---, content, re.DOTALL) if not match: raise ValueError(SKILL.md 缺少 YAML 前置元数据) return match.group(1), content def call_claude(system_prompt, user_input): resp requests.post( f{BASE_URL}/v1/messages, headers{ x-api-key: API_KEY, anthropic-version: 2023-06-01, content-type: application/json, }, json{ model: claude-sonnet-4-20250514, max_tokens: 1024, system: system_prompt, messages: [{role: user, content: user_input}], }, timeout60, ) resp.raise_for_status() return resp.json()[content][0][text] if __name__ __main__: meta, full load_skill_meta(./skills/daily-report/SKILL.md) system f可用技能元数据\n{meta}\n\n按需加载技能正文。 print(call_claude(system, 帮我生成今天的日报))跑通后你会看到模型先根据元数据判断「该用 daily-report」再决定是否展开正文。这就是渐进式披露在代码层面的体现。4.3 在 Claude Code 里挂载技能目录如果你用 Claude Code把技能目录放到项目根的skills/下然后在配置里指向它。想验证模型对技能的理解是否符合预期可以先用模型对话页做几轮试探模型对话入口https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite把 SKILL.md 的元数据贴进去问它「什么情况下你会用这个技能」看回答是否和你的 description 一致。不一致就回去改 description这是最容易被忽略但最影响触发准确率的一步。5. 本篇常见错排查5.1 技能不触发description 写太泛报错表现是模型完全不提这个技能。原因通常是 description 写成「帮助用户处理各种任务」这种万能句。改成具体触发场景比如「当用户提到日报、周报、工作汇总时使用」命中率立刻上来。5.2 401 UnauthorizedKey 没读到九成是环境变量没生效。在脚本里加一行print(os.environ.get(TAOTOKEN_API_KEY))确认。注意别把 Key 写进 config.toml 明文用api_key_env引用。5.3 上下文爆炸正文塞太多表现是 Token 消耗异常高、响应变慢。检查 SKILL.md 正文是不是把 references 的内容抄进来了。正文控制在几百字细节全部外链到 references/。5.4 脚本执行失败路径写死scripts/ 里的脚本如果用绝对路径换台机器就挂。统一用相对技能根目录的路径或者在脚本开头根据__file__推导根目录。5.5 多技能冲突假设自己是唯一能力官方强调可组合性。如果你的 SKILL.md 里写「你是唯一可用的技能」同时加载多个时就会打架。改成「在需要 X 时使用本技能与其他技能协作」。6. 长期编码与 Agent 场景的接入建议如果你打算把 Skills 用在长期编码、自动化工作流或 Agent 常驻场景单次调用式的 Key 管理会很快变成负担。这时候可以看下 Coding PlanCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite它更适合需要持续调用、多技能并行加载的场景。接入文档在这里里面有完整的鉴权、错误码和限流说明接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite我的建议是先把单个技能包跑通确认渐进式披露的三级结构没问题再考虑多技能组合和长期调用。技能包的价值不在于数量而在于每个都能被准确触发、稳定执行。你现在就可以从daily-report这个最小例子开始把 SKILL.md 写出来用第 4 节的脚本跑一遍看到模型正确加载并执行就算从零到一完成了。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门