首先提醒大家一件事:如果你也经常向 Claude、Codex 这类 AI 智能体里安装第三方 skill,建议在安装前先做一次安全扫描。NVIDIA 开源的 SkillSpector 就是为此而生,只需一行 pip 命令即可轻松部署,省时省力。

相信很多人都有类似的经历:从 GitHub 上一口气安装了大量 skill——有写前端代码的、有配合 Codex 完成任务的、还有别人分享的小工具。安装时主要看什么?star 数量,再加上 README 里描述的信息。仅此而已。
至于 skill 内部究竟写了什么,恐怕绝大多数人都没打开看过吧。
简单来说,skill 本质上是一份给 AI 阅读的指令集,外加几个可执行的脚本。把它装进智能体,就等于给了 AI 一份“该如何工作”的操作手册,同时赋予了执行权限。从陌生人那里接过十几份这样的手册,连眼睛都不眨就交给 AI 去执行——这种事以前我也没少干。
后来偶然看到 NVIDIA 前不久开源了一个名为 SkillSpector 的工具,专门检测智能体 skill 是否存在安全隐患。这时才后知后觉:哦,原来这类东西确实应该事先扫描一下。
四分之一存在漏洞,二十分之一疑似恶意
NVIDIA 曾做过一次调研,扫描了超过 4 万个公开 skill:其中 26.1% 存在安全漏洞,5.2% 被判定为疑似恶意。
也就是说,每四个 skill 里就有一个带病,每二十个里就有一个可能是故意投毒。
它所检测的内容也并非空穴来风。涵盖 17 大类、68 种具体模式:包括 prompt injection(在指令中隐藏恶意内容,诱使 AI 偏离正常行为)、偷偷向外传输数据、暗中提升权限、供应链投毒,以及直接嵌入 exec、eval、subprocess 等能在机器上执行任意命令的危险代码。这些威胁隐藏在几千字的 Markdown 说明文档里,肉眼扫描根本难以察觉,但 AI 会老老实实地执行。
安装起来倒是非常简便:
pip install "git+https://github.com/NVIDIA/skillspector.git"
扫描一个 skill 目录:
skillspector scan
它提供两种运行模式。默认模式配合 LLM 分析,检测精度更高,前提是你需要配置一个大模型的 API key(任意主流大模型均可);加上 --no-llm 参数则采用纯静态扫描,无需 key,速度更快。如果追求省事,后者已经足够,但结果一不小心就遇到了下面这个情况。
它扫出一个 HIGH 风险,结果却是乌龙
我把本机已安装的 skill 逐个扫描了一遍。大部分都干干净净,唯独轮到那个让 Claude 和 Codex 协作的 skill 时,出现了一条红色警报:HIGH,工具参数滥用。翻到标记的那一行,我已经做好了删除 skill 的准备,结果那行写的是这样一个意思:
这是一句劝告别人不要使用危险命令的良好建议。
扫描器检测到 git reset --hard 这几个字就触发了警报,却没有理解前面“别用”其实是在否定它——静态扫描毕竟只是关键词匹配,无法分辨自然语言中的正反语义。它自己似乎也不太确定,那条 HIGH 风险的置信度仅标注了 65%。
如果看到红色警报就直接删除 skill,那就冤枉了好人。所以,那个不需要配置 key 的 --no-llm 模式虽然能扫描,但扫描完后仍需自己查看上下文再下结论。标签只是提醒你去检查,并非最终结论。有条件的话,还是建议使用默认模式并配置 key,让 LLM 辅助理解语义,误报率会明显降低。
该信任谁
安装一份别人编写的 skill,与从网上下载一个脚本、看都不看就直接运行,本质上并无区别——都是将执行权交给他人,赌对方是善意的。
SkillSpector 恰好补上了这条安全链条中缺失的一环:在安装之前,先有一个工具帮你把内容过一遍,把危险模式圈出来。它还支持 MCP 模式(运行 skillspector mcp),可以挂载到任何支持 MCP 的智能体里,理论上能做到每次安装新 skill 之前自动拦截,而不是等你某天想起来才手动扫描。
不过,比起“快去安装这个工具”,那条乌龙 HIGH 警报带来的提醒可能更有价值:扫描能够帮你缩小排查范围,但无法将风险降至零。机器把可疑点指出来,但真正判断它是否构成问题,还得靠人来完成。
本机十几个 skill 全部扫描完毕,暂时没有发现安全问题。今后再往智能体里添加陌生人的 skill 之前,自动扫描这一步就会自动执行了。
最后把安装方式放在这里,直接复制使用即可。
仓库地址:github.com/NVIDIA/SkillSpector
作为命令行工具使用:
pip install "git+https://github.com/nvidia/skillspector.git"
skillspector scan # 默认带 LLM 分析,需配置 key
skillspector scan --no-llm # 纯静态扫描,无需 key
想要挂载为 MCP 服务让智能体自动调用(以 Claude Code 为例,只需两行):
pip install "skillspector[mcp] @ git+https://github.com/nvidia/skillspector.git"
claude mcp add skillspector --scope user -- skillspector mcp
配置完成后,重启 Claude Code 或 Codex,它就会多出一个 scan_skill 工具。之后只要对它说“扫描一下 xx skill”,它就会自动调用该工具,无需再手动敲命令。就是这样。
