1. SkillsMP 是什么:Agent 技能生态里的“应用商店”与 SKILL.md 规范落地
如果你最近在折腾 Claude Code 或者 Codex CLI,大概率会遇到一个尴尬:模型本身很强,但每次都要重复交代“我们团队的代码规范是这样”“提交信息要按这个格式写”“审查 PR 时先看这三类问题”。这些重复的上下文,本质上就是可以被封装、被复用、被自动调用的“技能”。SkillsMP 就是围绕这个需求长出来的东西——它是一个面向 Agent Skills / SKILL.md 生态的社区型技能发现与目录平台,把散落在 GitHub 上的公开 skill 仓库聚合起来,提供检索、分类、排序和安装入口。
一句话定位:SkillsMP 是 Agent 技能的“应用商店 + 搜索引擎”,核心资产是 SKILL.md 这套开放规范。它本身不运行模型,也不替代 Claude Code 或 Codex,而是帮你快速找到“别人已经写好的工作流知识包”,然后放进你本地 agent 的技能目录里生效。适合谁?三类人最受益:一是刚接触 Claude Code、想让 agent 立刻具备某项专业能力的开发者;二是团队里想把资深经验沉淀成可复用资产的工程负责人;三是做 Agent 产品、需要参考 SKILL.md 写法与生态现状的技术人。
它和 MCP 的区别值得先说清楚,因为很多人会混淆。MCP(Model Context Protocol)解决的是“让模型调用外部工具/API”,偏功能接入;而 Skills 解决的是“把知识、流程、判断标准注入会话”,偏认知与工作流。SkillsMP 的文档里提到 progressive loading / lazy loading 机制:技能默认只暴露名称和简介,完整内容按需加载,这样对 token 消耗更友好。你可以理解为:MCP 是给 agent 装“手”,Skills 是给 agent 装“经验”。两者互补,不冲突。
SkillsMP 页面显示聚合了约 270k+ 到 283k 量级的技能条目,按 Tools、Development、Business、Data & AI、DevOps、Testing & Security、Documentation、Content & Media、Research 等类别细分,支持按 Stars、Recent、Trending 排序,还提供 AI 语义搜索。站点自称独立社区项目,并明确标注与 Anthropic(Claude)非官方隶属关系。这一点很重要:技能来自公共 GitHub 仓库,平台做基础质量筛选,但安装前必须人工审查代码、权限和外部请求。我在实际使用中会把“先读 SKILL.md 和 scripts 再装”当成硬性习惯,尤其是涉及文件写入或网络请求的技能。
理解了定位,后面的安装和验证就顺了。接下来先解决前置问题:你本地得有一个能识别 skills 目录的 agent 环境,以及一个稳定的模型接入点,否则技能装好了也跑不起来。
2. 前置准备:Claude Code / Codex 环境与 TaoToken 接入配置
技能要生效,前提是你的 agent 客户端能正常发起模型请求。Claude Code 和 Codex CLI 都支持自定义 Base URL 与 API Key,这里我用 TaoToken 作为统一接入点来演示,因为它同时兼容 Anthropic 风格和 OpenAI 风格的调用,配置一次就能覆盖两个客户端。官网入口是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 根地址是 https://taotoken.net/api (这个地址不加 UTM 参数,配置里直接写它)。
先拿 Key。打开控制台页面 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,登录后在 API Keys 区域创建一个新 Key,复制出来。注意 Key 只在创建时完整显示一次,丢了就重建。创建入口在这里: https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。
Claude Code 的配置走环境变量最省事。在~/.zshrc或~/.bashrc里加:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_AUTH_TOKEN="sk-你刚才复制的Key"保存后source ~/.zshrc,再运行claude就能走 TaoToken 的通道。如果你用的是 Claude Code 的 settings 文件方式,可以在~/.claude/settings.json里写:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你刚才复制的Key" } }Codex CLI 的配置在~/.codex/auth.json和~/.codex/config.toml。auth.json 负责凭证:
{ "OPENAI_API_KEY": "sk-你刚才复制的Key" }config.toml 负责模型与地址:
model = "gpt-5-codex" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" wire_api = "responses"这里三件套必须齐全:Base URL 写https://taotoken.net/api,Key 写你创建的那串,Model ID 按你实际要用的模型填(比如gpt-5-codex或 Claude 系列对应 ID)。少任何一个都会在请求阶段报错。配置完先别急着装技能,用一次最小请求验证通道是否通——这一步能帮你把“接入问题”和“技能问题”分开排查,省很多时间。
验证方式很简单,在 Claude Code 里直接问一句“用一句话说明你现在使用的模型”,或者在 Codex CLI 里跑一个只读任务。如果返回正常,说明 Base URL、Key、Model ID 三件套没问题,可以进入技能安装环节。如果报 401,先查 Key 是否复制完整;如果报连接失败,先查 Base URL 是否写成了带路径的完整地址。
3. 可复制配置:SKILL.md 目录结构与 SkillsMP 技能安装片段
技能安装的本质,是把一个符合 SKILL.md 规范的文件夹放到 agent 会扫描的目录里。先看标准目录结构,这是你从 SkillsMP 下载任何技能后都会看到的形态:
my-skill/ ├── SKILL.md # 必需:技能说明、触发条件、使用示例 ├── scripts/ # 可选:可执行脚本 │ └── run.sh ├── assets/ # 可选:模板、静态资源 │ └── template.md └── references/ # 可选:引用文档、规范说明 └── style-guide.mdSKILL.md 是核心,它的头部通常带 YAML frontmatter,用来告诉 agent 这个技能叫什么、什么时候该被调用。一个典型片段长这样:
--- name: code-reviewer description: 审查代码变更,按团队规范检查命名、错误处理与测试覆盖,输出可执行的修改建议。 --- ## 何时使用 当用户提交 PR、diff 或要求审查某段代码时触发。 ## 审查步骤 1. 读取变更文件,识别新增/修改的函数。 2. 对照 references/style-guide.md 检查命名与结构。 3. 检查错误处理分支是否覆盖。 4. 输出问题列表,每条附文件行号与修改建议。安装位置分两种。Claude Code 个人级技能放~/.claude/skills/,项目级放项目根目录下的./.claude/skills/;Codex CLI 放~/.codex/skills/。项目级的好处是技能跟着仓库走,团队 clone 下来就自带,适合把团队规范固化进去。
从 SkillsMP 拿到技能后,手动安装的标准动作是:
# 1. 在 SkillsMP 找到技能,点进对应 GitHub 仓库 # 2. 克隆到本地临时目录 git clone https://github.com/某作者/某skill.git /tmp/some-skill # 3. 复制到 Claude Code 个人技能目录 mkdir -p ~/.claude/skills cp -r /tmp/some-skill ~/.claude/skills/some-skill # 4. 如果是 Codex CLI mkdir -p ~/.codex/skills cp -r /tmp/some-skill ~/.codex/skills/some-skill复制完检查一下 SKILL.md 是否在技能文件夹根目录,而不是嵌套了一层。常见错误是~/.claude/skills/some-skill/some-skill/SKILL.md,这样 agent 扫描不到。正确形态是~/.claude/skills/some-skill/SKILL.md。
如果你想把技能做成项目级并纳入版本管理,可以在项目里建.claude/skills/,然后写一个 settings 片段确保团队一致:
{ "skills": { "directory": "./.claude/skills", "autoLoad": true } }需要说明的是,不同客户端对 skills 目录的自动发现机制略有差异,有的需要重启会话,有的支持热加载。装完后如果没生效,先重启一次客户端,再检查目录层级。这一步做完,技能文件就位了,接下来要验证它是否真的被模型调用。
4. 验证请求:从注册技能到调用生效的完整跑通动作
验证分两层:先确认技能被 agent 发现,再确认技能在真实任务中被调用并产生预期输出。我建议用一个最小可复现的技能来跑,比如一个“提交信息规范化”技能,因为它触发条件明确、输出可判断。
第一步,创建技能目录和 SKILL.md:
mkdir -p ~/.claude/skills/commit-helper cat > ~/.claude/skills/commit-helper/SKILL.md << 'EOF' --- name: commit-helper description: 根据 git diff 生成符合 Conventional Commits 规范的提交信息。 --- ## 何时使用 当用户要求生成提交信息、写 commit message 或整理变更说明时触发。 ## 步骤 1. 运行 git diff --staged 获取暂存区变更。 2. 识别变更类型:feat / fix / docs / refactor / test / chore。 3. 生成一行标题(不超过 72 字符)+ 可选正文。 4. 输出格式:<type>(<scope>): <subject> EOF第二步,重启 Claude Code 会话,让它重新扫描技能目录。然后在项目里制造一个真实变更:
cd /tmp/demo-repo echo "console.log('hello')" >> app.js git add app.js第三步,在 Claude Code 里输入:“帮我根据暂存区变更生成提交信息”。如果技能生效,模型会去读 SKILL.md 的步骤,执行git diff --staged,然后按 Conventional Commits 格式输出类似feat(app): 新增 hello 输出日志的结果。这就是一次完整的“注册技能 → 调用生效”闭环。
如果你想更直观地确认技能被加载,可以在会话里直接问:“你现在有哪些可用技能?”部分客户端会列出已发现的 skills 名称。另一个办法是故意触发技能描述里的关键词,观察输出是否遵循 SKILL.md 里定义的格式——格式一致,基本就能确认是技能在起作用,而不是模型自由发挥。
Codex CLI 的验证同理,把技能放到~/.codex/skills/,重启后执行一个需要该技能的任务。实测下来,Codex 对 SKILL.md 的 frontmatter 解析比较严格,name和description字段缺失时可能不触发,所以写 SKILL.md 时这两个字段别省。
验证通过后,你可以把这个技能复制到项目级目录.claude/skills/,提交到仓库,团队其他人 clone 后就能直接用。这一步是从“个人玩具”到“团队资产”的关键跳跃。
5. 常见报错排查:401、local proxy failed、reading choices 与 OAuth 问题
技能装好了但跑不通,报错通常不在技能本身,而在接入层或目录层。下面按真实遇到的错误逐条拆。
401 Unauthorized:最常见。原因通常是 Key 没复制完整、Key 被删除、或者 Base URL 写错导致请求发到了没有鉴权的地址。排查顺序:先确认ANTHROPIC_AUTH_TOKEN或OPENAI_API_KEY的值和 TaoToken 控制台里的一致;再确认 Base URL 是https://taotoken.net/api,没有多余斜杠或路径;最后确认这个 Key 还有效。如果三件套里 Model ID 填了一个不存在的模型,也可能返回鉴权类错误,所以 Model ID 也要核对。
local proxy failed / connection refused:这个报错说明客户端在尝试连接一个本地代理端口,但那个端口没有服务在跑。常见于之前配置过本地代理工具、后来关掉了但环境变量还留着。检查HTTP_PROXY、HTTPS_PROXY、ALL_PROXY这几个环境变量,如果指向127.0.0.1:某端口而该端口无服务,清掉它们再试。Claude Code 和 Codex 都会读取系统代理变量,残留配置是高频坑。
reading choices / unexpected response shape:这个报错通常出现在响应体结构和客户端预期不一致时。原因可能是 Base URL 指向了 OpenAI 兼容端点但客户端按 Anthropic 格式解析,或者反过来。Claude Code 走 Anthropic 风格,Codex 走 OpenAI 风格,确认你的 Base URL 和客户端类型匹配。TaoToken 的/api根地址同时支持两种风格,但路径和请求头要对。如果 Codex 的wire_api写成chat而模型只支持responses,也会出现解析异常,把wire_api改成responses再试。
OAuth 相关报错 / 登录循环:Claude Code 某些版本会尝试 OAuth 登录流程,如果你已经用环境变量配了 Key,它可能仍在走登录检查。解决办法是确认环境变量优先级高于登录态,或者在 settings.json 里显式配置 env 字段。Codex 的 auth.json 如果格式不对(比如多了逗号、少了引号),也会导致凭证读取失败,用python -m json.tool ~/.codex/auth.json验证一下 JSON 合法性。
技能不触发:不是报错但很常见。检查三点:SKILL.md 是否在技能目录根层;frontmatter 的name和description是否完整;客户端是否重启过。如果技能描述太模糊,模型可能判断“当前任务不需要这个技能”,把 description 写得更具体、更贴近触发场景,命中率会明显提升。
排查时记住一个原则:先验证模型通道(用最小请求),再验证技能加载(问可用技能),最后验证技能触发(跑真实任务)。分层排查比一股脑改配置高效得多。
6. 把技能用起来:从 SkillsMP 选型到长期 Coding Plan
跑通第一个技能后,真正的价值在于持续复用和组合。SkillsMP 上的技能大致分几类用法:工程自动化类(code-reviewer、git-automation)适合挂在 PR 流程里;设计一致性类(Frontend Design Skill、Brand Guidelines Skill)适合前端团队把设计系统编码进去;业务流程类适合把合同审查、税务规划这类专家经验显性化;数据与 DevOps 类适合把清洗模板、CI/CD 排错步骤固化。选型时优先看更新时间、Stars 和 SKILL.md 的完整度,描述含糊、没有示例的技能慎用。
如果你打算长期用 agent 做编码和 Agent 开发,单次按量调用不如走 Coding Plan 更划算,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。它适合高频、长会话的场景,配合本地技能库使用,能把重复交代上下文的时间省下来。想先体验模型对话能力,可以从 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite 进;接入细节和规范文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。
最后给一个我自己的习惯:每装一个新技能,先在临时目录里跑一次最小任务,确认输出符合预期,再复制到项目级目录并提交。技能是代码,代码就要审查和版本管理。把 SKILL.md 当成团队规范的可执行版本,而不是一次性配置,这套东西才会越用越值钱。