Agent Skill 安装前怎么查风险?SkillSpector 使用方法解析
同事甩给你一个 Agent Skill 仓库,张嘴就说「直接拷到 skills 目录就能用」。这时候最省心的做法可不是上来就装,而是得把安装流程拆成三道关卡:先看来源靠不靠谱,再查权限合不合理,最后核对扫描出来的证据能不能说通。SkillSpector 主要负责第三关,还能帮你揪出前两关里容易漏掉的异常。
第一遍先查来源,啥都别运行
先核对仓库的所有者、提交记录、版本标签和许可证,再瞅瞅 SKILL.md 之外有没有 shell、Python、Node 脚本或者二进制文件。别光看 README 写着「只读」就当真——一个技能的真实本事,是整个目录里所有文件说了算的。要是碰到只有网盘压缩包、作者身份对不上、安装还要求管理员权限的包,不用等扫描,直接先归到高风险可疑项里。

第二遍把整个技能丢给扫描器
skillspector scan ./candidate-skill/ --no-llm
skillspector scan ./candidate-skill/ --format json --output audit/skillspector.json
先用 --no-llm 跑静态检查,免得私有内容泄露出去;要是需要分析复杂的指令逻辑,再掂量掂量要不要开 LLM 语义扫描。目录、单个 SKILL.md 文件、ZIP 包、URL 还有 Git 仓库都能当输入,但只扫单个文件的话,同目录的其他脚本是查不到的,所以安装前更建议扫完整的目录或者仓库。JSON 适合存底留档,SARIF 适合接代码平台,Markdown 则方便人工审核。

第三遍只盯高风险证据
| 报告结论 | 安装动作 | 还要问什么 |
|---|---|---|
SAFE | 可以进受限环境试装 | 是不是还有二进制文件、图片指令或者运行时下载行为 |
CAUTION | 先暂停自动安装 | 权限和它声明的用途对不对得上,异常项能不能删掉 |
DO_NOT_INSTALL | 默认直接拒绝 | 除非维护者修复后重新扫描通过,不然一律不放行 |
看扫描出来的问题时,优先处理凭据读取、外发数据、危险命令、持久化驻留、代码混淆、提示注入和高危依赖这几类。就算是误报,也得写清楚对应的代码位置和实际用途,不能只甩一句「确认安全」就完事。另外要注意:依赖检查会向 OSV.dev 提交包名与版本;离线状态下可能用的是降级数据,报告里没查到 CVE,可不代表供应链就完全没问题。
人工复核的时候,可以做个「反向推用途」的小练习:先把技能的宣传话术搁一边,只列它会读什么、写什么、连哪些域名、能调哪些系统命令。要是这些动作没法用它标题里承诺的功能解释通,就得要求维护者砍权限或者把技能拆碎了。反过来,像代码格式化工具调用本地解析器这种情况,本身不一定危险,关键看调用的范围、输入输出的口子,还有出错后的行为是不是可控的。
留一份能复查的安装决策记录
把扫描用的工具版本、目标提交的哈希值、执行的命令、扫描报告还有人工处置结论,都放到同一份审计记录里,还要写清楚复核人和日期。只要技能内容更新了,旧报告就不作数了,得重新扫;要是发布方给了签名,再核验下 skill.oms.sig,确认拿到的内容没被人掉包。对了,SkillSpector 不会运行被检测的技能,它也不是沙箱。它只能帮你搞清楚「现有的文本和代码里藏着哪些风险」,没法保证技能装完之后绝对不会产生新的网络行为。