원클릭으로
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。
源码与发布:
包与分发:
文档:
安全:
本插件旨在实现最大透明度:
如有顾虑,请先审核代码。如发现可疑之处,请报告。