博客:从零手写 AI 本地 Skill 工具集|让 AI 听懂自然语言、调用 Python 操控本机文件系统
目录
博客:从零手写 AI 本地 Skill 工具集|让 AI 听懂自然语言、调用 Python 操控本机文件系统
一、基础概念:Skill、SKILL.md、工具脚本分别是什么
三、核心文件 1:SKILL.md 完整源码(AI 的行为约束手册)
4.1 convert_md2html.py —— Markdown 批量转 HTML
4.3 organize_by_type.py —— 文件按后缀自动分类归档
4.4 conversionFormats.md(参考文档)
五、AI 自动生成整套 Skill 的底层原理(对应你截图里的行为)
封面导语
绝大多数本地 AI 只停留在 “对话问答” 层面,想要 AI 真正操作本机文件、自动整理文件夹、MD 转网页、生成目录树,核心方案就是自定义 Skill 技能包。 本文带你完整走通一套闭环:自然语言需求 → AI 自主拆解任务 → 生成 Skill 协议文档 (SKILL.md) → 自动编写配套可运行 Python 工具脚本 → 客户端加载生效。全程附带全部源码,可直接落地部署到本地 Agent。
一、基础概念:Skill、SKILL.md、工具脚本分别是什么
1.1 三者对应关系
| 文件 | 定位 | 核心作用 |
|---|---|---|
SKILL.md |
技能协议 / 注册说明书 | 规定整套技能能干什么、模块划分、意图路由规则、安全红线、调用格式、工作流程;AI 加载该文件后,才知道什么时候启用对应工具 |
*.py 脚本文件 |
真实可执行工具实体 | 落地具体功能:文件归类、MD 转 HTML、打印目录树等实际操作系统行为 |
| 参考 md 文档 | 补充说明文件 | 存放格式对照表、入参说明、异常处理规则 |
1.2 整套运行闭环
用户自然语言指令 → 意图识别匹配 SKILL.md 路由表 → 校验安全策略 → 调用对应 Python 脚本执行本地操作 → 脚本结果回传给 AI 整理成可读反馈
1.3 本次搭建的文件系统 Skill 包含能力
- MD 文件批量转为 HTML 静态页面
- 一键输出文件夹树形结构图(目录树可视化)
- 根据文件后缀自动分类整理杂乱文件夹 配套约束:操作增加安全校验、高危路径拦截、二次确认闸门,防止 AI 误删、乱移动系统文件。
二、整体工程目录结构(标准 Skill 包格式)
file_system_skill/
├─ SKILL.md # 技能总配置文件(核心)
├─ conversionFormats.md # 格式转换补充参考文档
├─ convert_md2html.py # MD转HTML工具脚本
├─ dir_tree.py # 目录树生成脚本
└─ organize_by_type.py # 文件自动分类脚本
三、核心文件 1:SKILL.md 完整源码(AI 的行为约束手册)
# FileSystem Skill 本地文件系统操作技能
## 1、技能总述
本技能为AI提供本机文件系统安全可控的运维能力,包含文件格式转换、目录结构查看、文件自动规整三大核心工具,所有文件操作携带安全校验机制。
## 2、四大核心组成
1. 意图决策对照表:将用户自然语言意图路由分发至对应工具脚本
2. 4个核心功能模块:格式转换、目录可视化、文件整理、公共安全校验
3. 运行准则:安全优先、高危操作强制二次确认、禁止访问系统关键目录
4. 标准调用工作流示例
## 3、意图路由匹配表
| 用户自然语言指令示例 | 路由目标脚本 |
| ---- | ---- |
| 将xxx文件夹下md文件转换成网页、md转html | convert_md2html.py |
| 查看这个文件夹目录结构、打印树形目录、生成目录树 | dir_tree.py |
| 整理桌面文件、按文件类型归类下载文件夹、自动分类文件 | organize_by_type.py |
## 4、运行安全硬性规则(安全闸门)
1. 禁止遍历/修改:C:\Windows、C:\Program Files、/etc、/usr等系统核心目录
2. 文件删除、批量移动文件必须向用户弹窗确认,得到确认指令后方可执行
3. 所有文件操作必须使用**绝对路径校验**,拒绝模糊危险路径
4. 执行结果必须回显:操作文件数量、存放路径、执行是否成功
## 5、标准工作流
Step1:解析用户指令,提取目标文件夹路径、执行参数
Step2:依据路由表匹配对应的Python工具
Step3:SKILL内置安全规则校验路径合法性
Step4:高危行为发起确认询问
Step5:调用本地py脚本执行真实文件操作
Step6:捕获脚本运行输出/报错,整理成自然语言回复用户
四、三份配套可运行 Python 工具源码
4.1 convert_md2html.py —— Markdown 批量转 HTML
import markdown
import os
def batch_md_to_html(source_dir: str, out_dir: str = "./html_output"):
"""
批量将目录内md文件转为静态HTML文件
:param source_dir: md文件所在文件夹路径
:param out_dir: html输出目录
"""
if not os.path.exists(out_dir):
os.makedirs(out_dir)
# 基础HTML模板
html_template = """
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>{title}</title>
<style>body{{padding: 2rem;max-width: 900px;margin: 0 auto;}}</style>
</head>
<body>{content}</body>
</html>
"""
file_count = 0
for filename in os.listdir(source_dir):
if filename.lower().endswith(".md"):
md_path = os.path.join(source_dir, filename)
with open(md_path, "r", encoding="utf-8") as f:
md_content = f.read()
# md转html正文
html_body = markdown.markdown(md_content, extensions=["tables", "fenced_code"])
html_full = html_template.format(title=filename, content=html_body)
save_name = filename.replace(".md", ".html")
save_path = os.path.join(out_dir, save_name)
with open(save_path, "w", encoding="utf-8") as f:
f.write(html_full)
file_count += 1
return f"转换完成,共处理 {file_count} 个Markdown文件,输出路径:{os.path.abspath(out_dir)}"
if __name__ == "__main__":
res = batch_md_to_html("./test_md")
print(res)
4.2 dir_tree.py —— 生成文件夹树形结构
import os
def generate_dir_tree(root_path: str, max_depth: int = 8) -> str:
"""
生成目录树文本结构
:param root_path: 目标根目录
:param max_depth: 最大遍历深度,防止文件夹层级过深卡死
:return: 格式化树形字符串
"""
tree_lines = [os.path.basename(os.path.abspath(root_path)) + "/"]
def walk(path, depth):
if depth > max_depth:
return
items = sorted(os.listdir(path))
for idx, item in enumerate(items):
item_full = os.path.join(path, item)
prefix = "│ " * depth
symbol = "└── " if idx == len(items) - 1 else "├── "
tree_lines.append(f"{prefix}{symbol}{item}")
if os.path.isdir(item_full):
walk(item_full, depth + 1)
walk(root_path, depth=1)
return "\n".join(tree_lines)
if __name__ == "__main__":
tree_text = generate_dir_tree("./")
print(tree_text)
4.3 organize_by_type.py —— 文件按后缀自动分类归档
import os
import shutil
# 定义文件分类映射关系
FILE_TYPE_MAP = {
"图片": [".jpg", ".png", ".gif", ".jpeg", ".bmp", ".webp"],
"文档": [".pdf", ".doc", ".docx", ".xls", ".xlsx", ".md", ".txt"],
"压缩包": [".zip", ".rar", ".7z", ".tar", ".gz"],
"程序": [".exe", ".py", ".bat", ".ps1"],
"视频": [".mp4", ".mov", ".avi", ".mkv"],
"音频": [".mp3", ".wav", ".flac"]
}
def organize_folder(target_folder: str):
"""按文件后缀自动归类文件夹内所有文件,文件夹不会被移动"""
# 安全拦截系统目录
block_paths = ["C:/Windows", "C:/Program Files", "/etc", "/usr"]
for block in block_paths:
if target_folder.startswith(block):
return "错误:禁止操作系统保护目录"
total_move = 0
for file in os.listdir(target_folder):
file_full_path = os.path.join(target_folder, file)
# 跳过子文件夹,只整理文件
if os.path.isdir(file_full_path):
continue
file_suffix = os.path.splitext(file)[1].lower()
match_folder = "其他文件"
# 匹配分类文件夹
for cat_name, suffix_list in FILE_TYPE_MAP.items():
if file_suffix in suffix_list:
match_folder = cat_name
break
# 创建分类文件夹
cat_path = os.path.join(target_folder, match_folder)
if not os.path.exists(cat_path):
os.makedirs(cat_path)
# 移动文件
shutil.move(file_full_path, os.path.join(cat_path, file))
total_move += 1
return f"文件整理完成,一共归类移动 {total_move} 个文件"
if __name__ == "__main__":
result = organize_folder(r"C:\Users\你的用户名\Desktop")
print(result)
4.4 conversionFormats.md(参考文档)
# 文件转换支持格式对照表
1. Markdown支持语法:表格、代码块、标题、列表、加粗斜体
2. 输出HTML为纯静态文件,无需任何前端服务即可打开
3. 归类脚本识别的全部后缀参考FILE_TYPE_MAP配置
4. 若需要新增文件类型,直接修改organize_by_type.py内的FILE_TYPE_MAP字典即可
五、AI 自动生成整套 Skill 的底层原理(对应你截图里的行为)
5.1 第一步:意图解析
你输入指令帮我安装个文件系统skills 大模型通过语义识别:需求不是问答对话,是构建一套文件操作类自定义技能包;自动锁定能力边界:目录查看、文件整理、格式转换三个高频刚需工具。
5.2 第二步:任务自动规划拆解(思维链 CoT)
模型自主拆分有序执行计划,也就是你界面展示的流程:
- 优先编写
SKILL.md总协议文件(先定规矩、定路由、定安全底线) - 并行生成三份 Python 脚本(三个工具互相无依赖,不需要串行编写)
- 补充生成参考说明文档
conversionFormats.md - 整合全部文件,形成一个完整、可直接导入 Agent 客户端的 Skill 包
5.3 第三步:结构化对齐输出
模型读取自己编写的 SKILL.md 内标注的脚本名称、功能描述,精准匹配生成对应代码;同时严格遵守 md 里的安全规范,代码内置系统目录拦截、路径校验等防护逻辑。
5.4 第四步:加载后的调用运行原理
- Agent 加载 SKILL.md,把路由规则、安全规则存入上下文
- 你发送自然语言:整理桌面所有文件
- 模型检索路由表,匹配到
organize_by_type.py - 执行路径安全校验,无风险则调用本地脚本运行代码
- 脚本返回执行数据,AI 加工成自然语言反馈给用户
六、部署 & 使用步骤
- 将上面所有文件放在同一个文件夹,构成完整 Skill 包
- 在你的本地 Copilot/Agent 客户端内导入该 Skill 文件夹
- 直接下发自然语言指令测试:
- 帮我生成当前项目的目录树
- 把 md 文件夹全部转成 html 网页
- 自动整理桌面杂乱文件
七、拓展优化方向
- 在 SKILL.md 中增加日志记录规则,所有文件操作写入本地日志
- 给所有脚本增加异常捕获,文件损坏、权限不足时友好报错
- 新增文件查重、批量重命名、文件夹备份等扩展工具
- 基于这套模板,仿写图片处理、Git 操作、系统监控等更多自定义 Skill
文末总结
Skill 机制是本地 AI 脱离 “纯聊天”、落地实用生产力的核心方案。SKILL.md 是 AI 的 “规章制度”,Python 脚本是真实干活的工具,二者结合,就能让 AI 听懂人话、安全操控本机资源。本文这套文件系统 Skill 模板可以直接复用,修改功能就能快速搭建各类私有化 AI 工具集。
更多推荐


所有评论(0)