游乐游手机版
首页/AI教程/文章详情

从零手搓Agent Skill,让AI成为你的专属助手

时间:2026-07-14 15:16
AgentSkills协议通过文件夹结构封装流程指令与脚本,实现从对话驱动到流程驱动的转变。其三层渐进式加载机制(元数据、技能主体、附加文件)优化上下文占用。将隐性经验显性化为可复用的Skill,可应用于邮件发送、测试用例生成等场景,提升AI工程化效率。

AI 的能力确实在持续增强,但一旦让它执行具体任务——比如发送邮件、整理周报、分析数据——就常常出现偏差。要么答非所问,要么步骤混乱,更麻烦的是每次都要重新描述一遍需求。

你换一种问法,它就换一种答法。结果难以控制,流程无法复现,更谈不上经验积累。

根本原因在于——你实际上是在用“对话”驱动 AI,而不是用“流程”驱动 AI。

2025年10月,Anthropic 正式发布了 Agent Skills 协议。两个月后,该协议作为开放标准推向市场,OpenAI、GitHub、VS Code、Cursor 均已接入。行业数据显示,全栈测开岗位需求激增了340%,掌握 AI 技能的测试工程师薪资比未掌握者高出30%至50%。

可以说,Skill 正在成为2026年 AI 工程化领域最核心的抓手。

本文将从零开始,带您亲手构建一个可用的 Agent Skill。不堆砌概念,只聚焦可落地的实操路径。

目录

一、Skill 是什么:给 Agent 的工作交接 SOP
二、为什么需要 Skill:从“对话”到“流程”
三、核心机制拆解:三层渐进式加载
四、手把手实战:从零构建一个邮件发送 Skill
五、工程落地启示:Skill 能帮你解决哪些问题
六、一个值得你认真思考的问题

一、Skill 是什么:给 Agent 的工作交接 SOP

先把这个概念讲清楚。

Skill 本质上就是一个文件夹:

skill-name/
├── SKILL.md # 核心指令文件(必须)
├── reference.md # 详细参考资料(可选)
├── scripts/ # 可执行脚本(可选)
│ └── main.py
└── resources/ # 额外资源文件(可选)

其中,SKILL.md 是绝对核心。它包含 YAML 格式的元数据(名称和描述),以及 Markdown 格式的详细指令。

用通俗的话说:Skill 就像你给 Agent 准备的一份“工作交接 SOP 大礼包”。你可以把自己的工作流程、判断标准、注意事项,甚至可复用的脚本,全部打包进一个文件夹。当 Agent 遇到相关任务时,它会自动加载这个“说明书”,并按照你的方式执行。

关键在于:Skill 把“隐性经验”转化成了“显性资产”。你不需要每次都重新解释“这件事应该怎么做”,Agent 自己会读取。

顺带厘清一个容易混淆的概念:MCP 解决的是“Agent 如何调用外部工具”的问题;而 Skill 解决的是“Agent 如何按你的流程做事”的问题。一个管“手”,一个管“脑子里的流程”。

二、为什么需要 Skill:从“对话”到“流程”

不使用 Skill 时,你让 AI 发送一封邮件,流程通常是这样的:

“帮我写一封邮件,主题是项目进度同步,收件人是张三,内容就说项目延期了……”

AI 生成内容。你复制粘贴。打开邮箱。发送。

下次同样的任务,再重复一遍。换个问法,AI 给你换个写法。

本质问题在于:每次都在从零启动,每次都在消耗认知资源。

使用 Skill 之后呢?你只需要输入“发项目进度邮件给张三”。Agent 会自动加载邮件 Skill,按照你预设的模板生成内容、调用邮件 API、完成发送。一次封装,永久复用。

Skill 要解决的核心问题有三个:

流程标准化:同样的任务,每次执行方式一致,不会因为提问方式不同而产生不同结果。
知识可复用:你的经验封装成 Skill 后,整个团队都能使用,无需反复口口相传“这件事应该怎么做”。
上下文优化:Skill 采用渐进式加载,不相关的技能根本不会被加载。即使你装了100个 Skill,Agent 也只会加载当前任务需要的那一个。

一个值得记住的核心区别是:Prompt 是“对话”,Skill 是“流程”。对话不可控,流程才能被复现。

三、核心机制拆解:三层渐进式加载

这是 Agent Skills 最精妙的设计。不理解这个,就理解不了为什么 Skill 能容纳海量信息,却不怕撑爆上下文窗口。

第一层:元数据(Metadata)

每个 SKILL.md 文件开头的 YAML 部分,只包含 name 和 description。Agent 启动时会预加载所有已安装技能的元数据到系统提示中。这几乎不占用多少 token,但能让 Agent 知道“我有这些技能可用”。

第二层:技能主体(SKILL.md 内容)

当 Agent 判断某个技能与当前任务相关时,才会完整加载该技能的 SKILL.md 内容。这里面包含了详细的指令、注意事项和示例。此时才开始真正消耗上下文。

第三层:附加文件和脚本

遇到更复杂的情况——需要运行 Python 脚本、读取参考文档——Agent 会按需加载或执行。SKILL.md 通过 Markdown 链接引用这些文件,只有需要时才加载。


这套机制让 Skill 可以包含海量信息,却不受上下文窗口限制。无关任务时不占用上下文,相关任务时逐步加载。传统方式是把所有指令一次性塞进 Prompt 里,而 Skill 是把指令做成了“可检索的知识库”。

四、手把手实战:从零构建一个邮件发送 Skill

理论讲完,直接动手。

目标:创建一个邮件发送 Skill。用户说“发邮件给XX,内容是XXX”,Agent 自动生成邮件、调用 API 发送。

Step 1:创建 Skill 目录

Agent Skills 是开放标准,在不同平台的存放位置略有不同:

  • Claude Code:.claude/skills/
  • Cursor / Codex:.agents/skills/
  • GitHub Copilot:.github/skills/

这里以 Cursor 为例,在项目根目录创建:

mkdir -p .agents/skills/send-email
cd .agents/skills/send-email

Step 2:编写 SKILL.md

创建 SKILL.md 文件:

---
name: send-email
description: Send emails via SMTP or Gmail API. Use when user asks to send an email, notify someone, or share a message via email.
version: 1.0.0
---

# Send Email Skill

## 触发条件
当用户请求发送邮件时触发,包括但不限于:
- "发邮件给[收件人]"
- "通知[某人]关于[某事]"
- "发送项目进度邮件"

## 执行流程

### 步骤1:提取邮件信息
从用户输入中提取:
- 收件人(to):必填,邮箱地址
- 主题(subject):可选,默认"来自AI助手的邮件"
- 正文(body):必填,邮件内容
- 抄送(cc):可选

### 步骤2:生成邮件内容
如果正文不完整,按以下模板补全:
- 开头:问候语("您好"或"Hi")
- 主体:用户提供的核心内容
- 结尾:签名("此致\nAI助手")

### 步骤3:发送邮件
调用 `scripts/send.py` 脚本发送邮件。
- 脚本路径:`scripts/send.py`
- 参数格式:JSON `{"to": "...", "subject": "...", "body": "..."}`

## 注意事项
- 邮件正文不超过1000字,超出则提示用户精简
- 发送成功后返回邮件ID和发送时间
- 发送失败则返回具体错误信息,不重试

## 示例
用户:"发邮件给zhangsan@example.com,说项目进度延期了"
→ 提取收件人、生成正文、调用脚本发送
→ 返回:"邮件已发送至zhangsan@example.com,邮件ID: xxx"

Step 3:编写发送脚本

创建 scripts/send.py

#!/usr/bin/env python3
"""
邮件发送脚本 - 被Agent Skill调用
"""

import smtplib
import json
import sys
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email(to, subject, body):
"""
通过SMTP发送邮件
"""
# 配置(实际使用时从环境变量读取)
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SENDER_EMAIL = "your-email@gmail.com"
SENDER_PASSWORD = "your-app-password"

try:
msg = MIMEMultipart()
msg["From"] = SENDER_EMAIL
msg["To"] = to
msg["Subject"] = subject

msg.attach(MIMEText(body, "plain"))

server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
server.starttls()
server.login(SENDER_EMAIL, SENDER_PASSWORD)
server.send_message(msg)
server.quit()

return {"success": True, "message": f"邮件已发送至{to}"}
except Exception as e:
return {"success": False, "error": str(e)}

if __name__ == "__main__":
# 从命令行参数读取JSON
if len(sys.argv) < 2:
print(json.dumps({"error": "缺少参数"}))
sys.exit(1)

try:
params = json.loads(sys.argv[1])
result = send_email(
to=params.get("to"),
subject=params.get("subject", "来自AI助手的邮件"),
body=params.get("body")
)
print(json.dumps(result))
except Exception as e:
print(json.dumps({"error": str(e)}))

Step 4:测试 Skill

在 Cursor 中打开 Agent 模式,输入:

“发邮件给 test@example.com,测试一下我的邮件 Skill”

Agent 应该自动完成以下步骤:

  1. 识别任务匹配 send-email 技能
  2. 加载 SKILL.md 获取执行流程
  3. 提取收件人和正文
  4. 调用 scripts/send.py 发送邮件
  5. 返回发送结果

如果未触发,可以检查两件事:

  • SKILL.md 的 description 是否准确描述了触发场景
  • Skill 目录是否放置在正确位置(.agents/skills/

Step 5:进阶——让 Skill 自我进化

Skill-Creator 是一个“元 Skill”,专门帮助用户创建和优化 Skill。在 Agent 中运行 /skill-creator,它会引导你走完整个创建流程——搭建脚手架、编写描述、组织脚本、打包发布。

更高级的操作是使用 skill-creator-improvement 技能。当 Agent 发现可复用的经验、修正过的命令模式,或者更高效的操作路径时,它会直接更新 Skill 的 ## Gotchas 章节。这意味着,Skill 是可以自我进化的。

五、Skill 能帮你解决哪些问题

对测试工程师:把测试用例封装成 Skill

你现在写100个测试用例,每次手工执行。换成 Skill 之后——把等价类划分、边界值分析、场景法这些测试设计方法封装成 Skill。Agent 接收需求文档,自动生成测试用例。工作效率从“小时级手写”提升到“分钟级闭环”。

对开发工程师:把代码规范封装成 Skill

团队常见的场景:代码规范文档可能写了30页,新成员记不住,老成员偶尔也会遗忘。封装成 Skill 之后——Agent 生成代码时自动加载规范,输出符合团队标准的代码,Review 环节省去大量重复纠正的工作。

对产品/运营:把重复工作流封装成 Skill

每周发周报、每月写总结、每次上线发公告——这些重复性工作都可以封装成 Skill。你只需要输入关键数据,Agent 就能按照你的格式输出完整文档。

说到底,Skill 的本质就是把“人的经验”变成“AI 的肌肉记忆”。

六、一个值得你认真思考的问题

回到文章开头的场景。

你每天让 AI 帮你做的事情——写邮件、整理文档、生成用例、分析数据——如果全部封装成 Skill,你的工作效率能提升多少?

但真正的问题不在于“如何封装”,而是另一层更底层的挑战:

你现在的日常工作流程,能否被清晰地写成一份“别人照着做就能完成”的 SOP 文档?

如果写不出来,那 AI 也学不会。Skill 只是工具,真正稀缺的,是把“隐性经验显性化”的能力。

不妨在评论区聊聊——你第一个想封装的 Skill 会是什么?

来源:https://bbs.huaweicloud.com/blogs/481849
上一篇腾讯PCG:AI评测推动质量工程进化进入新阶段 下一篇K星标AI Agent模板库,100个模板克隆即用
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
MyShell发布开源AI语音克隆工具OpenVoice,瞄准语音模仿领域
AI教程 · 2026-07-14

MyShell发布开源AI语音克隆工具OpenVoice,瞄准语音模仿领域

MyShell最新推出的开源语音克隆工具OpenVoice引起了广泛关注。这一创新产品由麻省理工学院(MIT)、清华大学以及加拿大人工智能初创公司MyShell合作开发。OpenVoice采用了一种概念简单但高效的方法,可几乎即时克隆用户的语音,并使用明显更少的计算资源。该工具不仅具备语音克隆的基本

Open Voice:轻松克隆任何声音,免费开源的AI语音克隆项目
AI教程 · 2026-07-14

Open Voice:轻松克隆任何声音,免费开源的AI语音克隆项目

Open Voice是由MyShell推出的一个免费开源的AI即时语音克隆项目,相较于其他的语音克隆技术,OpenVoice的优势在于仅需一段简短的音频,便能以惊人的准确度复刻说话者的音色,创造出让人信以为真的自然语音。除开复制和参考说话者的音色之外,OpenVoice还可以对语音风格进行精细控制,

VoiceCanvas-AI语音克隆 & TTS工具 | 40+种语言语音合成
AI教程 · 2026-07-14

VoiceCanvas-AI语音克隆 & TTS工具 | 40+种语言语音合成

VoiceCanvas是什么?VoiceCanvas是由先进AI驱动的语音克隆与文本转语音工具,支持40+种语言的即时语音合成。其核心能力包括:高质量语音合成:具有自然语调和节奏的清晰人声个性化语音克隆:通过3-10秒语音样本创建专属AI声纹多语言支持:覆盖全球主流语种的男 女声选择进阶调控功能:语

Github爆火AI语音克隆项目OpenVoice,精准进行声音复刻
AI教程 · 2026-07-14

Github爆火AI语音克隆项目OpenVoice,精准进行声音复刻

最近,Github上的一个名为OpenVoice的AI语音克隆项目爆火,该项目由myshell-ai开源,仅开源了不到三周,就有了6 1k的star。OpenVoice仅需参考说话者的短音频片段,即可复制其声音并生成多种语言的语音。这一技术不仅实现了对音色的准确克隆,还在语音生成过程中提供了对情感、

Free Voice Cloning-免费AI语音克隆工具 | 5秒生成你的数字声音
AI教程 · 2026-07-14

Free Voice Cloning-免费AI语音克隆工具 | 5秒生成你的数字声音

Free Voice Cloning,一款真正0成本、无限制、跨语言的高质量AI语音克隆平台。适合内容创作者、教育者、AI开发者、播客人群等所有想要“复制自己的声音”并进行语音合成的用户。?️ Free Voice Cloning 是什么?Free Voice Cloning 是一个基于先进AI语音