@yuanbaoteam

Security Guard

OpenClaw security guard plugin — tool-call interception, approval flows, and safety rules

Current version
v0.1.0
code-pluginCommunitysource-linked

openclaw-plugin-security-guard

OpenClaw 安全守卫插件 — 在 AI Agent 调用工具前进行安全检测,支持阻断、审批、熔断降级与可观测性。

功能特性

能力说明
阻断 (Block)高危/严重风险 (HIGH/CRIT) 的工具调用直接拦截,附带风险类型说明
审批 (Approval)中危 (WARN) 工具调用触发用户审批流程,支持中英文双语确认
熔断 (Circuit Breaker)安全 API 连续失败时自动熔断,降级放行避免阻塞业务
可观测性 (Observability)内置 metrics 事件枚举 + 结构化日志,支持接入 OpenClaw runtime 指标
配置热更新支持运行时更改配置无需重启,hotPrefixes 机制
版本兼容运行时检测 SDK 版本,按能力等级降级注册

架构概览 (ASCII)

┌──────────────────────────────────────────────────────────────────┐
│                       OpenClaw Runtime                            │
│                                                                  │
│  ┌──────────┐    before_tool_call    ┌─────────────────────────┐ │
│  │  Agent   │ ──────────────────────▶│  security-guard plugin  │ │
│  │ (调用工具)│                        │                         │ │
│  └──────────┘                        │  ┌───────────────────┐  │ │
│       ▲                              │  │  Hook Handler     │  │ │
│       │                              │  │  1. enabled?      │  │ │
│       │  pass / block / approval     │  │  2. whitelist?    │  │ │
│       │◀─────────────────────────────│  │  3. call API      │  │ │
│       │                              │  │  4. dryRun?       │  │ │
│                                      │  │  5. route result  │  │ │
│                                      │  └───────┬───────────┘  │ │
│                                      │          │              │ │
│                                      │  ┌───────▼───────────┐  │ │
│                                      │  │  Circuit Breaker  │  │ │
│                                      │  │  CLOSED→OPEN→HALF │  │ │
│                                      │  └───────┬───────────┘  │ │
│                                      │          │              │ │
│                                      │  ┌───────▼───────────┐  │ │
│                                      │  │  Security Client  │  │ │
│                                      │  │  POST /check      │  │ │
│                                      │  │  timeout: 200ms   │  │ │
│                                      │  └───────────────────┘  │ │
│                                      │                         │ │
│                                      │  ┌───────────────────┐  │ │
│                                      │  │ Approval Capability│  │ │
│                                      │  │ ├─ message-builder │  │ │
│                                      │  │ ├─ timeout-handler │  │ │
│                                      │  │ └─ parseDecision   │  │ │
│                                      │  └───────────────────┘  │ │
│                                      └─────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
                                │
                                ▼
                    ┌───────────────────────┐
                    │  Security Detection   │
                    │  API (外部后端)        │
                    │  POST /api/v1/        │
                    │       security/check  │
                    └───────────────────────┘

安装

pnpm add openclaw-plugin-security-guard

在 OpenClaw 配置文件中注册插件:

{
  "plugins": [
    {
      "id": "openclaw-plugin-security-guard",
      "config": {
        "apiEndpoint": "https://your-security-api.example.com",
        "enabled": true
      }
    }
  ]
}

配置说明

字段类型默认值说明
apiEndpointstring""安全检测 API 地址,留空则 fail-open
apiTimeoutMsinteger200单次 API 请求超时(最小 50ms)
circuitBreaker.failureThresholdinteger5连续失败几次后触发熔断
circuitBreaker.resetTimeoutMsinteger60000熔断后等待多久进入半开状态
approval.timeoutMsinteger60000等待用户审批的最长时间
approval.timeoutBehavior"allow" | "deny""deny"审批超时后的处理策略
enabledbooleantrue总开关,关闭后跳过所有检测
dryRunbooleanfalse干跑模式,仅记录日志不实际拦截
toolWhiteliststring[][]白名单中的工具不经过安全检测

所有配置均支持运行时热更新(无需重启 Agent)。

SDK 版本兼容性矩阵

SDK 版本兼容等级能力
>= v2026.4.15fullhook + 审批 + fail-closed 模式
>= v2026.3.28approvalhook + 审批,无 fail-closed
>= v2026.3.13block-only仅 hook,WARN 当作 block 处理
< v2026.3.13unsupported无法注册,插件不生效

插件在启动时自动检测当前 OpenClaw SDK 版本并按能力等级注册。

开发指南

环境准备

git clone <repo-url>
cd openclaw-plugin-security-guard
pnpm install

测试

# 运行全部测试(单元 + 集成)
pnpm test

# 仅单元测试
node --experimental-test-module-mocks --import tsx --test tests/unit/*.test.ts

# 仅集成测试
node --experimental-test-module-mocks --import tsx --test tests/integration/*.test.ts

测试框架:node:test(Node.js 原生测试运行器)+ tsx(TypeScript 加载器)。

构建

pnpm build   # tsc 编译到 dist/

Lint

pnpm lint       # 检查
pnpm lint:fix   # 自动修复

发布

pnpm release   # 执行 scripts/release.sh

目录结构

src/
├── config/
│   ├── schema.ts          # 配置接口 + 默认值 + JSON Schema
│   └── hot-reload.ts      # 配置热更新机制
├── hook/
│   ├── hook-types.ts      # Hook 事件/结果类型定义
│   └── before-tool-call.ts # 核心 hook 处理器
├── security/
│   ├── types.ts           # 安全检测请求/响应类型
│   ├── client.ts          # HTTP 客户端(singleton, fail-open)
│   ├── circuit-breaker.ts # 熔断器(CLOSED→OPEN→HALF_OPEN)
│   └── rules.ts           # 安全规则引擎
├── approval/
│   ├── capability.ts      # 审批流程管理
│   ├── message-builder.ts # 审批消息构建
│   └── timeout-handler.ts # 超时处理
├── observability/
│   ├── logger.ts          # 结构化日志
│   └── metrics.ts         # 指标事件发射
└── compat.ts              # SDK 版本兼容层
tests/
├── unit/                  # 6 个模块的单元测试(111 case)
└── integration/           # E2E 集成测试(8 场景)

许可证

MIT

Source and release

Source repository

jesduan/openclaw-plugin-security-guard

Open repo

Source commit

e3985f8522536842b1c3ad3996df5efae621f753

View commit

Install command

openclaw plugins install clawhub:openclaw-plugin-security-guard

Metadata

  • Package: openclaw-plugin-security-guard
  • Created: 2026/05/22
  • Updated: 2026/05/22
  • Executes code: Yes
  • Source tag: master

Compatibility

  • Built with OpenClaw: 2026.3.28
  • Plugin API range: >=2026.3.28
  • Tags: latest
  • Files: 33