day12-skills从入门到精通
今日内容
1 skill 介绍
function calling ---> mcp ---> skill
1.1 skill是什么
# 1 skill(技能)是智能体完成特定任务的标准化、可复用能力模块,是连接大模型 “大脑” 与实际执行的 “手脚”
# 2 一句话总结:
Skill = 给 AI 提前写好的一套固定做事流程让它遇到某类问题,不用瞎想,直接按步骤干完
-Coze 工作流---》skill 类似于工作流---》一套固定流程--》遇到类似的事情,大模型就按这个流程去做
本质还是:提示词+方法脚本
--》预设提示词
--》已经写好的方法、脚本
# 3 Agent Skills = 给智能体用的「标准化技能包」
-智能体是人---》skill--》一些功能,可以强化人
-下班回家:走路30分钟走回家
-下班回家:人+自行车技能--》骑回家--》10分钟
-由 Anthropic 发起,开放标准,跨平台通用
-本质:一个文件夹,内置指令、脚本、资源,Agent 可自动发现、加载、执行
-解决:AI 缺上下文、不可靠、不可复用、跨平台不兼容问题
1.2 使用skill好处
# 1 不用重复教 AI同样的事做 100 遍,也不用重新说一遍流程。
# 2 AI 不会乱搞、更稳定有 Skill 约束,它就按步骤来,不会胡说八道。
# 3 可以像搭积木一样组合: 搜索 Skill + 总结 Skill + 写 PPT Skill→ 直接拼成一个 “自动做调研汇报” 的超级技能。
# 4 可以共享、可以卖你写的 Skill 别人也能用,像插件一样。
1.3 skill发展
# 1 “Skills”这一技术概念最早是由 AI 公司 Anthropic(Claude) 提出的
# 2 推出时间:约 2025 年 10 月
# 3 背景:Anthropic 在其大模型 Claude 的生态中,为了解决模型在处理复杂任务时缺乏标准化、难以复用的问题,提出了 Agent Skills 规范。
# 4 定义:它将特定的能力(如代码审查、发送邮件、数据分析)封装成标准的文件夹结构(包含 SKILL.md 说明书和脚本),让 AI 能够像人类专家调用工具箱一样,按需加载和执行特定技能。
# 5 地位:这一规范迅速被开发者社区接受,成为了 Agent 开发工具(如 Codex,Trae、OpenClaw等)中实现“AI 自主行动”的行业标准
-Trae :AI编辑器,Cursor是一类东西--》自动写代码的智能体
-OpenClaw:龙虾:数字员工--》智能体
# 6 2026年3月skill 社区生态爆发,开发者开始广泛分享自定义 Skills(如 GitHub 私有技能库),Skills 成为提升开发效率 10 倍的神器
1.4 官方skill介绍
# 1 Skill官方
https://github.com/anthropics/skills
# 2 Claude官方对skill的文档
https://support.claude.com/zh-CN/articles/12512176-%E4%BB%80%E4%B9%88%E6%98%AF%E6%8A%80%E8%83%BD
# 3 Agent skill 标准文档
https://agentskills.io/home
# 4 Agent skill 规范文档
https://github.com/agentskills/agentskills
1.5 主流skill仓库[大家留着]
# 国内,国外市面上所有的技能
# 1 skills.sh
https://www.skills.sh/
# 2 skillsmp
https://skillsmp.com/zh/search
##### 国外的#####################
# 3 腾讯SkillHub
https://skillhub.cn/
# 4 阿里魔搭社区 (ModelScope)
https://www.modelscope.cn/skills
# 5 钉钉ai能力
https://aihub.dingtalk.com/#/
# 6 其他
https://redfox.hk/skills
###### 好多技能是收费的 ##############
2 Skill编写格式和规范
# 1 老师装上后 skill 下架,咱们还能用吗
1 干事1
2 干事2---》本地脚本---》通过mcp调用了远端--》返回了数据
3 干事3
# 2 通过skill生成的短视频质量效果怎么样
# 视频skill
1 干事1
2 干事2---》调用远端生视频模型生成---》返回回来
seedance2.5 pro
3 干事3
# 3 下载下来的skill,我们可以破解,自己重新写么??
1 干事1
2 干事2---》通过mcp调用了远端--》服务端验证,无法破解
3 干事3
# 搞笑名字技能
1 干事1 :取出你的性
3 干事2 :给你重新起名
4 干事3: 起个搞笑的名字
2.1 标准文件
# 1 一个合规的 Skill 必须遵循以下目录结构
my-skill/ # 1. 技能根目录(命名有严格要求,见下文)
├── SKILL.md # 【必需】核心文件:包含元数据(YAML)和指令(Markdown)
├── scripts/ # 【可选】可执行代码(Python/Bash/nodejs),用于处理确定性任务
│ └── run_task.py
├── references/ # 【可选】参考文档、API 手册,供 AI 查阅
│ └── api-docs.md
└── assets/ # 【可选】静态资源(图片、模板文件等)
└── template.json
# 2 补一嘴,没有问题
my-skill/
├── SKILL.md
├── run_task.py
2.2 核心规范SKILL.md
# 1 SKILL.md 由两部分组成:YAML 元数据(头部)和 Markdown 指令(正文)
-头部(YAML元数据)和正文(Markdown格式)
## 1.1 头部(YAML元数据) -位于文件最顶部,用 --- 包裹。这是 AI 判断“是否加载此技能”的依据。
---
name: my-skill-name # 【必填】必须与文件夹名完全一致,仅允许小写字母、数字、连字符(-)
description: 当用户需要处理 PDF 文件时触发,包括提取文本、合并文档或填写表单。# 【必填】描述技能的功能和触发场景
version: "1.0.0" # 【可选】版本号
author: your-name # 【可选】作者
---
## 1.2 命名严格规范
只能包含:小写字母 (a-z)、数字 (0-9)、连字符 (-)。
禁止包含:下划线 (_)、大写字母、空格。
错误示例:send_email (错), SendEmail (错)
正确示例:send-email (对)
# 2 Markdown 指令 (正文)
这是 AI 执行任务的“操作手册”。建议包含以下模块:
角色定义:你现在的身份(如“资深 Python 工程师”)。
触发条件:明确何时使用该技能。
执行步骤:分步骤描述逻辑(1. 读取文件 -> 2. 调用脚本 -> 3. 输出结果)。
工具使用:说明如何调用 scripts/ 中的代码。
2.3 案例一:最小合法skill
生成月报的案例:monthly-report-generator
---
name: monthly-report-generator
description: 根据关键词自动搜索、总结、生成结构化月度简报,支持近7/30天数据。
---
# 月度报告生成技能
## 使用场景
用户需要行业/业务简报、数据总结、趋势分析时调用。
## 执行步骤
1. 提取关键词、时间范围
2. 调用联网搜索获取信息
3. 过滤低质量内容
4. 提取核心数据、事件、风险
5. 按固定格式输出简报
## 输出格式
【标题】
【核心数据】
【重要趋势】
【风险提示】
## 异常处理
- 无结果:返回「未找到相关信息」
- 搜索失败:重试1次,仍失败提示错误
2.3 案例二:带脚本skill[只需要听即可,不需要会]
# 1 作用:可以将多个pdf合并成一个文件 的技能
# 2 目录结构
pdf-merger
-SKILL.md
-process.py
3.2.1 SKILL.md
---
name: pdf-merger
description: 将多个 PDF 文件合并为一个文件。当用户要求合并 PDF 或整理文档时使用。
---
# PDF 合并专家
## 角色
你是一位专业的文档处理助手,擅长使用 Python 脚本处理 PDF 文件。
## 触发条件
当用户提到“合并 PDF”、“把这几个文件合在一起”或“整理文档”时触发。
## 执行步骤
1. **确认文件**:询问用户需要合并哪些文件路径,或者检查用户是否已上传。
2. **调用脚本**:使用 `python process.py` 脚本,将文件列表作为参数传入。
3. **验证结果**:检查脚本输出,确认合并后的文件是否生成且可打开。
4. **反馈用户**:告知用户合并成功,并提供输出文件的路径。
## 注意事项
- 如果文件不存在,请提示用户检查路径。
- 合并后的文件名默认为 `merged_output.pdf`。
## 脚本调用
python process.py --action {action} --input {file}
3.2.2 process.py
import sys
from PyPDF2 import PdfMerger
def merge_pdfs(pdf_list, output):
merger = PdfMerger()
for pdf in pdf_list:
merger.append(pdf)
merger.write(output)
merger.close()
print(f"成功合并 {len(pdf_list)} 个文件到 {output}")
if __name__ == "__main__":
# 简单示例:接收命令行参数
files = sys.argv[1:]
if files:
merge_pdfs(files, "merged_output.pdf")
2.4 总结
# 1 一次编写,多处运行:只要遵循这个标准,你的 Skill 可以在 Trae、Cursor、Claude Code,Codex,Coze,dify,OpenClaw ,workbuddy,爱马仕。。。等多种支持 Agent Skills 的工具中通用。
# 2 脚本分离:尽量把复杂的逻辑(如文件操作、API 调用)写在 scripts/ 里,让 AI 只负责“调度”和“决策”,这样更稳定。
# 3 描述即触发:description 写得越精准,AI 调用技能的准确率就越高。
3 编写发送邮件Skill【大家只需要理解流程】
3.1 目录结构
sendemail
-send_email.py
-SKILL.md
3.2 SKII.md
---
name: sendemail
description: 用于发送电子邮件。当用户明确要求发送邮件、通知或消息给某人时使用。支持指定收件人、主题和正文内容。
---
# 邮件发送技能
## 用法
使用系统提示符中提供的技能目录绝对路径运行捆绑的 Python 脚本:
```bash
python sendemail.py --to "recipient@example.com" --subject "您的主题" --body "邮件内容"
```
- `to` (必填): 收件人的电子邮件地址
- `subject` (必填): 邮件主题行
- `body` (必填): 邮件正文内容
## 示例
```bash
python sendemail.py --to "616564099@qq.com" --subject "会议提醒" --body "请在明天下午3点准时参加会议。"
```
如果发送成功,将返回成功消息;如果失败,则返回错误描述。
## 依赖项
需要标准 Python 库中的 smtplib 和 email 模块(通常包含在标准安装中)。
3.3 send_email.py
"""邮件发送工具。
通过 SMTP 协议根据命令行参数发送电子邮件。
"""
import argparse
import smtplib
from email.mime.text import MIMEText
SMTP_SERVER = "smtp.qq.com"
SMTP_PORT = 587
SENDER_EMAIL = "306334678@qq.com"
SENDER_AUTH_CODE = "yxhuterpunvzbidb"
def send_email(to_email: str, subject: str, content: str) -> str:
"""根据提供的参数发送电子邮件。
参数
----------
to_email : str
收件人的电子邮件地址。
subject : str
邮件的主题行。
content : str
邮件的主要内容。
返回:
成功消息或错误描述字符串。
"""
try:
# 构建邮件
msg = MIMEText(content, "plain", "utf-8")
msg["From"] = SENDER_EMAIL
msg["To"] = to_email
msg["Subject"] = subject
# 发送
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
server.starttls()
server.login(SENDER_EMAIL, SENDER_AUTH_CODE)
server.sendmail(SENDER_EMAIL, to_email, msg.as_string())
return f"✅ 发送成功 → {to_email}"
except Exception as e:
print('==========')
return f"❌ 发送失败:{str(e)}"
def main() -> None:
"""邮件发送命令行工具的主入口点。"""
parser = argparse.ArgumentParser(description="通过 SMTP 发送电子邮件")
parser.add_argument("--to", type=str, required=True, help="收件人电子邮件地址")
parser.add_argument("--subject", type=str, required=True, help="邮件主题")
parser.add_argument("--body", type=str, required=True, help="邮件正文内容")
args = parser.parse_args()
result = send_email(args.to, args.subject, args.body)
print(result)
if __name__ == "__main__":
main()
3.4 开通邮箱发送功能-以qq邮箱为例
邮箱配置
| 邮箱提供商 | SMTP 服务器 | 端口(TLS) | 端口(SSL) |
|---|---|---|---|
| Gmail | smtp.gmail.com | 587 | 465 |
| Outlook/Hotmail | smtp.office365.com | 587 | 465 |
| QQ 邮箱 | smtp.qq.com | 587 | 465 |
| 163 邮箱 | smtp.163.com | 25 | 465 |
| Yahoo | smtp.mail.yahoo.com | 587 | 465 |
⚠ 注意:
• Gmail 需要开启“允许低安全性应用访问”,或者使用应用专用密码(App Password)。
• QQ 邮箱和 163 邮箱 需要在设置里开启 SMTP服务 并获取授权码,作为 EMAIL_PASSWORD。
• 企业邮箱 可能需要不同的 SMTP 服务器地址,请查阅官方文档。
QQ邮箱开启
设置-->账号与安全--》安全设置
yxhuterpunvzbidb

网易邮箱开启



4 Codex中使用skill
# 1 发送邮件技能写好了
-可以共享、可以卖你写的 Skill 别人也能用,像插件一样
-Cursor,Trae,LangChain,OpenClaw,Codex。。智能体,只要支持skill的使用,我们写的技能,就能给它用
# 2 以 Codex为例,测试
####### 2.1 方式一:自己安装,解压技能包,放到对应目录下即可
-C:\Users\你的用户名\.codex\skills
####### 2.2 方式二:让Codex安装
-如下图
# 3 Codex 有两种技能
系统技能--》从codex点击安装的
个人技能--》自己安装的





5 其他skill
5.1 12306查票技能-查到后发送邮件
# 1 安装好12306查票
# 2 调用发送邮件,发送即可

5.2 findskills技能
# 1 https://www.modelscope.cn/skills/@vercel-labs/find-skills
# 2 找其他技能的技能
# 3 案例一:我现在要做视频,帮我找一下可以做视频的排名靠前的技能
# 4 案例二:帮我看一下这个技能是干嘛的 adp-global-invoice-extraction-free
5.3 发票提取技能
# 1 https://www.modelscope.cn/skills/laiyelijingao/adp-global-invoice-extraction-free
# 2 使用该技能,识别发票
5.4 内置技能
# 1 ImageGen 生图:不能用deepseek或者文本模型
-因为火山是 代理---》目前连的可能是文本模型,所以不行
-中转站---》不需要配apikey--》自己回去演示
# 2 浏览器插件和操作电脑软件插件
-可以控制浏览器
-可以控制电脑上的软件:太费token了


浙公网安备 33010602011771号