技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
openguardrails【数据与研究】Runtime security plugin for AI agents. Provides local-first protection against data exfiltration, credential theft, command injection, and sensitive data leakage. Includes a free AI Security Gateway that sanitizes PII before it reaches LLM providers. Fully open source (Apache 2.0) — all detection and sanitization logic is auditable on GitHub. Source:…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
What this skill is: This is the installation and usage guide for the OpenGuardrails security plugin. The plugin code itself lives in the open-source repository at github.com/openguardrails/openguardrails (subdirectory
openclaw-security/). This skill does not execute code on its own — it documents how to install, configure, and verify the plugin.ClawHub ↔ GitHub identity: This skill is published on ClawHub as
ThomasLWang/openguardrails. The upstream source is atgithub.com/openguardrails/openguardrails, maintained by the same author (Thomas Wang). The npm package is@openguardrails/openclaw-security. All three point to the same codebase.
Runtime security guard for OpenClaw agents. Protects against the most critical AI agent threats:
Open source and auditable. All code is Apache 2.0 licensed at github.com/openguardrails/openguardrails. You can audit every line before installing — especially the tool-event hooks, sanitization logic, and network calls. Key files to review:
agent/sanitizer.ts — what gets sanitized before any cloud transmissionagent/content-injection-scanner.ts — local-only regex patterns for injection detectiongateway/src/sanitizer.ts — AI Security Gateway sanitization (fully local)index.ts — plugin entry point showing all event hooksWhat is transmitted to the cloud API (and what is not):
<EMAIL>, <SECRET>, <CREDIT_CARD>, etc.) locally before transmission.Local-only mode. The plugin works without any cloud connection. Local fast-path detection (shell escape blocking, read-then-exfil patterns, content injection redaction) operates entirely on your machine with no network calls. Cloud assessment is only used for borderline behavioral patterns and is opt-in via registration. If you skip registration, you still get all local protections.
No install-time network calls. The plugin makes zero network requests at install time. It loads a local BehaviorDetector and waits until you explicitly run /og_activate.
Registration sends minimal data. The /og_activate command sends exactly { name, description } to register — no email, no machine identifiers, no file paths, no user data. Your email is only collected later in Step 3, when you voluntarily visit the claim URL in your browser and enter it yourself. See the "Step 2: Register" section for the full request/response specification.
Fail-open design. If the cloud API is unreachable or times out, tool calls are allowed — the plugin never blocks your workflow due to network issues.
This skill is documentation-only. This SKILL.md file contains no executable code. It is an installation and usage guide for the open-source plugin at github.com/openguardrails/openguardrails. You are encouraged to audit the source before installing.
The plugin hooks into before_tool_call, after_tool_call, and tool_result_persist events. It classifies every tool call in real time — tracking sensitive file reads, external network calls, credential access, and shell commands across the session. Critical patterns are blocked instantly on the local fast path; borderline signals are assessed via the cloud API.
Additionally, when the agent reads files or fetches web pages, the plugin scans the content for injection patterns across 7 categories and automatically redacts them in-place before the agent processes the content.
Agent calls tool
↓
[openguardrails] classifies tool + updates session state
• sensitive file read → then network call? → BLOCK (local)
• shell escape in params ($(), backtick)? → BLOCK (local)
• prompt injection in file/web content? → REDACT in-place (local)
• credential access + low intent overlap? → assess via cloud
• external domains + intent mismatch? → assess via cloud
↓
Allow, redact, alert, or block — with explanation returned to agent
No content is sent externally until the plugin is registered and activated.
Install from npm or directly from source:
# From npm
openclaw plugins install @openguardrails/openclaw-security
# From source (audit first, then install)
git clone https://github.com/openguardrails/openguardrails.git
openclaw plugins install -l ./openguardrails/openclaw-security
Installation completes immediately — no network calls are made at install time. The plugin loads, creates a BehaviorDetector, and waits.
Verify it's loaded:
/og_status
Expected output when not yet registered:
OpenGuardrails Status
- Status: not registered — run `/og_activate` to register
- Platform: https://www.openguardrails.com/core
- blockOnRisk: true
Registration is triggered by running /og_activate. It enables cloud-based behavioral assessment on top of the local protections you already have.
The plugin calls POST /api/v1/agents/register with exactly two fields:
{ "name": "OpenClaw Agent", "description": "" }
That's it — an agent display name and an optional description. No machine identifiers, no file paths, no user data. See agent/config.ts:65-68 in the source.
The response is saved to ~/.openclaw/credentials/openguardrails/credentials.json:
{
"apiKey": "sk-og-<32 hex chars>",
"agentId": "<uuid>",
"claimUrl": "https://www.openguardrails.com/core/claim/<token>",
"verificationCode": "word-XXXX"
}
These credentials are generated server-side and stored as plaintext JSON on your machine (consistent with how CLI tools like gh, aws, and gcloud store credentials). The apiKey authenticates subsequent detection requests. You can revoke it anytime from the account portal or by deleting the credentials file.
/og_activate
If the platform is reachable, you'll see:
OpenGuardrails: Claim Your Agent
Agent ID: <uuid>
Complete these steps to activate behavioral detection:
1. Visit: https://www.openguardrails.com/core/claim/<token>
2. Code: <word-XXXX> (e.g. reef-X4B2)
3. Email: your email becomes your login for the account portal
After claiming you get 30,000 free detections.
Platform: https://www.openguardrails.com/core
If you already have a key (e.g. from a previous registration or from the account portal), set it directly — no /og_activate needed:
{
"plugins": {
"entries": {
"openguardrails": {
"config": {
"apiKey": "sk-og-<your-key>"
}
}
}
}
}
After registration, complete these steps in your browser to activate cloud assessment. This is the only step that collects your email — the registration API call in Step 2 does not send or collect any email.
/og_activateword-XXXX code displayed in the terminal)Once your email is verified, the agent status changes to active and behavioral detection begins. The plugin polls for activation status automatically — no restart needed.
Check status anytime:
/og_status
Active output:
OpenGuardrails Status
- Agent ID: <uuid>
- API Key: sk-og-xxxxxxxxxxxx...
- Email: you@example.com
- Platform: https://www.openguardrails.com/core
- Status: active
- blockOnRisk: true
After email verification, the platform automatically sends you a test email containing a hidden prompt injection. This lets you immediately verify that OpenGuardrails is working.
.txt file (e.g. ~/test-email.txt)The test email looks like a normal design review request but contains an embedded injection payload in an HTML comment. With OpenGuardrails active, the injected content is replaced with:
__REDACTED_BY_OPENGUARDRAILS_DUE_TO_PROMPT_INJECTION__
You can also test with a sample file from the repository:
https://raw.githubusercontent.com/openguardrails/openguardrails/main/openclaw-security/samples/popup-injection-email.txt
Download it and ask the agent to read it. OpenGuardrails will detect and redact the injection.
When the agent reads a file containing an injection payload, OpenGuardrails:
After activation, sign in to the account portal with your email + API key:
https://www.openguardrails.com/core/login
The portal shows:
| Plan | Price | Detections/mo |
|---|---|---|
| Free | $0 | 30,000 |
| Starter | $19/mo | 100,000 |
| Pro | $49/mo | 300,000 |
| Business | $199/mo | 2,000,000 |
If you register multiple agents with the same email, they all share one account and quota.
| Command | Description |
|---|---|
/og_status | Show registration status, email, platform URL, blockOnRisk setting |
/og_activate | Register (if needed) and show claim URL and activation instructions |
All options go in ~/.openclaw/openclaw.json under plugins.entries.openguardrails.config:
| Option | Default | Description |
|---|---|---|
enabled | true | Enable/disable the plugin |
blockOnRisk | true | Block the tool call when risk is detected |
apiKey | "" | Explicit API key (sk-og-...). Run /og_activate if empty |
agentName | "OpenClaw Agent" | Name shown in the dashboard |
coreUrl | https://www.openguardrails.com/core | Platform API endpoint |
dashboardUrl | https://www.openguardrails.com/dashboard | Dashboard URL for monitoring and reporting |
dashboardSessionToken | "" | Dashboard auth token (falls back to apiKey if empty) |
timeoutMs | 60000 | Cloud assessment timeout (ms). Fails open on timeout |
| Pattern | Example | Block reason |
|---|---|---|
| Read sensitive file → network call | Read ~/.ssh/id_rsa, then WebFetch to external URL | sensitive file read followed by network call to <domain> |
| Read credentials → network call | Read ~/.aws/credentials, then Bash curl ... | sensitive file read followed by network call to <domain> |
| Shell escape in params | Bash with `cmd`, $(cmd), ;, &&, |, or newline injection | suspicious shell command detected — potential command injection |
When the agent reads files or fetches web pages, OpenGuardrails scans the content for injection patterns and redacts them before the agent processes the content:
| Pattern Category | Description | Redaction marker |
|---|---|---|
| Instruction override | Attempts to override or discard prior context | __REDACTED_BY_OPENGUARDRAILS_DUE_TO_PROMPT_INJECTION__ |
| Fake system message | Spoofed system-level directives embedded in user content | __REDACTED_BY_OPENGUARDRAILS_DUE_TO_PROMPT_INJECTION__ |
| Mode switching | Attempts to change the agent's operating mode | __REDACTED_BY_OPENGUARDRAILS_DUE_TO_PROMPT_INJECTION__ |
| Concealment directive | Instructions to hide output from the user | __REDACTED_BY_OPENGUARDRAILS_DUE_TO_PROMPT_INJECTION__ |
| Command execution | Embedded shell commands or execution directives | __REDACTED_BY_OPENGUARDRAILS_DUE_TO_COMMAND_EXECUTION__ |
| Task hijacking | Attempts to redirect the agent's current objective | __REDACTED_BY_OPENGUARDRAILS_DUE_TO_PROMPT_INJECTION__ |
| Data exfiltration | Shell substitution targeting sensitive files | __REDACTED_BY_OPENGUARDRAILS_DUE_TO_DATA_EXFILTRATION__ |
A single high-confidence match or 2+ medium-confidence matches from different categories triggers redaction. See agent/content-injection-scanner.ts for the full pattern list.
| Tag | Risk | Action | Description |
|---|---|---|---|
READ_SENSITIVE_WRITE_NETWORK | critical | block | Sensitive read followed by outbound call |
DATA_EXFIL_PATTERN | critical | block | Large data read, then sent externally |
MULTI_CRED_ACCESS | high | block | Multiple credential files accessed in one session |
SHELL_EXEC_AFTER_WEB_FETCH | high | block | Shell command executed after fetching external content |
INTENT_ACTION_MISMATCH | medium | alert | Tool sequence doesn't match stated user goal |
UNUSUAL_TOOL_SEQUENCE | medium | alert | Statistical anomaly in tool ordering |
| Risk Level | Action | Meaning |
|---|---|---|
| critical | block | Tool call is blocked, agent sees block reason |
| high | block | Tool call is blocked, agent sees block reason |
| medium | alert | Tool call is allowed, warning logged |
| low / no_risk | allow | Tool call proceeds normally |
When a tool call is blocked, the agent receives a message like:
OpenGuardrails blocked [critical]: Sensitive file read followed by data
sent to external server. Agent accessed credentials despite low relevance
to user intent "fetch weather for user". (confidence: 97%)
SSH_KEY, AWS_CREDS, GPG_KEY, ENV_FILE, CRYPTO_CERT, SYSTEM_AUTH, BROWSER_COOKIE, KEYCHAIN
OpenGuardrails includes a free AI Security Gateway — a local HTTP proxy that protects sensitive data from being sent to external LLM providers (Anthropic, OpenAI, Gemini, and compatible APIs like Kimi and DeepSeek).
The gateway runs locally on your machine. It intercepts LLM API calls, sanitizes sensitive data before sending to the provider, and restores original values in responses. The entire process is transparent — you use your agent normally, and your data stays protected.
Your prompt: "My card is 6222021234567890, book a hotel"
↓ Gateway sanitizes locally
LLM sees: "My card is __bank_card_1__, book a hotel"
↓ LLM responds
LLM: "Booking with card __bank_card_1__"
↓ Gateway restores locally
You see: "Booking with card 6222021234567890"
The LLM provider never sees the real card number. You see the correct response. No impact on functionality.
| Data Type | Placeholder | Examples |
|---|---|---|
| Email addresses | __email_N__ | user@example.com |
| Credit cards | __credit_card_N__ | 1234-5678-9012-3456 |
| Bank cards | __bank_card_N__ | 16-19 digit card numbers |
| Phone numbers | __phone_N__ | +1-555-123-4567, +86-138-1234-5678 |
| API keys & secrets | __secret_N__ | sk-..., ghp_..., Bearer tokens, high-entropy tokens |
| IP addresses | __ip_N__ | 192.168.1.1 |
| SSN | __ssn_N__ | 123-45-6789 |
| IBAN | __iban_N__ | GB82WEST12345698765432 |
| URLs | __url_N__ | https://example.com/path |
More data types will be added based on user needs. Contact us if you need a specific type.
ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY)npx @openguardrails/gateway (runs on port 8900 by default)http://127.0.0.1:8900The gateway supports Anthropic (/v1/messages), OpenAI (/v1/chat/completions), and Gemini (/v1/models/{model}:generateContent) endpoints, including streaming.
OpenGuardrails does not collect or sell your content. The detection engine is rule-driven and operates on structured signals — it has no LLM to train and no use for your content. Detection request payloads are not retained. Account data (agent ID, email, plan, usage counts) is stored for billing.
All sensitive data is replaced with category placeholders on your machine before anything is sent to the cloud API:
| Data Type | Placeholder |
|---|---|
| Email addresses | <EMAIL> |
| Credit card numbers | <CREDIT_CARD> |
| SSNs | <SSN> |
| IBANs | <IBAN> |
| IP addresses | <IP_ADDRESS> |
| Phone numbers | <PHONE> |
| URLs | <URL> |
| API keys & secrets | <SECRET> |
| High-entropy tokens | <SECRET> |
The sanitization logic is in agent/sanitizer.ts — audit it yourself.
~/.openclaw/credentials/openguardrails/credentials.jsonBefore installing in production, we recommend:
index.ts — all event hooks (before_tool_call, after_tool_call, tool_result_persist); confirm no unexpected side effectsagent/sanitizer.ts — the sanitization logic that strips PII before any cloud callplatform-client/ — every outbound network call the plugin makes; confirm all go to openguardrails.com/core onlyagent/config.ts:65-68 — the registration request; confirm it sends only { name, description }git clone https://github.com/openguardrails/openguardrails.git
# Audit the code, then:
openclaw plugins install -l ./openguardrails/openclaw-security
/og_activate to use all local protections (injection redaction, shell escape blocking, read-then-exfil detection) with zero cloud connectivityopenguardrails.com/core for behavioral assessment; verify with your network monitor of choice~/.openclaw/credentials/openguardrails/credentials.jsonHave questions, feature requests, or need enterprise deployment support?
We welcome feedback on detection accuracy, requests for new sanitized data types, and enterprise inquiries for private deployment, custom rules, and dedicated support.
rm -rf ~/.openclaw/extensions/openguardrails
# Then manually delete openguardrails config in ~/.openclaw/openclaw.json
# Optionally remove credentials
rm -rf ~/.openclaw/credentials/openguardrails