mcpField
H
HOL Guard

HOL Guard

本地服务
hol.org安全1.0k今天更新

关于 HOL Guard

HOL Guard 是面向 AI Agent 的本地优先安全层,可在命令、文件访问、安装和 MCP 调用执行前进行检查。它适合需要审批流程、证据记录和插件扫描的 Agent 使用者与维护者。

主要功能

  1. 01执行前检查命令与文件访问
  2. 02检测秘密泄露和提示注入
  3. 03按策略放行、阻止或请求审批
  4. 04记录本地决策凭据
  5. 05扫描插件、技能与 MCP 集成

适用场景

  1. 01运行 Agent 前审查潜在破坏性命令
  2. 02审批涉及敏感文件或凭据的操作
  3. 03检查依赖包及插件供应链风险
  4. 04发布前验证 Agent 插件与技能

MCP 相关

HOL Guard 通过支持的钩子和托管代理检查 MCP 服务配置及工具调用,并可按策略放行、阻止或请求审批。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"hashgraph-online-hol-guard": {
"command": "uvx",
"args": [
"hol-guard"
]
}
}
}
启动命令uvx hol-guard

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypihol-guard3.58.0

工具

6

收录的工具列表 · 更新于 1 天前

参数类型必填说明
querystring是

详细介绍

HOL Guard:面向 AI Agent 的开源防病毒软件

HOL Guard Version Plugin Scanner Version HOL Guard Downloads Plugin Scanner Downloads Python 3.10+ CI Publish Container Image OpenSSF Scorecard Vercel OSS Program License GitHub Stars Lint: ruff Ask DeepWiki

HOL whole dark logo在危险的 AI 操作损害你的设备之前将其拦截。 HOL Guard 是面向 AI Agent、工具、插件、技能、MCP 服务和软件包安装的本地优先安全层。

安装 HOL Guard
阅读文档
PyPI 软件包(hol-guard)
报告问题

HOL Guard 会在 Agent 操作执行前进行审查,包括 shell 命令、文件访问、软件包安装和 MCP 工具调用。它会检测机密信息泄露、破坏性操作、提示词注入和供应链风险,然后根据你的策略放行、拦截或请求审批。

无需账户即可在本地运行。使用 CLI 和本地仪表板管理防护、处理审批并查看决策历史。可选的 Guard Cloud 提供共享历史记录、团队策略和设备群管理。

开始使用 · 支持的 Agent · 插件扫描器 · 文档 · 贡献扩展 · 贡献适配器 · 开发

安装 HOL Guard

需要 Python 3.10 或更高版本、pipx 和匹配的原生运行时。安装前,请查看平台支持和 Windows ARM64 设置说明。

pipx install hol-guard
hol-guard init

首次运行向导会发现受支持的 Agent,并引导你完成防护设置。每次更改设置前都会征求你的同意,包括打开仪表板、安装 Agent 集成以及连接可选的云服务。

检查安装状态:

hol-guard --version
hol-guard status

更新现有安装:

hol-guard update

手动设置请参阅安装指南。附有升级背景说明的版本说明见 hol.org/guard/releases;原始版本和预发布版本请见 GitHub 版本发布页面。

HOL Guard 的防护范围

范围防护措施
Shell 命令和文件访问检查破坏性操作、敏感文件访问、凭据泄露以及可疑的出站命令。
软件包安装在安装前,根据供应链情报评估受支持的软件包管理器操作。
插件、技能和 Agent 配置清点本地构件,并在启动前检查新增或变更的工具。
MCP 服务和工具检查服务配置,并通过受支持的钩子和托管代理检查工具调用。
提示词和工具结果对受支持的事件进行筛查,检测提示词注入和敏感内容。
审批和证据将决策交由原生提示或审批中心处理,并记录本地回执以供审核。

Guard 通过原生 Agent 钩子、托管 MCP 代理和启动集成接入。覆盖范围取决于各 Agent 提供的事件;支持矩阵记录了各集成的强制执行、审批传递和故障行为。

支持的 AI Agent

Codex、Claude Code、GitHub Copilot CLI、Cursor、Cline、Gemini CLI、Grok、Hermes、Kimi Code、Pi、oh-my-pi、OpenClaw、OpenCode、Antigravity、ZCode 和 Devin。Paseo 可通过这些原生提供商集成获得支持,覆盖范围因提供商而异。

例如,显式设置 Codex:

hol-guard install codex
hol-guard run codex --dry-run
hol-guard run codex

试运行会在启动前记录当前构件状态。对于 Codex,Guard 会安装原生工具前钩子;如果这些钩子缺失或已禁用,Guard 将拒绝托管启动。

Agent 支持矩阵 · 故障排查

日常使用

任务命令
检查防护状态hol-guard status
诊断 Agent 集成hol-guard doctor codex
检查启动前的变更hol-guard diff codex
审核待处理的审批hol-guard approvals
批准或拒绝请求hol-guard approvals approve <request-id> / hol-guard approvals deny <request-id>
查看决策历史hol-guard receipts
列出受跟踪的构件hol-guard inventory
导出 AI 物料清单hol-guard abom --format json
扫描工作区依赖项hol-guard supply-chain scan
连接可选的云同步hol-guard connect

了解已暂停的命令

检查命令的分类和匹配规则:

hol-guard command test 'rm -rf ./build'
hol-guard command explain 'git clean -ndx'
hol-guard command extensions command.git --json

command test 和 command explain 会检查命令,但不会执行命令或创建审批。使用 hol-guard approvals 处理待处理请求,并使用 hol-guard receipts 查看记录的决定。

扩展目录列出了根据 Rust 编译的目录生成的命令覆盖范围。外部贡献需要明确选择加入;必需的核心防护始终启用。要添加覆盖范围,请参阅扩展贡献指南。

检查软件包
hol-guard supply-chain sync
hol-guard supply-chain scan
hol-guard supply-chain explain [email protected] --ecosystem npm

软件包判定结果包含可用的公告证据和生态系统覆盖范围。软件包管理器拦截请参阅入门指南,误报处理请参阅修复指南。

插件扫描器

本仓库还提供 plugin-scanner,这是一款 CLI,供希望在发布 Agent 插件、技能和 MCP 集成前执行安全与质量检查的维护者使用。

pipx install plugin-scanner
plugin-scanner scan .
plugin-scanner lint .
plugin-scanner verify .
命令用途
scan检测到的软件包界面中的安全问题和质量报告。
lint规则级别的编写反馈。
verify安装界面和运行时就绪情况检查。
submit单个插件软件包的提交制品。
doctor组件诊断和故障排除捆绑包。

扫描器可检测 Codex、Claude Code、DeepSeek Harness、Gemini CLI、Kimi Code 和 OpenCode 软件包格式。使用 plugin-scanner --list-ecosystems 列出这些格式,或使用 --ecosystem 选择一种格式。在 Codex 市场根目录中,它会自动发现本地插件条目。

检查范围包括清单、密钥、MCP 传输和命令配置、审批默认值、技能、依赖锁文件以及 GitHub Actions 权限。可选的 Cisco 集成会增加技能和 MCP 分析。报告支持文本、JSON、Markdown 和 SARIF 格式。

plugin-scanner scan . --format sarif --output plugin-scanner.sarif
plugin-scanner scan . --fail-on-severity high

质量等级会根据每个软件包适用的检查项计算。信任评分具有单独的来源和权重;请参阅技能、MCP和插件评分参考。

为每个运行时打包插件

hol-guard plugin 是 Plugin Kit。将它指向一个插件源,例如 Claude Code 插件、Codex 插件、Gemini CLI 扩展、MCP Registry server.json 或技能文件夹,它便会检查源并为每个可使用该插件的 Agent 运行时写入一份可直接加载的副本。它在本地运行,只读取你指定的文件夹,不会发起网络请求。

hol-guard plugin check            # what marketplaces and runtime loaders would reject
hol-guard plugin package          # writes dist/hol-plugin/<runtime>/ for each runtime
hol-guard plugin convert --to agent-plugins   # Agent Plugins 1.0 package, checked against the spec
hol-guard plugin links            # install commands per runtime, plus listing links
hol-guard plugin card             # draft .well-known plugin card as JSON
hol-guard plugin init --name my-plugin   # scaffold a new plugin in an empty folder

运行时:claude-code、codex、gemini-cli、cursor、vscode、opencode、mcp-registry、agent-skills 和 agent-plugins。请参阅 Plugin Kit 指南。

GitHub Actions

将扫描器添加到插件仓库:

name: Plugin security
on: [push, pull_request]

permissions:
  contents: read

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
      - uses: hashgraph-online/ai-plugin-scanner-action@fdb49f9d85321a2ced2933301b395dd3c1ce9c8f # v1.2.631
        with:
          plugin_dir: "."
          min_score: 80
          fail_on_severity: high

有关 SARIF 上传、提交工作流和机器可读输出,请参阅 action 文档。action 源码由 action/ 维护。

可选的 Cisco 分析

基础软件包无需 Cisco 依赖即可运行。要添加 Cisco 技能扫描,请使用 Python 3.11 至 3.14,并在隔离环境中安装额外依赖:

pipx install 'plugin-scanner[cisco]'

要进行 Cisco MCP 分析,请使用仓库的 Docker 镜像或 cisco-mcp 依赖组:

uv sync --extra dev --extra cisco --group cisco-mcp --python 3.13
uv run plugin-scanner scan . --cisco-skill-scan on --cisco-mcp-scan on

已发布的 cisco extra 提供技能扫描;单独的 cisco-mcp 依赖组提供 MCP 扫描器。依赖版本和 Python 约束由 pyproject.toml 维护。

生态系统支持

生态系统检测位置
Codex.codex-plugin/plugin.json、marketplace.json、.agents/plugins/marketplace.json
Claude Code.claude-plugin/plugin.json、.claude-plugin/marketplace.json
DeepSeek Harness包含 dsh.bundle 的 package.json、声明的补丁和 Cordis apply(ctx) 导出,或将 dsh.bundle.mode 设为 "patch" 的纯补丁包
Gemini CLIgemini-extension.json、commands/**/*.toml
Kimi Codekimi.plugin.json、.kimi-plugin/plugin.json、声明的技能、Agent、命令、提示词和 MCP 服务
OpenCodeopencode.json、opencode.jsonc、.opencode/commands、.opencode/plugins

使用 --ecosystem auto 检测仓库中的受支持软件包,或显式选择生态系统:

plugin-scanner scan ./plugins-repo --ecosystem claude
plugin-scanner scan ./dsh-plugin --ecosystem deepseek-harness

扫描器检查内容

类别覆盖范围
清单验证必填字段、版本、声明的路径、接口元数据、链接和资源。
安全性硬编码密钥、不安全的 MCP 命令和传输方式,以及有风险的审批默认设置。
运营安全GitHub Actions 权限和锁定的依赖项、特权检出模式、Dependabot 和锁文件。
插件打包README 和许可证文件、技能前置元数据、忽略规则,以及意外提交的环境文件。
市场清单有效性、本地软件包发现和安全的源路径。
技能和 MCP 分析分析器可用性、发现的问题,以及通过可选 Cisco 集成进行分析的能力。
代码质量动态代码执行和 Shell 注入模式。

信任评分的工作方式

Plugin Scanner 会在信任来源信息旁报告质量等级。质量分数会根据适用的检查进行标准化,因此可选检查项不会抬高软件包等级。

技能信任评分使用 HCS-28 基线适配器 ID、权重和分母规则。MCP 和 Codex 插件信任评分使用显式适配器、权重和贡献模式,详见本地规范:

CLI 用法

# Structured security report
plugin-scanner scan ./my-plugin --format json --profile public-marketplace

# Inspect authoring rules
plugin-scanner lint ./my-plugin --list-rules
plugin-scanner lint ./my-plugin --explain README_MISSING

# Apply supported mechanical fixes
plugin-scanner lint ./my-plugin --fix --profile strict-security

# Verify package readiness; --online permits live probes
plugin-scanner verify ./my-plugin --format json
plugin-scanner verify ./my-plugin --online --format text

# Generate a submission artifact for one plugin
plugin-scanner submit ./my-plugin --profile public-marketplace --attest dist/plugin-quality.json

# Collect component diagnostics
plugin-scanner doctor ./my-plugin --component mcp --bundle dist/doctor.zip

对于仓库市场,scan、lint、verify 和 doctor 可以针对根目录运行。submit 针对单个插件软件包运行。

Codex 规范一致性

扫描器可识别 Codex 插件清单、接口元数据、声明的资源和市场软件包:

  • 本地清单路径使用 ./ 前缀;lint --fix 会保留或添加此前缀。
  • .agents/plugins/marketplace.json 是首选的市场位置,同时也支持根目录下的 marketplace.json 以保持兼容。
  • 接口验证会检查声明的链接和资源,但不要求提供未记录的 type 字段。
  • verify --online 会检查 HTTP 远程可访问性。标准输入输出服务执行会跳过,留待人工审查。

有关上游格式,请参阅 Codex 插件文档 和 模型上下文协议规范。

配置 + 基线示例

在 .plugin-scanner.toml 中配置扫描器:

[scanner]
profile = "public-marketplace"
baseline_file = "baseline.txt"
ignore_paths = ["tests/*", "fixtures/*"]

[rules]
disabled = ["README_MISSING"]
severity_overrides = { CODEXIGNORE_MISSING = "low" }

GitHub Action 要求先设置 trust_repository_policy: true,之后仓库自有的配置和基线才能改变其判定结果。只有在你希望工作流信任相应策略时,才启用此选项。

报告格式

格式用途
text终端摘要,包含各类别统计和发现的问题。
json用于脚本和集成的结构化报告。
markdown可用于拉取请求和议题审查的报告。
sarif用于 GitHub 代码扫描和安全自动化。

GitHub Action

AI Plugin Scanner Action 支持安全门禁、SARIF 上传、提交受理和注册表负载。其源代码位于 action/,发布工作流负责分发 Action 包。

旧版 HOL Codex Plugin Scanner Action 仍可供现有工作流使用。

插件作者提交流程

使用 submission_enabled: true,在插件达到配置的阈值时创建或复用提交议题。submission_token 必须具有在目标提交仓库中创建议题的权限。Action 会通过输出提供提交状态和议题 URL。

请参阅Action 输入参考,了解 submission_score_threshold、submission_token 和目标仓库选项。

用于插件生态自动化的注册表负载

设置 registry_payload_output,以便为注册表或徽章流水线写入机器可读的负载。Action 还会提供 score、grade、grade_label、max_severity 和 findings_total 输出,并可写入作业摘要。

HOL Registry Broker 插件是 HOL Plugin Registry 中的 Agent 插件示例。其注册表条目提供最新的信任信息。

为什么选择 HOL Guard

AI Agent 可以在一次会话中运行命令、安装依赖项、读取文件和调用外部工具。HOL Guard 会在受支持的执行节点审查这些操作,并将策略决策、审批请求和凭证整合在一起。

可将其用于开发者机器上的 AI Agent 安全防护、已连接工具周边的 MCP 安全防护,以及针对软件包和插件的供应链检查。团队可以添加 Guard Cloud,以共享审批和策略管理,同时保留本地防护。

常见问题

什么是 HOL Guard?

HOL Guard 是面向 AI Agent 的开源防病毒和运行时防护工具。它会审查受支持的工具调用、Shell 命令、文件访问和软件包操作,以检查机密泄露、提示词注入、破坏性操作和恶意依赖项等风险。

没有云账户也能使用 HOL Guard 吗?

可以。本地防护、CLI 命令、审批和凭证无需登录即可使用。Guard Cloud 是可选的,可提供同步证据、团队控制和机群可见性。有关功能边界,请参阅本地 Guard 与 Guard Cloud。

HOL Guard 支持哪些 AI Agent?

Guard 提供适用于 Codex、Claude Code、GitHub Copilot CLI、Cursor、Cline、Gemini CLI、Grok、Hermes、Kimi Code、Pi、oh-my-pi、OpenClaw、OpenCode、Antigravity、ZCode 和 Devin 的适配器。Paseo 通过这些原生提供商集成获得支持,且各提供商的覆盖范围不同。支持矩阵说明了每个适配器支持哪些事件和执行路径。

HOL Guard 和 Plugin Scanner 有什么区别?

安装 hol-guard 可保护你机器上的 Agent 活动。安装 plugin-scanner 可检查插件包,并在 CI 中执行安全和质量检查。本仓库会构建并发布这两种发行版。

HOL Guard 如何保护 MCP 服务?

Guard 会检查 MCP 服务配置,并通过 Agent 钩子和托管代理审查受支持的 MCP 工具调用。Plugin Scanner 会检查 MCP 配置和 HTTP 远程可达性;可选的 Cisco MCP 分析会额外提供静态安全发现。

为什么 Guard 暂停了我的命令?

根据你当前启用的策略,此操作可能需要审批;也可能是其工具或制品发生了变化。请先运行 hol-guard approvals,使用 hol-guard command explain '<command>' 检查命令,并通过 hol-guard receipts 查看已记录的决策。

文档

如遇到注册或过时的原生权限错误,请参阅 扩展控制恢复指南。

指南内容
入门指南安装、手动设置、软件包保护和常用命令。
Agent 支持集成覆盖范围和审批行为。
架构运行时组件和决策流程。
策略规范GuardPolicy 文档格式。
策略示例常见工作流的配置示例。
扩展内置命令规则和贡献指南。
原生扩展编写规范 JSON 源文件、Rust 编译器、可移植测试样例和审查工具包。
贡献新扩展使用 CLI 生成、审查、集成并测试新扩展。
本地与云端本地功能和可选云服务。
故障排除诊断和恢复。
安全漏洞报告和披露政策。

贡献新扩展

如需集成新的 AI 编码 Agent 或 IDE,请参阅单独的 harness 适配器贡献指南。Harness 适配器提供发现、托管设置和事件集成。下面的命令扩展用于扩充 CLI 工具的策略覆盖范围,不会安装 Agent 钩子。

命令扩展采用声明式 JSON 编写,由 Rust 编译和评估。在 contributions/command-sources/command.<name>.json 中添加元数据、权限、匹配器树和安全变体,然后使用可移植 JSON 测试样例验证行为。大多数扩展由现有原生操作组合而成;只有现有匹配器契约无法表达所需行为时,才需要新增 Rust 操作。

贡献内容编写输入验证方式
命令覆盖contributions/command-sources/command.<name>.json使用 guard-command-source test 评估可移植测试样例。
MCP 服务知识contributions/mcp-servers/<id>.jsonMCP 贡献测试和原生目录验证。
新的匹配器语义在 rust/crates/guard-command/ 中经过审查的 Rust 更改原生契约、准入、评估和回归测试。

Rust 编译器会生成命令描述符、目录和原生匹配器程序。CLI、构建编排和测试仍使用 Python;新增命令覆盖无需 Python 检测器或注册表注册。直接编写源文件请参阅编写指南,了解运行时边界请参阅架构。

Extension Builder CLI 可以根据导出的命令元数据创建这些命令源文件和可移植测试样例。它也支持 MCP 清单。它可离线运行,读取导出内容时不会导入或运行目标工具。

使用 Builder 的规划与应用流程创建规范源文件和测试样例。尽早创建草稿 PR,以便审查范围。在将该 PR 标记为准备好审查之前,运行 scripts/prepare_extension_contribution.py --source ... --fixture ...,以同步确定性投影,然后运行 hol-guard extensions handoff --repo . --source ... --fixture ...。交接检查会在最终审查前发现缺失的生成描述符、目录条目和源绑定。 1. 在 PR 中明确覆盖范围。 检查扩展目录和当前未合并的拉取请求,确认是否已有相同或重叠的覆盖。对于新功能,使用 Command extension 模板创建草稿 PR,并注明拟议的 command.<name> ID、支持的操作、破坏性示例、安全替代项和上游参考资料。在 PR 中审核范围;无需单独创建 issue。如果某个现有扩展已经负责该操作,请扩展该扩展。

按照开发环境设置操作,然后在 HOL Guard 检出目录中运行以下示例。uv run --no-sync 使用该检出目录中安装的开发版本。

2. 生成贡献套件。 此示例使用仓库中已跟踪的合成 samplectl 清单。要贡献你自己的内容,请将输入和元数据替换为你的工具导出文件和公开发布者信息。

uv run --no-sync hol-guard extensions generate --from cli \
  --input docs/guard/extension-builder/examples/cli-surface.json \
  --slug samplectl --executable samplectl --name 'Sample CLI' \
  --publisher community.example --publisher-name 'Example Maintainer' \
  --homepage https://example.test/samplectl \
  --upstream-version 1.0.0 --output samplectl-kit

uv run --no-sync hol-guard extensions validate samplectl-kit

输出目录必须是新目录,且其父目录必须已存在。命令套件包含 discovery.json、review.json、report.json、规范 JSON 源文件、可移植的原生 fixture、生成的描述符和文件清单。MCP 套件包含其贡献元数据和生成的 Python 测试。

其他输入:--from help 读取已保存的命令帮助;--from click 读取 Click Context.to_info_dict() 导出文件;--from oclif 读取 oclif.manifest.json;--from mcp 读取完整导出的 tools/list 结果;--from snapshot 重放 discovery.json。上面的 cli 示例使用规范化的 guard.cli-surface.v1 JSON。

对于 MCP 贡献,生成器使用 --launcher 和 --package,而非 --executable。完整命令和分页要求请参阅 MCP 套件示例。

3. 审核操作并重新生成。 阅读 report.json,并将发现的操作与上游实现进行比较。编辑前先复制审核文件:

cp samplectl-kit/review.json samplectl-review.json

编辑 samplectl-review.json,保留其发现绑定和操作 ID。CLI 操作使用 review 或 block;根操作保持为 review。对于已评估的条目,设置 reviewed: true,并提供理由和公开的 HTTPS 证据参考。只有在确切、安全的调用方式已验证时,才添加 safeArgv。审核格式中包含完整的条目示例。

审核后,重新编译已保存的快照:

uv run --no-sync hol-guard extensions generate --from snapshot \
  --input samplectl-kit/discovery.json \
  --review samplectl-review.json --output samplectl-reviewed

uv run --no-sync hol-guard extensions validate samplectl-reviewed
uv run --no-sync hol-guard extensions diff samplectl-kit samplectl-reviewed

"$HOL_GUARD_NATIVE_SOURCE_COMPILER" test \
  < samplectl-reviewed/artifacts/tests/fixtures/command-source-samplectl.v1.json

当套件相同时,diff 以 0 退出;有效套件不同时,以 1 退出。Rust fixture 运行器会评估命令文本,但不会执行命令。如果上游导出文件发生变化,请生成并审核新的快照。

4. 预览并应用集成。 在你的贡献分支上,预览对当前检出目录的更改:

uv run --no-sync hol-guard extensions apply samplectl-reviewed --repo .

检查列出的路径和生成的文件。运行以下命令前,请将打印出的计划摘要复制到命令中:

uv run --no-sync hol-guard extensions apply samplectl-reviewed --repo . \
  --expected-plan THE_PRINTED_PLAN_DIGEST \
  --write

此次写入会集成规范源文件、fixture、生成的贡献描述符、外部信任映射、打包内容和作者归属记录。下一步重新生成完整程序和目录。如果遇到现有 ID 或冲突文件,集成操作将停止,以便审核。

5. 测试并提交拉取请求。 按照原生验证流程重新生成完整目录,针对该程序重新构建编译器和运行时,并使用集成后的源文件运行贡献内容的 fixture。这也涵盖更新现有扩展的情况;若在已打包的基线中新增内容与现有 ID 冲突,也会进行检查。然后运行贡献检查并重新生成公开目录:

uv run --no-sync python scripts/release/stage_guard_cloud_review_artifacts.py
uv run --no-sync pytest -q \
  tests/test_guard_extension_contribution.py \
  tests/test_guard_extension_trust.py \
  tests/test_native_source_program.py \
  tests/test_guard_command_extension_registry.py
uv run --no-sync python scripts/export_extension_directory.py
uv run --no-sync python scripts/export_extension_directory.py --check
uv run --no-sync python scripts/render_command_extension_directory.py
uv run --no-sync python scripts/render_command_extension_directory.py --check
git diff --check

为破坏性操作、安全预览、别名、标志重排、引号、格式错误的输入和复合命令添加测试用例。更改原生语义时运行 Rust 检查,更改工具时运行相关的 Python 检查。检查最终差异,提交规范输入、生成的投影、测试用例和编写记录,并将现有草稿 PR 更新到 main,附上测试结果。交接检查通过后,将其标记为可供评审。不要将临时 kit 目录和原始上游导出内容纳入 PR。

社区贡献始终为 External,且默认关闭。 测试必须证明,在本地管理员启用它们之前,这些贡献不会生效。生成、应用或合并贡献都不会激活它们,且其中的规则不能削弱 Guard 的强制保护。

完整构建器参考 · 贡献评审要求 · External 扩展契约 · 构建器验证

开发

开发工具链包含 Python 3.10 或更高版本、uv 和 Rust 1.88.0;Rust 版本固定在 rust/rust-toolchain.toml 中。Rust 用于构建原生运行时和扩展编译器;Python 提供 CLI 和开发工具。以下命令在仓库根目录下的 POSIX shell 中运行。有关 Windows 设置以及各类更改对应的检查,请参阅 CONTRIBUTING.md。

git clone https://github.com/hashgraph-online/hol-guard.git
cd hol-guard
uv sync --frozen --extra dev
rustup toolchain install 1.88.0 --profile minimal --component rustfmt --component clippy
cargo +1.88.0 build --locked --release --manifest-path rust/Cargo.toml \
  -p guard-command --bin guard-command-source
cargo +1.88.0 build --locked --release --manifest-path rust/Cargo.toml \
  -p hol-guard-runtime

export HOL_GUARD_NATIVE_SOURCE_COMPILER="$PWD/rust/target/release/guard-command-source"
export HOL_GUARD_NATIVE_TEST_SOURCE_COMPILER="$HOL_GUARD_NATIVE_SOURCE_COMPILER"
export HOL_GUARD_NATIVE_BINARY="$PWD/rust/target/release/hol-guard-runtime"

uv run --no-sync python scripts/build_native_command_program.py \
  --compiler "$HOL_GUARD_NATIVE_SOURCE_COMPILER" --check
uv run --no-sync pytest tests/test_guard_extension_builder_public_docs.py \
  tests/test_native_source_program.py --tb=short

这些编译器覆盖设置适用于可编辑检出版本。已安装的原生 wheel 使用其捆绑的编译器,并验证其清单。更改规范源文件或 Rust 语义后,请重新生成投影并按验证指南中的说明重新构建。

对于 Python 工具和软件包更改:

uv run --no-sync ruff check src tests
uv run --no-sync ruff format --check src tests
uv build

如需进行可选的 Cisco 覆盖,请使用上面的依赖组命令。有关贡献要求,请参阅 CONTRIBUTING.md;有关集成测试,请参阅测试矩阵。

资源

社区

由 HOL 维护。

许可证

基于 Apache-2.0 许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。