背景
2025年10月16日,Anthropic正式发布了Agent Skill 技术。最初,官方只是希望用它来提升Claude Code在某些特定任务上的表现。但其设计之精妙迅速被业界洞察。
短短两个月内,VS Code、Codex、Cursor等主流开发工具纷纷集成支持。2025年12月18日,Anthropic做出关键决策:将Agent Skill作为开放标准发布,支持跨平台、跨产品调用。这标志着一项产品功能已演变为驱动AI Agent生态的通用设计模式。
第一讲:什么是Agent Skill?
用最通俗的话来说,Agent Skill就是一个大模型可以随时翻阅的"说明书"。
举个例子:你需要做文章摘要生成时,可以直接在Skill里规定摘要的格式输出。这样一来,你就不用每次对话都重复粘贴那一长串格式要求了——大模型自己翻翻这本"说明书"就知道该怎么干活。
当然,"说明书"只是一个为了方便理解的简化说法。实际上,Agent Skill能做的事情远比这强大
第二讲:基础用法实战演练
步骤1:创建你的第一个Agent Skill
让我们以"文章摘要生成"为例,从头开始创建一个完整的Agent Skill。
1.1 创建Skill文件夹
根据Claude Code的要求,我们需要在用户目录下的.claude\skills文件夹中创建Skill。打开终端,执行以下命令:
# 进入Skill目录
cd ~/.claude/skills
# 创建Skill文件夹(文件夹名就是Skill名称)
mkdir "文章摘要生成"
cd "文章摘要生成"
1.2 创建skill.md核心文件
每个Skill都必须包含一个skill.md文件,它定义了Skill的全部能力。使用你喜欢的编辑器创建这个文件:
# 使用VSCode创建
code skill.md
1.3 编写Skill内容
将以下内容完整复制到skill.md中:
---
name: 文章摘要生成
description: 读取一篇文章内容,并生成结构清晰、简洁准确的摘要。
---
## 功能
用于对输入的文章进行理解与概括,提炼文章的核心主题、关键信息点和总体结论。
## 输入
输入为一篇文章文件路径,文章内容为自然语言文本。
支持的文件格式包括:
- Markdown(.md)
- 纯文本(.txt)
## 执行规则
- 完整阅读文章内容,不遗漏关键段落
- 摘要应基于原文信息,不引入原文中不存在的内容
- 使用简洁、客观的语言进行概括
- 不对文章内容进行评价或扩展
## 输出
输出为Markdown格式的摘要内容,结构如下:
**主题**
文章的核心主题概括。
**结论**
对全文核心观点的总结。
文件结构:
~/.claude/skills/
└── 文章摘要生成/
└── skill.md # Skill的核心定义文件
是的,就是这么简单!一个完整的Agent Skill本质上就是一个结构化的Markdown说明文档。
步骤2:在Claude Code中验证Skill
2.1 启动Claude Code并查询可用Skill
首先,随便找一个空目录打开Claude Code,然后在对话中输入:
你有哪些agent skill?
Claude Code会立即识别并列出所有已安装的Skill:
● 根据我当前的配置,我有以下可用的agent skill:
文章摘要生成 (文章摘要生成)
- 功能:读取一篇文章内容,并生成结构清晰、简洁准确的摘要
- 适用场景:需要对文章进行快速理解和总结
这个skill可以帮助你处理中文文章的摘要生成任务。如果你有需要摘要的文章,可以直接提供文章内容或文件路径,我会使用这个技能来为你生成摘要。
除了这个特定的skill之外,我还可以使用各种工具来帮助你完成软件工程任务,包括:
- 文件读写和编辑
- 代码搜索和分析
- 运行命令和脚本
- 任务规划和管理
- 网络搜索和内容获取
有什么具体的工作需要我帮你完成吗?
2.2 实际使用Skill生成摘要
现在让我们测试一下这个Skill的实际效果。输入以下指令:
生成以下文章的摘要:D:\Program Data\Projects\agent_skill_test\部分网站无法访问?一次典型的DNS污染排查与解决记录.md
观察Claude Code的反应——它首先会识别到这项任务应该由"文章摘要生成"Skill处理,然后申请权限:
● 我来帮你生成这篇文章的摘要。
● Read(部分网站无法访问?一次典型的DNS污染排查与解决记录.md)
⎿ Read 15 lines
● 现在我来使用文章摘要生成技能为你生成摘要:
● /文章摘要生成
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Use skill "文章摘要生成"?
Claude may use instructions, code, or files from this Skill.
读取一篇文章内容,并生成结构清晰、简洁准确的摘要。 (user)
Do you want to proceed?
> 1. Yes
2. Yes, and don't ask again for 文章摘要生成 in D:\Program Data\Projects\agent_skill_test
3. No, and tell Claude what to do differently (esc)
2.3 授权并查看结果
选择"1. Yes"授权后,Claude Code会:
- 读取skill.md中的指令
- 按照预定规则处理文章
- 生成符合格式要求的摘要
● 根据文章内容,我来为你生成摘要:
主题
本文记录了一次典型的DNS污染问题排查与解决过程,通过分析"部分网站无法访问"的现象,最终定位并解决了DNS解析异常的问题。
结论
文章通过实际案例说明了DNS污染的排查思路:当遇到部分网站打不开但网络看似正常时,应优先检查DNS设置。关键发现包括:1) 能Ping通不代表DNS解析正常;2) 自动获取的DNS可能不稳定,手动更换为公共DNS(如114.114.114.114)是有效的解决方案;3) 部分网站可访问不能完全说明网络正常。这提醒我们在遇到类似网络问题时,DNS应该作为首要排查点。
成功验证! 可以看到,Claude Code严格按照我们在skill.md中规定的格式输出了摘要,主题和结论结构清晰。这就是Agent Skill的基础用法。
第三讲:高级功能实战演示
Script功能:让Skill具备执行能力
有时文章中包含大量代码,我们希望将代码提取为单独的文件。这时就需要用到Agent Skill的高级功能——Script。
3.1 扩展Skill的文件结构
首先,在Skill文件夹中创建script子目录和Python脚本:
# 进入Skill目录
cd ~/.claude/skills/文章摘要生成
# 创建script目录和Python脚本
mkdir script
cd script
code extract_code_blocks.py
3.2 编写代码提取脚本
将以下Python代码保存到extract_code_blocks.py:
import re
import os
import sys
def extract_and_save_code(file_path):
"""
从Markdown文件中提取代码块并保存到extracted_code目录
"""
# 读取文件内容
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 正则匹配代码块
# 匹配模式:```语言标识\n代码内容\n```
pattern = r'```(\w+)?\n(.*?)\n```'
matches = re.findall(pattern, content, re.DOTALL)
if not matches:
print("未发现代码块")
return
# 获取文件名(不含扩展名)
base_name = os.path.splitext(os.path.basename(file_path))[0]
# 创建输出目录
output_dir = os.path.join(os.path.dirname(file_path), 'extracted_code')
os.makedirs(output_dir, exist_ok=True)
# 语言到扩展名的映射
ext_map = {
'python': 'py',
'javascript': 'js',
'js': 'js',
'bash': 'sh',
'shell': 'sh',
'json': 'json',
'html': 'html',
'css': 'css',
'java': 'java',
'cpp': 'cpp',
'c': 'c',
'go': 'go',
'rust': 'rs',
'php': 'php',
'ruby': 'rb',
'yaml': 'yml',
'xml': 'xml',
'sql': 'sql'
}
saved_files = []
for i, (lang, code) in enumerate(matches, 1):
# 确定文件扩展名
lang = lang.lower() if lang else 'txt'
ext = ext_map.get(lang, 'txt')
# 生成文件名
filename = f"{base_name}_code_{i}.{ext}"
filepath = os.path.join(output_dir, filename)
# 保存代码块
with open(filepath, 'w', encoding='utf-8') as f:
f.write(code.strip())
saved_files.append(filepath)
print(f"已保存: {filepath}")
print(f"\n共保存了 {len(saved_files)} 个代码文件到 {output_dir}")
return saved_files
if __name__ == '__main__':
if len(sys.argv) > 1:
file_path = sys.argv[1]
if os.path.exists(file_path):
extract_and_save_code(file_path)
else:
print(f"文件不存在: {file_path}")
else:
print("请提供文件路径作为参数")
print("用法: python extract_code_blocks.py <文件路径>")
3.3 更新skill.md支持脚本调用
编辑skill.md文件,在"执行规则"部分添加脚本调用逻辑:
## 执行规则
- 完整阅读文章内容,不遗漏关键段落
- 摘要应基于原文信息,不引入原文中不存在的内容
- 使用简洁、客观的语言进行概括
- 不对文章内容进行评价或扩展
- 如果用户提到了"代码"、"代码块"或"代码文件",那么在解析文章内容时,判断是否存在代码块。如果存在代码块,调用`./script/extract_code_blocks.py`脚本导出单独的代码文件
3.4 测试Skill
现在测试Skill。在Claude Code中输入:
生成以下文章的摘要:D:\Program Data\Projects\agent_skill_test\Typora v1.10.8破解教程(仅供学习研究).md,并导出其中的代码块
Claude Code会执行以下操作:
- 识别到需要提取代码块
- 请求执行脚本的权限
● 现在我将提取代码块并生成摘要:
● Bash(cd "C:\Users\18527\.claude\skills\文章摘要生成" && python extract_code_blocks.py "D:\Program
Data\Projects\skill_test\Typora v1.10.8 破解教程(仅供学习研究).md")
⎿ Running…
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Bash command
cd "C:\Users\18527\.claude\skills\文章摘要生成" && python extract_code_blocks.py "D:\Program
Data\Projects\skill_test\Typora v1.10.8 破解教程(仅供学习研究).md"
提取文章中的代码块
Do you want to proceed?
> 1. Yes
2. Yes, allow reading from 文章摘要生成\ from this project
3. Type here to tell Claude what to do differently
3.5 查看完整结果
授权后,Claude Code会:
- 运行Python脚本提取代码
- 生成标准格式的摘要
- 提供详细的执行报告
● 代码块已成功提取。现在让我生成文章摘要:
---
摘要
主题
本文是一篇关于Typora v1.10.8版本软件破解的技术教程,详细介绍了如何通过修改软件文件来绕过激活验证机制,实现软件的"免费"使用。
结论
文章提供了三个主要的破解步骤:1) 通过修改CSS隐藏左下角激活状态标签;2) 修改JavaScript代码改变激活验证逻辑;3) 添加代码屏蔽激活弹窗。教程在开头和结尾都强调了法律声明,说明内容仅供技术研究学习,提醒用户支持正版软件,并警告使用破解版本可能带来的安全风险和法律问题。
---
导出的代码块
已成功从文章中提取了4个代码块,保存在以下目录:
D:\Program Data\Projects\agent_skill_test\extracted_code\
提取的文件包括:
1. HTML代码 - 用于隐藏激活状态标签的CSS样式
2. JavaScript代码 - 修改激活验证逻辑(第1处)
3. JavaScript代码 - 修改激活验证逻辑(第2处,完整文件开头添加)
4. JavaScript代码 - 屏蔽激活弹窗的完整实现
这些代码块分别对应教程中的三个主要破解步骤。
完整文件结构现在为:
~/.claude/skills/
└── 文章摘要生成/
├── skill.md # Skill核心定义
└── script/
└── extract_code_blocks.py # 代码提取脚本
到这,一个非常简单的agent skill 就完成了,看似简单,但是如果用好了,可以大幅体验claude code的使用体验,为高频任务(如日志分析)创建Skill,确保输出风格统一,提高claude code生成内容的一致性,在这里,也推荐两个第三方的收集网站,在上面下载别人写好的 skills,但在项目中引入 Skills 时,一定要自行阅读和审核,官方也提示了相关风险:
技能通过指令和代码为 Claude 提供新功能。虽然这使它们变得强大,但也意味着恶意技能可能会在它们被使用的环境中引入漏洞,或指示 Claude 窃取数据并采取非预期行动。
我们建议仅从可信来源安装技能。在从不太可信的来源安装技能时,在使用前应彻底审核。首先,阅读技能捆绑文件的内容,了解其作用,特别关注代码依赖和捆绑资源(如图像或脚本)。同样,注意技能中的指令或代码,这些指令或代码指示 Claude 连接到可能不受信任的外部网络来源。
默认评论
Halo系统提供的评论