前言(网络安全 × Skill 能力)

适配场景:在网络安全垂直领域中,安全团队需要处理海量而杂乱的内容:从威胁情报、漏洞公告,到攻击链分析、日志告警、取证记录,各类文档格式结构不一,导致信息提炼缓慢、分析效率难以提升。传统依赖大模型的做法虽能辅助阅读和理解,但在应对多文档、多格式、持续高频的安全输入时,仍面临成本高、结果不稳定等问题。

核心功能:Claude 推出的 Skill 机制让这些场景首次可以实现**“规则化、模板化、标准化”的自动处理:如自动解析威胁情报、自动对公告进行结构化提取、自动拆解攻击链、自动识别关键实体与风险点,并能长期保持一致的分析口径。**

一、什么是skill

一种模块化工具调用框架,核心思想是“给大模型喂预制菜

  • 提前将可复用的能力封装为 skill 模块
  • 通过 JSON 文件注册每个 skill 的名称和描述,并注入到 system prompt 中,让大模型知晓可用工具;
  • 大模型根据用户问题自动选择合适 skill
  • 系统据此查找对应 skill.md 说明文件
  • 最终按 skill.md 的指示执行脚本或调用程序,完成任务。

mapping策略

用户输入 / 模型决策 系统中的具体资源
模型选择的 skill 名称 skills/{skill_name}/skill.md 文件
skill 名称 + 描述(JSON) 注入 prompt 的工具列表
skill.md 中的指令 实际执行的脚本/程序/工作流
1
2
3
4
5
6
7
8
graph LR
A[用户请求任务] --> B[任务类型识别]
B --> C[技能匹配]
C --> D[加载资源]
D --> E[执行并返回结果]

style A fill:#f9f,stroke:#333
style E fill:#bbf,stroke:#333

二、skill与MCP

**Skill 就像“功能说明书”,写清楚某个功能是干什么的;MCP 则像“遥控器和接口”,让大模型真的能找到这些功能、并把它们跑起来。Skill 负责描述,MCP 负责执行。**把两者结合起来,就是让模型既“知道能力”,又“能调用能力”。

Skill 用来把安全能力写成清晰的功能说明书,例如“解析威胁情报”“提取IOC”“分析日志”“匹配ATT&CK 技术”“查询资产漏洞”,模型一读就知道这项能力是干什么的、输入是什么、输出长什么样。MCP 则负责把这些能力真正连到后台系统上,让模型可以实时调用安全脚本、情报查询接口、扫描工具、资产数据库、日志平台等。

三、项目框架

第一步:首先需要准备好技能包,包含SKILL.md文档以及文档中所需的功能性脚本

第二步:在skills.json中注册好技能名称,描述和对应SKILL.md文档

第三步:如果是在本地运行,需要定义支持工具,例如

文件读写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@tool
def read_file(file_path: str):
"""
读取指定文件内容
"""
try:
with open(file_path, "r", encoding="utf-8") as f:
return f.read()
except Exception as e:
return f"Error: {str(e)}"

@tool
def write_file(file_path: str, content: str):
"""
将内容写入指定文件
"""
try:
with open(file_path, "w", encoding="utf-8") as f:
f.write(content)
return f"文件已写入: {file_path}"
except Exception as e:
return f"Error: {str(e)}"

执行代码/shell指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@tool
def execute_python_code(code: str):
"""
执行一段 Python 代码,并返回结果或错误信息
"""
try:
local_vars = {}
exec(code, {}, local_vars)
return local_vars
except Exception as e:
return f"Error: {str(e)}"

@tool
def execute_shell_command(command: str) -> str:
"""
在新的 cmd 窗口中执行命令(仅限 Windows 系统)。
"""
os_type = platform.system()

try:
if os_type == "Windows":
# 使用 'start' 指令打开新的 cmd 窗口,/k 表示执行后窗口保持
subprocess.Popen(["cmd.exe", "/c", f"start cmd.exe /k {command}"])
return f"在新的 cmd 窗口中启动命令: {command}"

else:
return "仅支持 Windows 系统。"

except Exception as e:
return f"错误: {str(e)}"

提示词:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 这里是在加载技能注册表.json
def load_skills():
if not os.path.exists(SKILLS_PATH):
return []
with open(SKILLS_PATH, "r", encoding="utf-8") as f:
skills = json.load(f)
return skills


skills_text = load_skills()


SYSTEM_PROMPT = f"""
你是一个智能代理,具备执行多种技能的能力。请根据以下步骤提供准确的答案:

系统除了内置工具外,还提供以下技能(来自 skills/skills.json):
{skills_text}

当用户提出需求时,按照以下流程处理:
a. 从 skills.json 中检索最匹配的技能;
b. 根据技能路径定位到本地相应技能包;
c. 打开并阅读 SKILL.md 文件,了解工具使用方法和示例;
d. 确保理解技能的操作方式和所需输入。

执行时:

按照 SKILL.md 中的要求,正确调用工具,确保输入和输出一致;

Action 名称与技能名称需完全匹配,输入字段填写准确无误。

回答时,结合执行结果,提供完整的推理过程和清晰的解释,确保用户理解。

注意事项:
系统提供以下四个内置工具:

execute_python_code(code: str):执行 Python 代码并返回结果或错误;

read_file(file_path: str):读取文件内容;

write_file(file_path: str, content: str):写入内容到文件;

execute_shell_command(command: str):在新的命令行窗口中执行命令并实时输出结果。
"""

示例:

image-20251201143938870

脚本实施成功:

结果:

image-20251201144307819

四、应用前景/优势/缺陷

4.1 前景

安全文档解析标准化
通过 Skill 将威胁情报、漏洞公告、攻防报告等解析流程模块化,自动输出统一格式的结构化数据,显著提升信息摄取效率。

自动化安全分析流程(轻量 SOAR)
结合 MCP,Skill 能驱动实时调用漏洞扫描、情报查询、日志检索等内部系统,实现高性价比的自动化安全分析工作流。

构建企业 AI 安全工作流
通过 Skill 封装企业内部多系统能力,使 LLM 能作为“统一的安全入口”,实现资产查询、情报关联、风险评估的自动链路化处理。

多技能协同形成完整的分析流水线
多个 Skill 可以像插件链一样组合,完成“解析 → 抽取 → 关联 → 判断 → 处置”全流程,从而打造新一代智能化 SOC 分析体系。

4.2 优势

支持多技能协同,适合构建自动化流水线
多个 Skill 可组合为端到端流程,如“文档解析 → IOC 抽取 → 关联分析 → 风险评估”,形成类 SOAR 的智能工作流。

复用强、易维护、可迭代
安全流程、解析逻辑、字段规范等都可以以 Skill 的方式沉淀下来,后续只需修改 skill.md 或脚本即可,维护成本低。

输出稳定、格式统一
Skill 使用预定义的输入/输出规范,使模型生成的 JSON、结构化字段和分析结果高度一致,特别适合网络安全场景的标准化需求。

4.3 缺陷

Skill 调用依赖模型对自然语言的理解
Skill 匹配基于描述文本,容易在技能较多时出现误选或冲突,需要大量调优。

四、自定义技能包

目前Claude在GitHub上开源了以下skills技能包

algorithmic-art 使用 p5.js 创建生成式艺术(如流场、粒子系统)
canvas-design 使用设计原则生成 .png / .pdf 格式的视觉艺术
slack-gif-creator 创建符合 Slack 尺寸限制的动画 GIF
artifacts-builder 使用 React + Tailwind CSS + shadcn/ui 构建 claude.ai HTML artifacts
mcp-server 指导如何创建高质量 MCP 服务器,用于集成外部 API 和服务
webapp-testing 使用 Playwright 测试本地 Web 应用的 UI
brand-guidelines 应用 Anthropic 官方品牌色和排版规范
internal-comms 撰写内部沟通材料(如状态报告、新闻简报、FAQ)
theme-factory 为 artifacts 提供 10 种预设专业主题,或动态生成新主题
skill-creator 指导如何创建有效的技能以扩展 Claude 能

示例简单SKILL.md

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
## 指令

当用户请求与 **数据转换、自动化报告、文件处理** 相关的任务时,主动使用本技能。

### 能力说明
- 支持输入:CSV、JSON、纯文本
- 输出格式:XLSX、PDF、HTML
- 可配置模板(见 resources/templates/)

### 使用规则
1. **永远先确认输入文件路径是否存在**
2. **输出文件必须保存到用户指定目录**
3. **不要假设默认路径,必须让用户明确提供**

### 示例工作流
1. 用户说:“把 sales.csv 转成带图表的 Excel”
2. 你调用 `scripts/convert.py sales.csv --format xlsx --chart`
3. 返回结果文件路径:`./output/sales.xlsx`