前言¶
把日志、工单截图或对话上下文交给大模型前,手机号、证件号、银行卡和截图里的文字往往来不及人工打码。把敏感内容上传到第三方脱敏服务,又和合规、内网边界冲突。下面介绍 SkillHub 上的社区 Skill「基于深度学习图片与文字本地脱敏工具」:通过 Python 脚本在本地识别并遮盖敏感信息,并可用标准 Skill 安装方式挂到 Cursor、Codex 等 Agent 的 skills 目录,由 Agent 按 SKILL.md 指引调用。
这是什么¶
一句话定位:面向 Agent 的本地脱敏能力包,覆盖文本、JSON 与图片(含 OCR 与区域模糊),处理在运行环境内完成,SkillHub 标注 requires_api_key=false。
维护与来源:社区发布者 user_cf24022c,坐标 @user_cf24022c/image-text-desensitization,分类 it-ops-security,当前 SkillHub 版本 1.0.0。包内 skill.json 将能力描述为「智能自动脱敏工具」,主入口为 smart_desensitize_skill.py,并附带标准版与高性能版图像脱敏模块(deep_desensitize_skill.py、fast_deep_desensitize_skill.py)。
核心功能¶
以下能力均来自已安装的 Skill 包内 SKILL.md、skill.json 与 SOP.md:
- 文本脱敏:正则识别手机号、身份证、银行卡、邮箱等;
SOP.md还列出姓名、地址、QQ、微信、车牌号等类型的脱敏示例。 - JSON 脱敏:按字段名与内容自动处理;
skill.json中配置了常见敏感字段名(如password、token、phone、id_card等)。 - 图片脱敏:支持 base64 输入;可启用深度学习模式,包含 OCR 文字检测模糊与人脸检测模糊(
skill.json的image_desensitize.features)。 - 性能策略:图像侧提供
standard(DeepLearningDesensitizer)与fast(FastDeepLearningDesensitizer)两种模式;SmartDesensitizer可通过use_deep_learning、high_performance参数切换。 - Agent 侧集成:首次导入可自动创建
./基础设定/DESENSITIZE_RULES.md,并更新./MEMORY.md中的脱敏规则;用户明确要求「不要脱敏」时可跳过(见SKILL.md、SOP.md)。
安装与启用¶
通过 SkillHub CLI(推荐)¶
先确认本机已安装 skillhub(安装方式见 SkillHub 安装说明)。安装 Skill 时必须用 --dir 指向当前 Agent 的 skills 目录,否则默认装到 ./skills/ 可能不会被识别。
skillhub install image-text-desensitization --namespace user_cf24022c --dir <你的 Agent skills 目录>
常用目录(摘自 SkillHub 安装文档):
- Cursor:
~/.cursor/skills/ - Codex:
~/.codex/skills/或项目下的.agents/skills/ - Claude Code:
~/.claude/skills/
也可将下面提示词发给 Agent,让其按官方安装文档拉取同一坐标:
请根据 https://skillhub.cn/install/skillhub.md,安装 `@user_cf24022c/image-text-desensitization`。
Python 依赖¶
SKILL.md 写明文本与 JSON 脱敏主要依赖 Python 3.6+ 标准库;图片 OCR 建议安装 easyocr,人脸相关能力可选 opencv-python-headless。skill.json 将 opencv-python、Pillow、numpy 列为图像相关必需依赖,OCR 可选 easyocr 或 paddleocr,OCR 语言包含 ch_sim、en。按你是否启用图像深度学习模式安装对应包即可。
典型用法¶
安装后,在 Skill 目录或已将路径加入 PYTHONPATH 的环境中调用主类(示例来自 SKILL.md 与 skill.json)。
文本:
from smart_desensitize_skill import SmartDesensitizer
desensitizer = SmartDesensitizer()
result = desensitizer.desensitize_text("手机号:13812345678")
# 示例输出: 手机号:138****5678
JSON:
data = {"name": "张三", "phone": "13812345678"}
result = desensitizer.desensitize_json(data)
图片(base64):
result = desensitizer.desensitize_image_base64(image_base64)
启用图像深度学习 / 高性能模式(skill.json):
desensitizer = SmartDesensitizer(use_deep_learning=True)
# 或
desensitizer = SmartDesensitizer(use_deep_learning=True, high_performance=True)
SOP.md 中的集成流程为:用户内容进入 Agent → 判断是否需要脱敏 → 执行脱敏 → 对图片可删除原图仅保留脱敏结果 → 再继续后续任务。
适用场景与注意¶
适合谁
- 需要在把文本、结构化字段或截图交给模型前,在本地做一轮 PII 处理的开发者或运维。
- 使用 OpenClaw 系或带
MEMORY.md、工具目录约定的 Agent 环境,希望脱敏规则可继承、可自检初始化。
限制与注意
- 包内
INSTALL.md提到可用python test_full.py验证,但当前 Skill 包文件列表中未包含该脚本;以你环境中的 import 与单测为准。 SKILL.md与SOP.md均说明:图片脱敏完成后可能自动删除原图,归档需求请在流程里单独保留副本。- OCR 与 OpenCV 依赖体积与算力不低,大图为宜使用
high_performance模式(见skill.json的fast配置)。 - SkillHub 页面简介较短,具体行为以包内
SKILL.md、SOP.md、skill.json为准;包内SKILL.md头部版本号为 3.0.0,与 SkillHub 展示的 1.0.0 不一致时,以商店坐标版本为准。
结尾¶
「基于深度学习图片与文字本地脱敏工具」把文本、JSON 与图像脱敏脚本和 Agent 集成说明打成可安装的 Skill,适合在不上传敏感数据的前提下,给对话与自动化任务加一层本地遮盖。官方页面与安装坐标:
- SkillHub:https://www.skillhub.cn/skills/user_cf24022c/image-text-desensitization
- API 条目:https://api.skillhub.cn/user_cf24022c/image-text-desensitization