核心用法
Vigil 是一款面向 AI Agent 的安全中间件,专注于验证 Agent 的实际行动而非输出内容。开发者只需在工具调用前插入 checkAction() 检查,即可对 shell 命令、文件操作、API 调用等行为进行实时拦截。
典型集成场景:
- 为 MCP 服务器或任意 Agent 框架添加安全层
- 审计 Agent 的操作日志
- 在破坏性命令执行前阻断(如
rm -rf /)
三种运行模式:
warn:记录违规但不阻断(推荐初期使用)enforce:直接阻断危险调用log:静默记录仅用于审计
内置 restrictive/moderate/permissive 三级策略模板,可通过 loadPolicy() 快速切换。
显著优点
| 特性 | 说明 |
|------|------|
零依赖 | npm 包仅 12.3KB,无运行时依赖,供应链攻击面极小 |
极速响应 | 单次检查 <2ms,典型延迟 0.3ms,对 Agent 流程无感知 |
覆盖全面 | 22 条检测规则涵盖:破坏性命令、SSRF、SQL 注入、路径遍历、数据外泄、提示词注入、编码攻击、凭证泄露 |
即插即用 | 单行代码集成,提供 CLI 工具和 Clawdbot 脚本封装 |
潜在局限
1. 规则静态性:基于正则/模式匹配,对未知攻击变种(0-day)无自适应能力
2. 误报可能:严格的正则可能将合法命令误判(如包含 DROP 的 SQL 查询)
3. 仅覆盖工具层:不保护 Agent 的推理过程或输出内容安全
4. Node.js 专属:目前仅提供 npm 包,Python/Go 等生态需自行封装
适合人群
- Agent 开发者:为自研 Agent 添加安全基线
- MCP 服务器维护者:防止恶意客户端通过工具调用破坏系统
- 企业安全团队:需要轻量、可审计的安全网关,而非重量级 IDS
常规风险
- 过度信任风险:Vigil 是最后一道防线而非唯一防线,仍需配合最小权限原则
- 策略配置风险:
permissive模式可能放行边缘危险操作,生产环境建议restrictive+enforce - 日志泄露:检查日志可能包含敏感参数,需确保
result对象的安全存储