微信扫码
添加专属顾问
用Skill让AI从"通才"变"专家",Qoder CLI实战指南教你如何打造专属AI工作流。 核心内容: 1. Skill的定义与核心价值:将重复性任务转化为可复用的专家知识包 2. 一个完整Skill的构成要素:从元数据到执行规则的详细拆解 3. Prompt与Skill的本质区别:从"做什么"到"如何做"的范式升级
但是对于一些重复性、特定领域的任务,我们每次执行任务时都需要对AI进行重复的调教。
┌─────────────────────────────────────────────────────────────┐│ ││ AI 是一个"超级通才" ││ ││ 它什么都会,但什么都不精 ││ ││ 它不记得你上次是怎么要求的 ││ ││ 它不知道你们团队的规范和偏好 ││ │└─────────────────────────────────────────────────────────────┘
我们需要的是:
一种方式,让 AI 记住"怎么做某件事",下次只需说一句话,它就能按照我们定义的方式执行。
这就是 Skill。
Skill 是什么
01 官方定义
Skill = 可复用的专家知识包
它是一组打包好的指令、知识和工具,让 AI 在特定领域从"通才"变成"专家"
Skill可以教会Qoder如何以特定的SOP完成特定任务
02 让人眼前一亮的优势
03 一个 Skill 长什么样
# ~/.qoder/skills/api-mocker/SKILL.md---name: api-mockerdescription: |根据 API 定义生成 Mock 测试数据。当用户说"生成mock数据"、"造测试数据"时使用。---# API Mock 数据生成器## 规则1. 分析用户提供的接口定义2. 根据字段名推断数据语义(name→姓名,email→邮箱)3. 生成 5 条真实感数据## 字段映射- name/姓名 → 中文姓名(王晓明、刘思远)- email → user_xxx@example.com- phone → 138-XXXX-XXXX- avatar → https://api.dicebear.com/7.x/avataaars/svg?seed=随机## 输出JSON 数组,用代码块包裹
就这么简单:一个目录 + 一个 SKILL.md 文件。
04 Prompt vs. Skills
“Skill不就是一个保存Prompt的地方吗?”
没错,但是并没有体现Skill厉害之处。
Prompt告诉AI来做什么,而Skills则告诉AI如何判断以及整个流程如何进行。
Skills让我们能把自己的判断逻辑、处理流程写成一个Qoder可以反复执行的模块。
05 Skill 的三层结构
┌─────────────────────────────────────────────────────────────┐│ Layer 1: 元数据│ ├── name: skill 的名字 ││ └── description: 什么时候该用这个 skill(触发条件) │├─────────────────────────────────────────────────────────────┤│ Layer 2: 核心指令(触发时才加载) ││ └── SKILL.md 正文:具体怎么做 │├─────────────────────────────────────────────────────────────┤│ Layer 3: 附加资源(按需加载) ││ ├── scripts/ → 可执行脚本(Python/Bash) ││ ├── references/ → 参考文档(API 文档、规范说明) ││ └── assets/ → 资源文件(模板、图片) │└─────────────────────────────────────────────────────────────┘
为什么要分层?
AI 的上下文窗口是有限的"公共资源"
如果所有 Skill 的内容都一直在上下文里,会浪费大量 Token
分层设计:只有 name 和 description 始终存在,正文和资源按需加载
这就是渐进式加载(Progressive Disclosure)设计。
怎么使用 Skill
01 Skill 的存储位置
全局 Skill(所有项目可用)~/.qoder/skills/├── pdf-processing/│ └── SKILL.md├── code-reviewer/│ └── SKILL.md└── ...项目 Skill(仅当前项目可用)your-project/└── .qoder/└── skills/└── project-specific-skill/└── SKILL.md
02 查看已安装的 Skill
在 Qoder CLI 中输入:
/skills
你会看到类似这样的界面:
> /skills------------------------------------------------------------------------------------------------------------Skill Commands: [User] ProjectSkill list:→ code-reviewer : [user] 审查代码并提供改进建议。当需要代码审查、查找潜...- pdf-processing : [user] -Extract text, fill forms, merge PDFs. Use when working with PDF files,...Press Enter to select · Esc to exit · Tab to cycle tabs · ↑↓ to navigate
三个级别:
User:存储在 ~/.qoder/skills/ ,所有项目可用
Project:存储在 项目/.qoder/skills/ ,仅当前项目可用
03 使用 Skill 的两种方式
方式一:自动触发
你只需正常描述你的需求,AI 会根据 Skill 的 description 自动判断是否使用,例如,pdf-processing技能。
帮我查看这个xxx.pdf的内容
这就是为什么 description 很重要 —— 它是 AI 判断"何时使用这个 Skill"的依据。
方式二:手动调用
如果你想强制使用某个 Skill,可以用命令:
/pdf-processing
或者在对话中明确指定:
使用 pdf-processing skill 帮我查看这个xxx.pdf的内容
Skill实战
01 微服务应用问题排查
场景
在 K8s 集群中部署了一套微服务应用,某天突然发现接口报错 500。需要快速定位是哪个服务出了问题。
传统方式:登录各个 Pod → 翻日志 → 分析调用链 → 定位问题
使用 Skill:进入 Pod → 跟 Qoder CLI 说一句"帮我排查问题" → 自动完成排查
核心思路
这个 Skill 的价值在于:把项目架构知识固化下来
服务有哪些?调用关系是什么?
出问题时该调用哪些接口验证?
日志里哪些关键字代表什么含义?
这些"确定性知识"写进 Skill,让 AI 按照 SOP 自主排查。
Skill 内容
存储到/.qoder/skills/microservice-troubleshooter/SKILL.md
---name: microservice-troubleshooterdescription: |微服务问题排查专家。自动诊断 A、B、C 三个服务组成的微服务架构中的问题,生成排查报告和修复建议。触发场景:用户请求 "排查微服务问题"、"诊断错误"、"分析日志"、"查找异常"等直接触发这个SKILL进行排查---# 微服务问题排查## 项目架构本项目由 3 个 Spring Boot 微服务组成,通过 HTTP (RestTemplate) 进行链式调用:
用户请求 → A服务(/a) → B服务(/b) → C服务(/c) → 返回结果
### 服务说明| 服务 | 端口 | 职责 | 下游依赖 ||------|-------|------|----------|| A | 20001 | 入口服务,接收用户请求 | 调用 B 服务 || B | 20002 | 中间层服务 | 调用 C 服务 || C | 20003 | 末端服务,返回最终结果 | 无 |### 注册中心说明/root/nacos/naming/目录是微服务注册中心的缓存,当前已用【直接】依赖的服务,订阅的微服务实例的地址会缓存到这个目录下,其中包含所有订阅服务的实例列表因此可以在/root/nacos/naming/目录下查找阅读依赖服务的相关信息### 调用链路
HTTP 链路: A(/a) --RestTemplate--> B(/b) --RestTemplate--> C(/c)
## 排查流程### Step 1: 在当前 Pod 测试本地接口通过 curl 调用本地接口,观察返回结果或错误信息:**A 服务接口** (在 A Pod 中执行)```bashcurl localhost:20001/a # HTTP 全链路调用 A→B→Ccurl localhost:20001/a-zone # 同城多活链路curl localhost:20001/actuator/health # 健康检查
B 服务接口(在 B Pod 中执行)
curl localhost:20002/b # 调用 C 服务curl localhost:20002/b-zone # 同城多活curl localhost:20002/actuator/health # 健康检查
C 服务接口(在 C Pod 中执行)
curl localhost:20003/c # 返回 C 服务信息 (末端,不依赖其他服务)curl localhost:20003/c-zone # 同城多活curl localhost:20003/actuator/health # 健康检查
Step 2: 查看当前服务日志中的错误
# 搜索日志中的异常信息grep -i "exception\|error\|失败" *.log | tail -50
Step 3: 分析调用链
如果看到 [A] 调用服务B失败 → 问题在 B 或 C
如果看到 [B] 调用服务C失败 → 问题在 C
如果看到 C service error → C 服务内部错误
注意
如果上述方式都无法找到具体问题,可以在A入口应用Pod中通过
curl localhost:20001/dubbo # Dubbo 全链路调用
通过Dubbo全链路调用排查调用链路问题
**Skill 扩展脚本**```markdown## 优先批量检查B服务实例通过 `/b` 接口批量检测多个B服务实例的状态:```bash用法: ./check_b_instances.sh <ip1> <ip2> ....qoder/skills/microservice-troubleshooter/scripts/check_b_instances.sh 10.192.168.34 10.192.168.35# 实例IP可从 /root/nacos/naming/ 目录获取
状态说明:
[存活-正常] - 服务正常响应
[存活-有错误] - 服务存活但返回5xx错误(业务异常)
[不可达] - 服务无法连接
>存储到<project-path>/.qoder/skills/microservice-troubleshooter/scripts/check_b_instances.sh>```markdown#!/bin/bash## B服务多实例健康检查脚本# 通过 /b 接口判断服务状态# 用法: ./check_b_instances.sh <ip1> <ip2> <ip3> ...# 示例: ./check_b_instances.sh 10.192.168.34 10.192.168.35 10.192.168.36#PORT=20002TIMEOUT=3# 颜色定义RED='\033[0;31m'GREEN='\033[0;32m'YELLOW='\033[1;33m'NC='\033[0m' # No Colorif [ $# -eq 0 ]; thenecho "用法: $0 <ip1> <ip2> <ip3> ..."echo "示例: $0 10.192.168.34 10.192.168.35"exit 1fiecho "========================================"echo " B服务多实例健康检查 (/b接口)"echo "========================================"echo ""total=0alive=0dead=0has_error=0for ip in "$@"; dototal=$((total + 1))echo -n "检查 B实例 [$ip:$PORT] ... "# 通过 /b 接口检查response=$(curl -s -w "\n%{http_code}" --connect-timeout $TIMEOUT "http://$ip:$PORT/b" 2>/dev/null)curl_status=$?if [ $curl_status -ne 0 ]; then# curl失败,服务不可达echo -e "${RED}[不可达]${NC}"echo " └─ 原因: 连接超时或拒绝"dead=$((dead + 1))else# 解析响应体和状态码http_code=$(echo "$response" | tail -1)body=$(echo "$response" | sed '$d')if [ "$http_code" -ge 200 ] && [ "$http_code" -lt 300 ]; then# 2xx 正常echo -e "${GREEN}[存活-正常]${NC}"alive=$((alive + 1))elif [ "$http_code" -ge 500 ]; then# 5xx 服务存活但有错误echo -e "${YELLOW}[存活-有错误]${NC}"echo " └─ HTTP $http_code: $body"alive=$((alive + 1))has_error=$((has_error + 1))else# 其他状态码echo -e "${YELLOW}[存活-HTTP $http_code]${NC}"alive=$((alive + 1))fifiecho ""doneecho "========================================"echo " 检查结果汇总"echo "========================================"echo "总实例数: $total"echo -e "存活实例: ${GREEN}$alive${NC}"echo -e "不可达: ${RED}$dead${NC}"echo -e "业务错误: ${YELLOW}$has_error${NC}"echo ""if [ $dead -gt 0 ]; thenecho -e "${RED}警告: 存在 $dead 个不可达的实例${NC}"exit 2elif [ $has_error -gt 0 ]; thenecho -e "${YELLOW}警告: 存在 $has_error 个有业务错误的实例${NC}"exit 1elseecho -e "${GREEN}所有实例正常${NC}"exit 0fi
02 常用Skill分享
Web应用页面优化
场景
使用AI帮助生成一个SaaS的落地页面
做一个 SaaS 产品落地页,暗色科技风。需要元素丰富(导航、卡片、按钮)
使用Anthropic提供的frontend-design skill来优化页面
使用frontend-design skill优化这个页面
Skill 内容
存储到
---name: frontend-designdescription: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.license: Complete terms in LICENSE.txt---This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.## Design ThinkingBefore coding, understand the context and commit to a BOLD aesthetic direction:- **Purpose**: What problem does this interface solve? Who uses it?- **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.- **Constraints**: Technical requirements (framework, performance, accessibility).- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:- Production-grade and functional- Visually striking and memorable- Cohesive with a clear aesthetic point-of-view- Meticulously refined in every detail## Frontend Aesthetics GuidelinesFocus on:- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.- **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.**IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
用 Skill 创建 Skill
Anthropic 官方提供了一个 skill-creator Skill,用于帮助你创建新的 Skill。
01 skill-creator 的核心原则
官方 skill-creator 遵循这些原则:
简洁至上
"AI 已经很聪明,只补充它不知道的。"
每一段内容都要问:这个信息 AI 真的不知道吗?值得占用 Token 吗?
明确触发条件
description 是最重要的部分,决定了 Skill 何时被使用。
渐进式加载
Layer 1: name + description → 始终存在(~100词)Layer 2: SKILL.md 正文 → 触发时加载(<5000词)Layer 3: scripts/references/ → 按需加载(无限制)
02 skill-creator 用法演示
将skill-creator这个skill包copy到工程目录对应的skills存放目录
让AI帮我们研究、梳理下目标Skill的能力,将研究到的内容落到文档中
帮我调研和梳理一套现在通用、完整且详细的微服务问题排查流程,将这个调研内容落到markdown文件中
使用skill-creator这个skill,让它根据我们刚调研到的内容生成一个Skill
skill-creator 根据调研文档帮我生成对应的微服务排查SKILL
Skill 推荐
Anthropic 官方提供了多个高质量 Skill:
获取方式:https://github.com/anthropics/skills
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-10-06
OpenAI 亲自教你如何用 Astra
2026-10-05
普通人与 AI 协助开发项目的完整闭环(附全套提示词 PDF)
2026-10-02
如何写好 Skill:一份终极实战经验手册
2026-09-26
突发!Anthropic宣布Fable 5.1仅用一条提示词突破粒子物理“九圈”难题
2026-09-25
GPT-6 Astra 最被低估的用法,居然在这里?
2026-09-23
模型变强之后,Skill 和 Prompt 该做减法了
2026-09-16
agent优化之GEPA——一种提示词自进化的优化方案
2026-09-16
从 Prompt Engineer 到语义系统设计者:AI 正在抬升真正的能力门槛
2026-07-20
2026-07-25
2026-07-29
2026-07-27
2026-07-28
2026-07-31
2026-07-31
2026-07-28
2026-07-19
2026-07-18
2026-09-25
2026-08-23
2026-06-17
2026-05-23
2026-05-16
2026-04-14
2026-02-28
2026-02-12
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。