skills有什么用:

# 1 skill(技能)是智能体完成特定任务的标准化、可复用能力模块,是连接大模型 “大脑” 与实际执行的 “手脚”
# 2 一句话总结:
Skill = 给 AI 提前写好的一套固定做事流程让它遇到某类问题,不用瞎想,直接按步骤干完
本质还是:提示词+方法脚本
	--》预设提示词
    --》已经写好的方法、脚本
    
# 3 Agent Skills = 给智能体用的「标准化技能包」
	-智能体是人---》skill--》一些功能,可以强化人
    	-下班回家:走路30分钟走回家
        -下班回家:人+自行车技能--》骑回家--》10分钟
        
    -由 Anthropic 发起,开放标准,跨平台通用
	-本质:一个文件夹,内置指令、脚本、资源,Agent 可自动发现、加载、执行
	-解决:AI 缺上下文、不可靠、不可复用、跨平台不兼容问题

使用skill好处

1 不用重复教 AI同样的事做 100 遍,也不用重新说一遍流程。
2 AI 不会乱搞、更稳定有 Skill 约束,它就按步骤来,不会胡说八道。
3 可以像搭积木一样组合: 搜索 Skill + 总结 Skill + 写 PPT Skill→ 直接拼成一个 “自动做调研汇报” 的超级技能。
4 可以共享、可以卖你写的 Skill 别人也能用,像插件一样。

Skill发展

1 “Skills”这一技术概念最早是由 AI 公司 Anthropic(Claude) 提出的
2 推出时间:约 2025 年 10 月
3 背景:Anthropic 在其大模型 Claude 的生态中,为了解决模型在处理复杂任务时缺乏标准化、难以复用的问题,提出了 Agent Skills 规范。
4 定义:它将特定的能力(如代码审查、发送邮件、数据分析)封装成标准的文件夹结构(包含 SKILL.md 说明书和脚本),让 AI 能够像人类专家调用工具箱一样,按需加载和执行特定技能。
5 地位:这一规范迅速被开发者社区接受,成为了 Agent 开发工具(如 Trae、OpenClaw等)中实现“AI 自主行动”的行业标准
    -Trae :AI编辑器,Cursor是一类东西--》自动写代码的智能体
    -OpenClaw:龙虾:数字员工--》智能体
6 2026年3月skill 社区生态爆发,开发者开始广泛分享自定义 Skills(如 GitHub 私有技能库),Skills 成为提升开发效率 10 倍的神器

官方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

主流Skill仓库

1 skillsmp
https://skillsmp.com/zh/search 
2 腾讯SkillHub
https://skillhub.tencent.com/
3 阿里魔搭社区 (ModelScope)
https://www.modelscope.cn/skills

标准文件

# 一个合规的 Skill 必须遵循以下目录结构
my-skill/                # 1. 技能根目录(命名有严格要求,见下文)
├── SKILL.md             # 【必需】核心文件:包含元数据(YAML)和指令(Markdown)
├── scripts/             # 【可选】可执行代码(Python/Bash),用于处理确定性任务
│   └── run_task.py
├── references/          # 【可选】参考文档、API 手册,供 AI 查阅
│   └── api-docs.md
└── assets/              # 【可选】静态资源(图片、模板文件等)
    └── template.json
# 补一嘴,没有问题
my-skill/                
    ├── SKILL.md      
    ├── run_task.py

核心规范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/ 中的代码。

案例一:最小合法Skill

---
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}

案例二:带脚本Skill

1 作用:可以将多个pdf合并成一个文件  的技能

2 目录结构

pdf-merger
    -SKILL.md
    -process.py

skills文件的头部

---
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}

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")

发送邮件Skill

Skill.md

---
name: sendemail
description: 用于发送电子邮件。当用户明确要求发送邮件、通知或消息给某人时使用。支持指定收件人、主题和正文内容。

---


# 邮件发送技能

## 用法

使用系统提示符中提供的技能目录绝对路径运行捆绑的 Python 脚本

```bash
../.venv/Scripts/python send_email.py --to "recipient@example.com" --subject "您的主题" --body "邮件内容"
```

- `to` (必填): 收件人的电子邮件地址
- `subject` (必填): 邮件主题
- `body` (必填): 邮件正文内容````


## 示例

```bash
../.venv/Scripts/python send_email.py --to "616564099@qq.com" --subject "会议提醒" --body "请在明天下午3点准时参加会议。"
```````

如果发送成功,将返回成功消息;如果失败,则返回错误描述。

## 依赖项"""

需要标准 Python 库中的 smtplib 和 email 模块(通常包含在标准安装中)。

send_email.py

"""邮件发送工具。

通过 SMTP 协议根据命令行参数发送电子邮件。
"""
import argparse
import smtplib
from email.mime.text import MIMEText

SMTP_SERVER = "smtp.qq.com"
SMTP_PORT = 587
SENDER_EMAIL = "你们的邮箱"
SENDER_AUTH_CODE = "获取的密钥"

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()

开通邮箱发送功能

邮箱配置

注意:

Gmail 需要开启“允许低安全性应用访问”,或者使用应用专用密码(App Password)。

QQ 邮箱和 163 邮箱 需要在设置里开启 SMTP服务 并获取授权码,作为 EMAIL_PASSWORD。

企业邮箱 可能需要不同的 SMTP 服务器地址,请查阅官方文档。

邮箱提供商 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

qq邮箱通过右上角设置中的安全设置就可以找到了

Trae中使用Skill

# 1 获取天气和发送邮件 两个技能写好了
	-可以共享、可以卖你写的 Skill 别人也能用,像插件一样
    -Cursor,Trae,LangChain,OpenClaw。。智能体,只要支持skill的使用,我们写的技能,就能给它用
    
# 2 以 Trae为例,测试
	-1 安装Trae--》注册账号登录
    -2 在d盘创建一个文件夹:skill_test
    -3 在Trae中打开项目
    -4 设置--》规则和技能--》创建技能
    	-全局:所有项目都可以用
        -项目:只有当前项目可用
    -5 把我们写的技能,压成zip
    -6 导入到Trae中
    -7 跟Trae交互,就会调用我们的技能

Deep Agent使用skill

三者区别:

维度 LangChain LangGraph DeepAgent
定位 LLM 应用基础组件库 Agent 工作流编排引擎 高阶自主智能体框架
抽象层级 低(组件级) 中(流程级) 高(任务级)
核心能力 模型 / 工具集成、简单链 图结构、状态管理、持久化、多 Agent 自动规划、文件系统、子 Agent、开箱即用
执行模式 线性 Chain 为主 有向图(节点 + 边),支持循环 / 分支 基于 LangGraph 的自主执行
开发难度 低(几行代码) 中(需定义图结构) 极低(一行创建)
适用场景 简单问答、RAG、基础工具调用 复杂流程、多 Agent、生产级可靠性 长周期自主任务、代码工程、深度研究
依赖关系 独立基础库 可独立,也可与 LangChain 结合 强依赖 LangChain + LangGraph
DeepAgentSkills
    -skills
        -get-weather
            -get_weather.py
            -SKILL.md
        -sendemail
            -sendemail.py
            -SKILL.md
    -.env
    -run_email_skills.py
    -run_weather_skills.py
from deepagents import create_deep_agent
from langgraph.checkpoint.memory import MemorySaver
from deepagents.backends.filesystem import FilesystemBackend
from langchain_openai import ChatOpenAI
import os
from dotenv import load_dotenv
load_dotenv()

# 1 创建model
model = ChatOpenAI(
      model=os.getenv("MODEL_NAME"),
      api_key=os.getenv("API_KEY"),
      base_url=os.getenv("BASE_URL"),
)
# 2 短期记忆--》存状态
checkpointer = MemorySaver()
agent = create_deep_agent(
    model= model,
    backend=FilesystemBackend(root_dir=r'D:\project\PythonProject\DeepAgentSkill'),
    skills=[r'D:\project\PythonProject\DeepAgentSkill\skills'],
    checkpointer=checkpointer,
)

result = agent.invoke(
    {
        "messages": [
            {
                "role": "user",
                "content": "北京天气如何?",
            }
        ]
    },
    config={"configurable": {"thread_id": "12345"}},
)
print(result)
print(result['messages'][-1])

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐