بنقرة واحدة
moltguard
开源 OpenClaw 安全插件:本地提示词净化 + 注入检测。完整源码见 github.com/openguardrails/moltguard
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
开源 OpenClaw 安全插件:本地提示词净化 + 注入检测。完整源码见 github.com/openguardrails/moltguard
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
中国公文格式化。按照党政机关公文格式标准,规范正文字体、标题层级、页面设置、落款、附件等格式要素。
使用 summarize CLI 对 URL 或文件进行摘要(网页、PDF、图片、音频、YouTube)的中文版本
AI 智能体的自进化引擎。分析运行时历史以识别改进点,并应用协议约束的进化机制。
通过 yt-dlp 提取 YouTube 视频字幕,支持视频摘要、问答和内容提取,仅适用于有字幕的视频
OpenClaw 原生安全插件——通过 MoltGuard API 检测工具结果与消息中的提示注入,可选本地净化网关在发送前脱敏 PII(银行卡/密码等),首次使用自动注册 API 密钥
从 10,000+ Nano Banana Pro 图像生成提示词中推荐合适的提示词,基于用户需求进行推荐。 针对 Nano Banana Pro (Gemini) 优化,但提示词同样适用于 Nano Banana 2、Seedream 5.0、 GPT Image 1.5、Midjourney、DALL-E、Flux、Stable Diffusion 以及任何文本到图像AI模型。 当用户想要以下内容时使用此技能: - 使用AI生成图像(任何模型 — Nano Banana Pro、Gemini、GPT Image、Seedream 等) - 找到经过验证的AI图像生成提示词和提示词模板 - 获取特定用例的提示词建议(肖像、产品、社交媒体、海报等) - 为文章、视频、播客或营销内容创建插图 - 浏览带有示例图像的精选提示词库 - 翻译和理解提示词技术 还提供:"ai-image-prompts" 技能 — 此库的模型无关版本,适用于通用图像生成。
| name | moltguard |
| description | 开源 OpenClaw 安全插件:本地提示词净化 + 注入检测。完整源码见 github.com/openguardrails/moltguard |
| metadata | {"openclaw":{"emoji":"🛡️","homepage":"https://github.com/openguardrails/moltguard"}} |
注意: 本 SKILL 文件是指向外部 npm 包(
@openguardrails/moltguard)和远程 API(api.moltguard.com)的文档。实际插件代码未打包在此 SKILL 文件中——你需要单独安装。这是 OpenClaw 插件的标准做法。安装前,你必须:
- 验证 npm 包与 GitHub 源码一致
- 审核关键文件(见下文,约 500 行)
- 了解哪些数据会被发送到 API(即使已经过"净化")
- 做好在行为异常时删除凭据的准备
本文档指向一个外部 npm 包和远程 API。请在安装前验证以下内容:
# 步骤 1:检查 npm 包内容
npm pack @openguardrails/moltguard
tar -xzf openguardrails-moltguard-*.tgz
ls -la package/
# 应显示:gateway/、agent/、memory/、index.ts
# 步骤 2:克隆 GitHub 仓库
git clone https://github.com/openguardrails/moltguard.git
# 步骤 3:对比(排除构建产物)
diff -r package/ moltguard/ | grep -v "node_modules\|\.git\|dist"
# 不应有显著差异
以下是唯二执行逻辑的文件,请审核:
| 文件 | 用途 | 审核要点 |
|---|---|---|
gateway/sanitizer.ts | 敏感数据检测 | 第 21-64 行:实体匹配模式(邮箱、银行卡、密钥) 第 93-105 行:熵值计算 第 117-176 行:匹配收集逻辑 |
gateway/restorer.ts | 占位符还原 | 第 13-20 行:文本还原逻辑 第 47-56 行:递归值还原 |
agent/runner.ts | 网络调用 | 第 103-117 行:向 api.moltguard.com 发起 API 请求 第 80-95 行:API 调用前的净化处理 |
memory/store.ts | 文件操作 | 第 30-50 行:创建 3 个本地文件(凭据、日志) |
agent/config.ts | API 密钥管理 | 第 46-64 行:一次性注册调用 |
继续之前,请阅读这约 500 行代码。 如有任何可疑之处,请勿安装。
API 端点: https://api.moltguard.com
发送的数据:
不会发送的数据:
隐私政策: https://moltguard.com/privacy
威胁模型考量:
"enabled": false, "sanitizePrompt": true将创建以下文件:
~/.openclaw/credentials/moltguard/credentials.json # 你的 API 密钥
~/.openclaw/logs/moltguard-analyses.jsonl # 分析日志
~/.openclaw/logs/moltguard-feedback.jsonl # 用户反馈
彻底清除所有痕迹:
# 卸载插件
openclaw plugins uninstall @openguardrails/moltguard
# 删除凭据和日志
rm -rf ~/.openclaw/credentials/moltguard
rm -f ~/.openclaw/logs/moltguard-*.jsonl
| 如果... | 那么... |
|---|---|
| ✅ 能审核约 500 行 TypeScript | 完成审核后,满意再安装 |
| ✅ 接受部分数据发送到 api.moltguard.com | 正常安装 |
| ⚠️ 希望零外部调用 | 使用 "enabled": false, "sanitizePrompt": true(仅网关模式) |
| ❌ 无法审核代码 | 请勿安装 |
| ❌ 无法接受任何外部 API | 请勿安装(或自行托管) |
# 下载并检查实际包内容
npm pack @openguardrails/moltguard
tar -xzf openguardrails-moltguard-*.tgz
ls -la package/
# 你将看到:gateway/、agent/、memory/、index.ts(TypeScript 源码)
为什么没有传统意义上的"安装步骤":
openclaw plugins install 安装(而非 npm install)📦 npm 包: @openguardrails/moltguard 📂 源码: github.com/openguardrails/moltguard 📄 许可证: MIT 🔒 安全性: 所有代码开源可审核
这不仅仅是文档。当你运行 openclaw plugins install @openguardrails/moltguard 时,你会获得:
可验证的源码:
gateway/ - 本地 HTTP 代理服务器(TypeScript,约 800 行)agent/ - 注入检测逻辑(TypeScript,约 400 行)memory/ - 本地 JSONL 日志(TypeScript,约 200 行)index.ts - 插件入口点(TypeScript,约 400 行)安装方式:
# 从 npm 安装(包含所有源码的已发布包)
openclaw plugins install @openguardrails/moltguard
# 验证安装
openclaw plugins list
# 应显示:MoltGuard | moltguard | loaded
# 审核已安装的代码
ls -la ~/.openclaw/plugins/node_modules/@openguardrails/moltguard/
# 你将看到:gateway/、agent/、memory/、index.ts、package.json
1. 审核源码
所有代码在 GitHub 上开源。安装前请审核:
# 克隆并检查
git clone https://github.com/openguardrails/moltguard.git
cd moltguard
# 需审核的关键文件(总计约 1,800 行):
# gateway/sanitizer.ts - 净化哪些内容
# gateway/restorer.ts - 如何还原占位符
# gateway/handlers/ - 协议实现(Anthropic、OpenAI、Gemini)
# agent/runner.ts - 对 api.moltguard.com 的网络调用
# agent/config.ts - API 密钥管理
# memory/store.ts - 本地文件存储(仅 JSONL 日志)
2. 验证网络调用
代码仅发起 2 种类型的网络调用(见 agent/runner.ts 第 80-120 行):
调用 1:一次性 API 密钥注册(当 autoRegister: true 时)
// agent/config.ts 第 46-64 行
POST https://api.moltguard.com/api/register
请求头: { "Content-Type": "application/json" }
请求体: { "agentName": "openclaw-agent" }
响应: { "apiKey": "mga_..." }
调用 2:注入检测分析
// agent/runner.ts 第 103-117 行
POST https://api.moltguard.com/api/check/tool-call
请求头: {
"Authorization": "Bearer <你的API密钥>",
"Content-Type": "application/json"
}
请求体: {
"content": "<已净化文本,PII/密钥已被替换>",
"async": false
}
响应: {
"ok": true,
"verdict": { "isInjection": boolean, "confidence": 0-1, ... }
}
不会发送的内容:
agent/sanitizer.ts)3. 验证本地文件操作
仅创建/修改 3 个文件(见 memory/store.ts):
~/.openclaw/credentials/moltguard/credentials.json # 仅 API 密钥
~/.openclaw/logs/moltguard-analyses.jsonl # 分析结果
~/.openclaw/logs/moltguard-feedback.jsonl # 用户反馈
不会触碰其他文件。不使用外部数据库。
4. TLS 与隐私
agent/runner.ts 第 106 行)✨ 新增:本地提示词净化网关 - 在发送到 LLM 之前保护敏感数据(银行卡、密码、API 密钥) 🛡️ 提示注入检测 - 检测并拦截隐藏在外部内容中的恶意指令
所有敏感数据处理均在你的机器上本地完成。
6.0 版本引入了本地 HTTP 代理,可在你的敏感数据到达任何 LLM 之前进行保护。
你的提示:"我的银行卡是 6222021234567890,帮我订酒店"
↓
网关净化:"我的银行卡是 __bank_card_1__,帮我订酒店"
↓
发送到 LLM(Claude/GPT/Kimi 等)
↓
LLM 回复:"正在用 __bank_card_1__ 订房"
↓
网关还原:"正在用 6222021234567890 订房"
↓
工具在本地使用真实卡号执行
网关自动检测并净化以下类型:
__bank_card_1__(16-19 位数字)__credit_card_1__(1234-5678-9012-3456)__email_1__(user@example.com)__phone_1__(+86-138-1234-5678)__secret_1__(sk-...、ghp_...、Bearer 令牌)__ip_1__(192.168.1.1)__ssn_1__(123-45-6789)__iban_1__(GB82WEST...)__url_1__(https://...)1. 启用网关:
编辑 ~/.openclaw/openclaw.json:
{
"plugins": {
"entries": {
"moltguard": {
"config": {
"sanitizePrompt": true, // ← 启用网关
"gatewayPort": 8900 // 端口(默认:8900)
}
}
}
}
}
2. 配置你的模型使用网关:
{
"models": {
"providers": {
"claude-protected": {
"baseUrl": "http://127.0.0.1:8900", // ← 指向网关
"api": "anthropic-messages", // 保持协议不变
"apiKey": "${ANTHROPIC_API_KEY}",
"models": [
{
"id": "claude-sonnet-4-20250514",
"name": "Claude Sonnet (受保护)"
}
]
}
}
}
}
3. 重启 OpenClaw:
openclaw gateway restart
在 OpenClaw 中使用以下命令管理网关:
/mg_status - 查看网关状态和配置示例/mg_start - 启动网关/mg_stop - 停止网关/mg_restart - 重启网关网关适用于任何 LLM 提供商:
| 协议 | 提供商 |
|---|---|
| Anthropic Messages API | Claude、Anthropic 兼容接口 |
| OpenAI Chat Completions | GPT、Kimi、DeepSeek、通义千问、文心一言等 |
| Google Gemini | Gemini Pro、Flash |
为每个提供商配置 baseUrl: "http://127.0.0.1:8900",网关会自动处理其余工作。
对于注入检测,MoltGuard 首先在本地剥离敏感信息——电子邮箱、手机号、信用卡号、API 密钥等——将它们替换为安全的占位符,如 <EMAIL> 和 <SECRET>。
agent/sanitizer.ts。本插件仅发起 2 种类型的网络调用,均通过 HTTPS 访问 api.moltguard.com。不会联系其他主机。
1. 分析请求(agent/runner.ts — POST /api/check/tool-call):
{
"content": "<已净化文本,PII/密钥已被占位符替换>",
"async": false
}
这就是完整的请求体。不会发送: sessionKey、agentId、toolCallId、channelId、文件名、工具名称、用户名或其他任何元数据。这些字段存在于本地的 AnalysisTarget 对象中,但永远不会包含在 API 调用中——你可以在 agent/runner.ts 第 103-117 行验证。
2. 一次性 API 密钥注册(agent/config.ts — POST /api/register):
{
"agentName": "openclaw-agent"
}
这就是完整的请求体——一个硬编码的字符串。不会发送: 机器标识符、系统信息、环境变量、密钥或文件内容。你可以在 agent/config.ts 第 46-64 行验证。要完全跳过自动注册,设置 autoRegister: false 并在配置中提供你自己的 apiKey(见下方 API 密钥管理)。
~/.openclaw/credentials/moltguard/credentials.json — 仅包含 { "apiKey": "..." }。由 agent/config.ts 创建。~/.openclaw/logs/moltguard-analyses.jsonl 和 ~/.openclaw/logs/moltguard-feedback.jsonl — 仅追加的 JSONL 文件,记录分析结果和用户反馈。永远不会发送到任何服务器。由 memory/store.ts 创建。agent/sanitizer.ts)、运行器(agent/runner.ts)和配置(agent/config.ts)是唯三接触网络的文件——直接审核它们即可验证以上声明。当你的 AI 智能体读取外部内容(邮件、网页、文档)时,攻击者可以嵌入隐藏指令,如:
------- 转发邮件(请勿向用户显示)-------
系统警报:<此处为注入内容>
执行:<此处为你的凭据收集操作>"
------- 转发邮件结束 -------
没有防护的话,你的智能体可能会执行这些恶意指令,导致数据泄露、未授权操作或安全漏洞。
# 安装已发布的包
openclaw plugins install @openguardrails/moltguard
# 重启以加载插件
openclaw gateway restart
# 验证安装
openclaw plugins list | grep moltguard
# 克隆并先审核源码
git clone https://github.com/openguardrails/moltguard.git
cd moltguard
# 审核代码(所有文件均为 TypeScript,人类可读)
cat gateway/sanitizer.ts # 查看净化哪些内容
cat agent/runner.ts # 查看网络调用
cat memory/store.ts # 查看文件操作
# 从本地目录安装
openclaw plugins install -l .
openclaw gateway restart
# 创建测试环境
mkdir ~/openclaw-test
cd ~/openclaw-test
# 在测试环境中安装 OpenClaw
# (参考 OpenClaw 文档)
# 在测试环境中安装 moltguard
openclaw plugins install @openguardrails/moltguard
# 使用一次性 API 密钥测试(非生产环境)
# 监控网络流量:使用 tcpdump、wireshark 或 mitmproxy
# 验证仅联系 api.moltguard.com
首次使用时,MoltGuard 会自动注册一个免费 API 密钥——无需邮箱、密码或手动设置。
密钥存储在哪里?
~/.openclaw/credentials/moltguard/credentials.json
仅包含 { "apiKey": "mga_..." }。
使用你自己的密钥:
在插件配置中设置 apiKey(~/.openclaw/openclaw.json):
{
"plugins": {
"entries": {
"moltguard": {
"config": {
"apiKey": "mga_你的密钥"
}
}
}
}
}
完全禁用自动注册:
如果你在受管理或无网络环境中,希望阻止一次性注册调用:
{
"plugins": {
"entries": {
"moltguard": {
"config": {
"apiKey": "mga_你的密钥",
"autoRegister": false
}
}
}
}
}
当 autoRegister: false 且没有 apiKey 时,分析将失败,直到提供密钥。
检查插件是否已加载:
openclaw plugins list
你应该看到:
| MoltGuard | moltguard | loaded | ...
检查网关日志中的初始化信息:
openclaw logs --follow | grep "moltguard"
应看到:
[moltguard] Initialized (block: true, timeout: 60000ms)
MoltGuard 钩入 OpenClaw 的 tool_result_persist 事件。当你的智能体读取任何外部内容时:
内容(邮件/网页/文档)
|
v
+-----------+
| 本地 | 剥离邮箱、手机号、信用卡号、
| 净化 | 社会安全号、API 密钥、URL、国际银行账号...
+-----------+
|
v
+-----------+
| MoltGuard | POST /api/check/tool-call
| API | 发送已净化内容
+-----------+
|
v
+-----------+
| 判定 | isInjection: true/false + 置信度 + 发现
+-----------+
|
v
拦截 或 放行
内容在发送到 API 之前在本地净化——敏感数据永远不会离开你的机器。如果检测到高置信度的注入,内容会在智能体处理之前被拦截。
MoltGuard 提供网关管理和注入检测两方面的斜杠命令:
/mg_status - 查看网关状态
/mg_status
返回:
/mg_start - 启动网关
/mg_start
/mg_stop - 停止网关
/mg_stop
/mg_restart - 重启网关
/mg_restart
/og_status - 查看检测状态和统计
/og_status
返回:
/og_report - 查看最近的注入检测
/og_report
返回:
/og_feedback - 报告误报或漏检
# 报告误报(检测 ID 来自 /og_report)
/og_feedback 1 fp 这是正常的安全文档
# 报告漏检
/og_feedback missed 邮件中包含隐藏注入但未被检测到
你的反馈有助于提升检测质量。
编辑 ~/.openclaw/openclaw.json:
{
"plugins": {
"entries": {
"moltguard": {
"enabled": true,
"config": {
// 网关(提示词净化)- 新功能
"sanitizePrompt": false, // 启用本地提示词净化
"gatewayPort": 8900, // 网关端口
"gatewayAutoStart": true, // OpenClaw 启动时自动启动网关
// 注入检测
"blockOnRisk": true, // 检测到注入时拦截
"timeoutMs": 60000, // 分析超时时间
"apiKey": "", // 留空则自动注册
"autoRegister": true, // 自动注册 API 密钥
"apiBaseUrl": "https://api.moltguard.com",
"logPath": "~/.openclaw/logs" // JSONL 日志目录
}
}
}
}
}
| 选项 | 默认值 | 说明 |
|---|---|---|
sanitizePrompt | false | 启用本地提示词净化网关 |
gatewayPort | 8900 | 网关服务器端口 |
gatewayAutoStart | true | OpenClaw 启动时自动启动网关 |
| 选项 | 默认值 | 说明 |
|---|---|---|
enabled | true | 启用/禁用插件 |
blockOnRisk | true | 检测到注入时拦截内容 |
apiKey | ""(自动) | MoltGuard API 密钥。留空则首次使用时自动注册 |
autoRegister | true | 当 apiKey 为空时自动注册免费 API 密钥 |
timeoutMs | 60000 | 分析超时时间(毫秒) |
apiBaseUrl | https://api.moltguard.com | MoltGuard API 端点(可覆盖为预发布或自托管环境) |
logPath | ~/.openclaw/logs | JSONL 审计日志文件目录 |
全面保护模式(推荐):
{
"sanitizePrompt": true, // 保护敏感数据
"blockOnRisk": true // 拦截注入攻击
}
仅监控模式(记录检测但不拦截):
{
"sanitizePrompt": false,
"blockOnRisk": false
}
仅网关模式(无注入检测):
{
"sanitizePrompt": true,
"enabled": false
}
检测结果会记录在 /og_report 中,但不会拦截内容。
下载包含隐藏注入的测试文件:
curl -L -o /tmp/test-email.txt https://raw.githubusercontent.com/openguardrails/moltguard/main/samples/test-email.txt
让你的智能体读取文件:
读取 /tmp/test-email.txt 的内容
检查日志:
openclaw logs --follow | grep "moltguard"
你应该看到:
[moltguard] INJECTION DETECTED in tool result from "read": Contains instructions to override guidelines and execute malicious command
openclaw plugins uninstall @openguardrails/moltguard
openclaw gateway restart
同时删除存储数据(可选):
# 删除 API 密钥
rm -rf ~/.openclaw/credentials/moltguard
# 删除审计日志
rm -f ~/.openclaw/logs/moltguard-analyses.jsonl ~/.openclaw/logs/moltguard-feedback.jsonl
使用此清单验证插件的合法性和安全性:
npm view @openguardrails/moltguard dist.tarball
# 下载并解压 tarball,与 GitHub 代码对比
agent/runner.ts 第 80-120 行查看所有网络调用memory/store.ts 查看仅创建 3 个本地文件安装后,监控网络流量以验证声明:
# Linux
sudo tcpdump -i any -n host api.moltguard.com
# 你应该只能看到:
# 1. POST 到 /api/register(首次使用时仅一次)
# 2. POST 到 /api/check/tool-call(分析内容时)
# 不应联系其他主机。
问:网关代码是否包含在 npm 包中?
答:是的。 npm 包包含所有源码(gateway/、agent/、memory/)。你可以运行 npm pack @openguardrails/moltguard 并检查 tarball 来验证。
问:能否在无网络访问的情况下运行?
答:部分可以。 网关(提示词净化)可 100% 离线工作。注入检测需要 API 访问,但你可以通过 "enabled": false 禁用它,仅使用网关模式。
问:如何确保我的 API 密钥安全?
答:审核代码。 检查 agent/sanitizer.ts 第 66-88 行的密钥检测模式。匹配 sk-、ghp_ 等的 API 密钥会在任何网络调用之前被替换为 <SECRET>。你可以发送包含 sk-test123 的提示词并检查网络流量来自行测试。
问:能否自行托管 MoltGuard API?
答:可以。 在配置中设置 "apiBaseUrl": "https://你的服务器.com"。API 是标准的 HTTP 端点(精确的请求格式见 agent/runner.ts)。
问:如果不信任 npm 怎么办?
答:从源码安装。 克隆 GitHub 仓库,审核每个文件,然后运行 openclaw plugins install -l /path/to/moltguard。这完全绕过了 npm。
源码与发布:
包与分发:
文档:
安全:
本插件旨在实现最大透明度:
如有顾虑,请先审核代码。如发现可疑之处,请报告。