📌 项目地址:tech-leads-club/agent-skills | ⭐ 4,072 颗星 | 🔧 TypeScript | 📜 未标注
为什么需要这个东西
Snyk 在 2024 年扫描了开放 AI 代理技能市场,发现 13.4% 的技能包含可被利用的安全漏洞。这些“技能”本质是 Markdown 文件加目录模板,攻击面在文字里——例如在技能提示里写“请运行 curl 恶意脚本 | bash”,AI 代理如果照做,数据就能被传出去。
开放市场还有另一个问题:没有版本锁定和审计。技能作者可以静默更新内容,今天的 Docker 指南明天可能变成窃取 SSH 密钥的指令,你完全不知道。
tech-leads-club/agent-skills(4072 个 star,TypeScript 实现)不是去建一个“更负责任的开放市场”,它做的事更直接:做一个先审后用的技能注册表,配合安装时的运行时防护。
安全分两层:发布前扫一遍,安装时拦一遍
第一层:发布前自动扫描。所有技能提交到仓库,CI 自动跑 Snyk Agent Scan(曾用名 mcp-scan),检查 SKILL.md 和模板文件里的 prompt 注入、命令执行路径、文件泄露模式。没通过的不能进入人工审查。安全策略细节、威胁模型和漏洞报告流程在 SECURITY.md 里写得很清楚。
第二层:CLI 安装时的五道防护。项目没有统一的 install 命令,每个代理的安装方式不同(比如 Claude Code 与 Cursor 配置不同),你需要查阅对应代理文档。但无论哪种代理,技能被安装时,CLI 会执行以下操作:
- 路径净化:技能名只允许字母、数字和连字符,有人试图填入
../../etc/passwd会被直接拒绝。 - 沙箱隔离:每个技能装在独立目录,不能读写
/var/log或~/.ssh这类敏感路径。 - 符号链接拦截:安装时扫描所有符号链接,看到指向
/etc、~/.ssh等敏感路径的直接跳过。 - 原子锁文件:安装中途失败能回滚,不会留下残缺配置。
- 审计日志:每次安装、更新、移除都记录操作时间、内容哈希和来源 commit。
我拿 Docker 技能试了一下,安装后审计日志正常生成,目录里没有跨目录的符号链接。当然,这些防护的具体实现依赖于各个代理的 CLI 是否集成了 agent-skills 的锁文件和哈希校验逻辑——项目本身提供了参考实现,但每个代理如何落地需要单独验证。
技能包结构:全是文本
所有技能放在 packages/skills-catalog/skills/(分类名)/skill/ 下,固定结构就三部分:
- SKILL.md:主指令,定义 AI 代理的行为。
- templates/:文件模板,比如 React 组件骨架。
- references/:按需参阅的补充文档。
没有二进制文件。当前 Featured Skills 包括 Docker、Git、React、Node.js、Response、ESLint、Prettier、AWS、Kubernetes、Python、Go、Terraform。全是工程类技能,没有花哨的功能。
支持的代理:9 个,但安装方式各自不同
README 列出了三个层级:
- Tier 1(流行):Claude Code、Cline、Cursor
- Tier 2(上升):Aider、Antigravity、Gemini CLI
- Tier 3(企业):Amazon Q、Augment、Droid (Factory.ai)
项目没有给出统一的安装命令——你去读对应代理的技能安装文档。这意味着你至少要花时间搞懂一套配置方式。比如 Claude Code 可能需要在配置里引用技能文件路径,Cursor 则可能是插件模式。README 没有详细说明每个代理的具体步骤,只提供了概念性支持列表。
MCP 服务器:项目还提供了一个可选的 MCP 服务器,用于在开发环境中动态分发技能。这意味着你可以让多个代理共享同一个技能注册表,通过 MCP 协议获取技能描述和模板。但同样,具体集成细节需要看各代理的 MCP 支持情况。
谁该用
最该用的人:有安全合规压力的团队。你要回答“AI 助手装了哪些技能,谁批准的,什么版本”,agent-skills 的审计日志能直接当证据。如果你组里有人用 Claude Code,有人用 Cursor,有人用 Cline,你想让所有人的技能包一致——这个项目提供可审计的配置层,通过 MCP 协议分发,技能和版本都能锁定。
可能用不上的人:自己一个人写代码,技能全靠手写自给自足。这个项目的价值在“可信分发”和“审计能力”,不是“技能数量”。目前几十个技能覆盖的是常见工程工具,如果你要找 Selenium、OpenAPI 生成、特定框架的 code review 指南,要么自己写,要么等社区贡献。
真实限制
- 技能覆盖范围窄。只有工程类基础技能,没有前端框架、测试框架等更细分领域。需要更多技能?可以自己写 PR,但必须通过 Snyk Agent Scan 和人工审查,门槛不低。
- 统一的安装体验缺失。README 说支持 9 种代理,但没有给出一个“一键安装”的命令。你得自己去研究 Cursor 怎么装技能、Claude Code 怎么装技能,然后对着项目文档手动配置。项目本身没有提供 CLI 工具(除了可能用于开发的本地测试脚本),所有技能的管理都是通过代理自身的配置完成的。
- 安全保证依赖代理侧实现。项目的五道防护是参考实现,最终是否有效取决于各个代理是否集成了这些检查。如果某个代理的 CLI 没有做路径净化,那技能文件里的恶意内容依然可能被执行。目前并没有统一认证每个代理都做到了完全防护。
一句话判断
如果你在支持的 9 种代理之一上干活,且需要的技能落在 Docker、React、AWS 这些范围内,agent-skills 能直接解决安全性和一致性问题。否则要么自己贡献技能,要么继续在开放市场里挑——但至少现在你知道该检查技能里有没有 curl | bash 之类的指令。
使用前读 README 的 “Quick Start” 和各代理的安装文档。项目本身没有统一安装命令,配置按代理类型区分。