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

image-20260805212825134

网易邮箱开启

image-20251121164708375

image-20251121164749654

image-20251121164823320

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点击安装的
    个人技能--》自己安装的

image-20260805214254317

image-20260805214229449

image-20260805214405221

image-20260805214656225

image-20260805214939692

5 其他skill

5.1 12306查票技能-查到后发送邮件

# 1 安装好12306查票
# 2 调用发送邮件,发送即可

image-20260805215808102

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了

image-20260805221156931

posted @ 2026-08-15 22:08  凫弥  阅读(16)  评论(0)    收藏  举报