工具调用前拦截
Sage 挂接 Claude Code 的 PreToolUse 生命周期,在 Bash 命令、Write/Edit 文件修改、Read 敏感路径读取、WebFetch 网址抓取四类工具调用真正执行前先做安全评估,并返回 Allow(放行)、Ask(提示用户批准或拒绝)、Deny(拦截)三种裁决,从而在危险命令、恶意 URL 或有害文件操作落地前将其阻断或交由用户确认。

Sage(Safety for Agents)是 Gen Digital 开源的 AI 代理安全插件,定位为代理工具调用前的安全审查层。它挂接到 Claude Code 的 PreToolUse 生命周期,也以 VS Code/Cursor 扩展形式运行,覆盖 Bash 命令、Write/Edit 文件修改、Read 敏感路径读取和 WebFetch 网络抓取等工具调用。每次调用会经过检测引擎评估并返回三种裁决:Allow 直接放行、Ask 提示用户确认、Deny 直接阻断。检测范围包括恶意 URL 云信誉、反弹 shell 与管道执行 curl 等危险命令、凭据窃取与数据外泄、提示注入(启发式加微调 ML 模型)、敏感路径写入、npm/PyPI 供应链投毒与拼写仿冒包,以及会话启动时对已安装插件的自动扫描。设计上采用 fail open:内部出错时动作照常执行,不会因 Sage 自身故障阻塞代理。默认零配置即可工作,可通过 ~/.sage/config.json 调整敏感度、URL 检查与启发式开关,并支持基于模式的例外规则。适合日常使用 AI 编程代理、又希望对其命令与网络行为保留安全底线的开发者。
Sage 挂接 Claude Code 的 PreToolUse 生命周期,在 Bash 命令、Write/Edit 文件修改、Read 敏感路径读取、WebFetch 网址抓取四类工具调用真正执行前先做安全评估,并返回 Allow(放行)、Ask(提示用户批准或拒绝)、Deny(拦截)三种裁决,从而在危险命令、恶意 URL 或有害文件操作落地前将其阻断或交由用户确认。
覆盖恶意 URL 云信誉、反弹 shell 与 pipe-to-curl 等危险命令、凭据窃取与数据外泄、敏感路径写入、npm/PyPI 供应链投毒及拼写仿冒包。
结合启发式规则与微调 ML 模型,检测抓取内容中被注入的指令,仓库内含 pi-benign-50 与 pi-injection-50 评测夹具及准确率评测脚本。
会话启动时自动扫描已安装插件,仓库提供 plugin-scanning、package-protection、amsi-scanning 等文档与对应扫描器实现。
内部异常时动作照常执行,Claude 不会因 Sage 自身错误被阻塞,降低安全层带来的可用性风险。
通过编辑 ~/.sage/config.json 调整 Sage 的检测行为,可设置 sensitivity 灵敏度、url_check 是否启用 URL 检查、heuristics_enabled 是否启用启发式检测,并支持基于模式的 allow/deny 例外规则,用于放行或拦截特定操作。
使用场景代理通过 WebFetch 访问可疑链接
Sage 在抓取前查询云信誉,识别钓鱼、恶意软件或诈骗站点并阻断该次抓取。
使用场景代理准备执行反弹 shell 或 pipe-to-curl 命令
检测引擎识别命令中的危险模式,返回 Deny 裁决,命令不会被执行。
使用场景代理尝试写入凭据文件或系统配置
对敏感路径的 Write/Edit 操作触发 Ask 或 Deny,由用户确认或直接阻止。
使用场景用户想确认 Sage 是否已生效
让 Claude 执行 echo diagmark_cmd_a75bf229,若 Sage 正常拦截该 canary 命令即说明钩子已生效。