HOL Guard:面向 AI 智能体的开源杀毒软件,拦截恶意 MCP 与技能
HOL Guard 是 hashgraph-online 开源的本地优先 AI 智能体安全层,在 shell 命令、文件访问、包安装和 MCP 工具调用执行之前进行审查,识别密钥暴露、破坏性操作、提示注入与供应链风险,并按策略放行、拦截或请求批准。它通过原生钩子与托管 MCP 代理接入 Codex、Claude Code、Cursor 等十余种智能体,无需账号即可运行,采用 Apache-2.0 许可。
AI 智能体正在离开聊天框。过去一年里,编码助手学会了直接执行 shell 命令、读写本地文件、安装依赖包,并通过 MCP 服务器调用外部工具。能力的扩张带来了一个朴素而尖锐的问题:当一个会被提示词左右的程序拿着你的终端权限,谁来替你把关?hashgraph-online 开源的 HOL Guard 给出的回答是一句很直白的定位,即面向 AI 智能体的开源杀毒软件。它不试图让模型变得更听话,而是在模型的动作真正落地之前,由一层独立于模型的本地程序先看一眼。这个思路与传统终端安全的分层防御一脉相承,只是被审查的对象从可执行文件变成了智能体的每一次行动。
HOL Guard 的工作方式可以概括为执行前审查。它关注的动作包括 shell 命令、文件访问、包安装和 MCP 工具调用,检测的风险包括密钥暴露、破坏性操作、提示注入以及供应链风险,随后依据用户设定的策略选择放行、拦截或请求人工批准。项目文档把受保护的面分成六类:命令与文件访问,包安装,插件、技能与智能体配置,MCP 服务器与工具,提示与工具结果,以及审批与证据。其中值得注意的是最后一类:每次决定都会在本地留下回执,用户可以通过命令行和本地仪表盘回看历史。这让安全决策从一次性弹窗变成可以复盘的记录,对团队排查事故和调整策略都很有价值。这种设计还有一层好处:审查发生在本机,命令内容、文件路径和提示文本不必为了获得安全判断而上传到第三方服务,对处理敏感代码库和内部凭据的团队尤其重要。
在架构上,HOL Guard 坚持本地优先。它不要求账号即可运行,通过三种方式接入智能体:各智能体原生提供的钩子、托管的 MCP 代理,以及启动阶段的集成。官方文档坦率地说明,覆盖范围取决于每个智能体对外暴露了哪些事件,并为此维护了一份支持矩阵,逐项写明各集成的拦截能力、审批投递方式和失败时的行为。这种坦率本身就是一种工程品质。安全工具最危险的状态,是让用户误以为自己被全面保护,而实际上某类事件根本没有钩子可挂。对于插件、技能和配置,它会先盘点本地已有的工件,并在新增或变更的工具启动前进行审查,这直接针对的是近期频繁出现的恶意技能和被投毒的 MCP 服务器。换言之,它把「能保护什么」和「不能保护什么」同时写进了产品说明,用户得以据此决定还需要在哪些环节补上沙箱、权限隔离或人工复核,而不是把全部信任押在一个工具上。
在可用性上,项目选择了很低的门槛。安装只需要 Python 3.10 以上和 pipx,执行 pipx install hol-guard 后运行 hol-guard init,首次向导会发现本机已有的智能体,并在每一项改动前征求同意,包括打开仪表盘、安装智能体集成和连接可选的云服务。目前支持的智能体名单相当长,涵盖 Codex、Claude Code、GitHub Copilot CLI、Cursor、Cline、Gemini CLI、Grok、Hermes、Kimi Code、Pi、OpenClaw、OpenCode、Antigravity 和 Devin 等,Paseo 则通过这些原生提供方间接支持。需要团队级能力的用户可以选择可选的 Guard Cloud,获得共享历史、团队策略和设备群管理;同一仓库还提供名为 plugin-scanner 的插件扫描器,在安装前检查扩展本身。对希望尽快验证效果的人来说,这套流程的成本大约只是几分钟的安装与一次向导交互,试错代价很低,即使最终决定不采用,也能借此清楚看到自己的智能体平时究竟在读写哪些文件、调用哪些工具。
从评析角度看,几点边界需要说清楚。第一,杀毒软件的类比是传播上的便利,而非技术上的等价。传统杀毒依赖特征库和行为监控,而智能体的风险来自语义层面,提示注入的识别天然带有概率性,不可能做到零漏报。第二,钩子覆盖是能力上限,智能体不暴露的事件,Guard 就看不见。第三,审批机制会带来疲劳,策略写得过松等于形同虚设,写得过紧又会让人把它关掉。第四,供应链判断依赖外部情报的质量与时效。这些并不是缺陷,而是任何同类工具都要面对的约束,关键在于项目是否诚实地把它们摆在文档里。就目前公开信息看,它做到了这一点,并且具备 Apache-2.0 许可、持续集成、容器镜像和 OpenSSF Scorecard 徽章等较为规范的工程信号。换个角度说,评估这类工具不应只看它拦下了多少,还要看它误拦了多少、用户为此付出了多少打断成本,这两个数字合在一起才决定它能否长期留在开发者的日常工作流里。
对读者的实际建议是:把它当作纵深防御中的一层,而不是唯一的一层。个人开发者可以先在最常用的一个智能体上启用,观察一周的拦截记录,再逐步收紧策略;团队则应继续保留密钥隔离、最小权限和沙箱,让 Guard 负责在动作发生前提供可审计的闸门。更长远地看,智能体安全正在从模型对齐的话题,转向操作系统式的权限与审计问题。HOL Guard 的价值在于它把这个转向做成了一个今天就能安装、明天就能回看日志的具体工具,这比任何抽象的倡议都更接近可落地的安全。在内容生态层面,随着技能市场和 MCP 服务器目录日益庞大,来源不明的扩展会越来越多,事前审查与事后可追溯将成为智能体工具链里和代码签名、依赖锁定同等基础的环节。
Sources
FAQ
HOL Guard 是什么,需要账号吗?
它是 hashgraph-online 开源的本地优先 AI 智能体安全层,在 shell 命令、文件访问、包安装和 MCP 工具调用执行前进行审查。无需账号即可在本地运行,命令行与本地仪表盘可用于管理保护、处理审批和查看决策历史。Guard Cloud 是可选项,提供共享历史、团队策略和设备群管理。
它如何接入各种智能体,能保证全覆盖吗?
它通过各智能体原生钩子、托管的 MCP 代理和启动集成接入。覆盖范围取决于每个智能体暴露的事件,因此不能假定全覆盖。官方支持矩阵逐项说明各集成的拦截能力、审批投递方式和失败时的行为,部署前应当先查阅。
如何安装和升级?
需要 Python 3.10 以上和 pipx。执行 pipx install hol-guard,再运行 hol-guard init。首次向导会发现已支持的智能体,并在每项设置变更前征求同意。可用 hol-guard status 检查状态,用 hol-guard update 升级。