OpenClaw配置详解:openclaw.json完全指南与最佳实践

周五晚上十点,我盯着终端里刚刚跑起来的OpenClaw服务,心里松了一口气。然后打开~/.openclaw/openclaw.json,看着满屏幕的配置参数——gateway、channel、skills、provider……每个字段下面还有一堆嵌套的选项。
说实话,那一刻我有点懵。
虽然安装过程挺顺利,但面对这个配置文件,我突然意识到:自己其实不太清楚这些参数到底是干什么的。dmPolicy应该设成pairing还是allowlist?gateway.auth.token是不是就是密码?技能要全部启用吗?
更让人在意的是,2026年1月底OpenClaw刚修复了一个严重的安全漏洞(CVE-2026-25253,CVSS评分8.8),攻击者可以通过URL参数窃取认证token,进而执行任意命令。配置不当的话,你的AI助手可能变成别人的后门。
这篇文章就是当时的我最想看到的那份指南。我会系统性地拆解openclaw.json的所有配置模块,告诉你每个参数是什么意思、为什么需要它、以及生产环境下应该怎么设置。还会分享一些我踩过的坑和安全配置的检查清单。
配置文件的基础认知
文件在哪里,长什么样
OpenClaw的配置文件默认保存在~/.openclaw/openclaw.json。如果你是通过安装向导配置的,这个文件会自动生成;如果是手动安装,可能需要自己创建。
打开它,你会看到五大模块:
- Gateway:网关服务的端口、认证、日志等设置
- Channel:通信渠道(WhatsApp、Telegram等)的配置
- Skills:技能模块的管理和权限
- Provider:AI模型提供商(Anthropic、OpenAI、本地模型等)
- Security:安全策略和访问控制
这个结构其实挺合理——Gateway管入口,Channel管通信,Skills管能力,Provider管大脑,Security管防护。
配置方式和优先级
OpenClaw支持四种配置方式:
- 交互式向导:安装时一步步选择,适合新手
- 直接编辑JSON:用vim或nano直接改文件,适合熟悉配置的人
- 环境变量:适合容器化部署或临时覆盖某个参数
- 脚本自动化:批量部署时用脚本生成配置
重点来了:这几种方式有优先级。环境变量 > 配置文件 > 默认值。
什么意思?比如你在配置文件里设置了gateway.port: 18789,但同时设置了环境变量OPENCLAW_GATEWAY_PORT=9000,最终生效的是9000。这个设计在调试时特别有用——不用改配置文件,临时设个环境变量就能测试。
2026年的版本还增加了对MCP服务器(Model Context Protocol)的支持,可以统一接入多个搜索引擎和工具。另外,openclaw doctor命令现在能自动检查配置状态,发现问题会给出修复建议。
Gateway网关配置详解
Gateway是OpenClaw的入口,负责Web界面访问和远程客户端连接。
基础配置:端口和认证
{
"gateway": {
"port": 18789,
"auth": {
"token": "your-secret-token-here"
},
"remote": {
"token": "your-remote-token-here"
}
}
}port:Web界面的访问端口,默认18789。访问http://localhost:18789就能看到OpenClaw的控制面板。如果这个端口被占用,改成别的就行(比如19000)。auth.token:这是网关的认证令牌,等同于密码。任何人拿到这个token,就能完全控制你的OpenClaw实例。CVE-2026-25253漏洞就是因为token可以通过URL参数泄漏。remote.token:远程客户端(比如手机App或桌面客户端)连接时用的令牌。和auth.token分开,是为了可以单独轮换。
安全提示:2026年1月29日的版本移除了"auth: none"选项。以前你可以关闭认证方便开发,现在强制要求使用token或password。这是针对安全漏洞的硬性修复。
高级配置:日志和WebSocket
{
"gateway": {
"logging": {
"redactSensitive": true
}
}
}redactSensitive设为true后,日志会自动脱敏——API密钥、token等敏感信息会被替换成***。查日志排错时不用担心不小心把密钥复制到公开的issue里。
启动网关服务的命令是openclaw gateway。服务跑起来后,你会看到类似这样的输出:
[Gateway] Listening on http://localhost:18789
[Gateway] Authentication: Token-basedChannel渠道配置策略
Channel模块决定了OpenClaw能通过哪些平台和你对话。
支持的渠道类型
目前支持四种主要渠道:
- WhatsApp:扫码配对,最常用
- Telegram:Bot API,适合群组场景
- Discord:适合技术社区
- Mattermost:企业团队协作
每个渠道的配置方式不同。WhatsApp是扫码配对流程,Telegram需要Bot Token,Discord需要创建Application。
DM(私信)策略配置
这部分是很多人搞不清楚的地方。dmPolicy决定了陌生人能不能给你的AI助手发消息。
有四种模式:
1. pairing(默认模式)
{
"channel": {
"dmPolicy": "pairing"
}
}未知发送者需要先配对验证。OpenClaw会生成一个6位配对码,有效期1小时。你需要手动批准:
openclaw pairing approve whatsapp ABC123这个模式平衡了安全性和可用性——朋友第一次找你的AI助手时,你审核一下,之后就畅通无阻了。
2. allowlist(白名单模式)
{
"channel": {
"dmPolicy": "allowlist",
"allowFrom": [
"+1234567890",
"telegram:@username"
]
}
}只有白名单里的人能发消息,其他人直接被屏蔽。适合你明确知道哪些人会用的场景。
3. open(开放模式)
{
"channel": {
"dmPolicy": "open",
"allowFrom": ["*"]
}
}任何人都能发消息。老实讲,这个模式风险很高。除非你在做公开演示或者测试,否则不推荐用。
4. disabled(禁用模式)
完全关闭私信功能,只接受群组消息。
多用户场景的会话隔离
如果你的OpenClaw服务要给多个人用(比如团队共享),会话隔离很重要:
{
"channel": {
"session": {
"dmScope": "per-channel-peer"
}
}
}这样每个人的对话历史是独立的,不会串话。
Group群组策略配置
群组配置相对简单,但有个关键设置:mentionGating(@提及门控)。
{
"channel": {
"groupPolicy": "mention",
"mentionGating": true
}
}开启后,AI助手只会回复@它的消息,而不是监听群里的每条消息。避免变成”always-on”机器人——你懂的,那种在群里疯狂刷屏的机器人。
Skills技能模块配置
Skills是OpenClaw最有意思的部分——它决定了AI助手能做什么。
Skills基础概念
技能是模块化的能力扩展。OpenClaw自带一些内置技能,ClawHub技能商店里有700+可用技能:
- 日历管理(Google Calendar、Outlook)
- 网页浏览(browser技能)
- 文件管理(file_manager)
- 终端命令(exec技能)
- 代码执行(python、node)
技能的安装路径是~/.openclaw/skills/。优先级规则:工作区技能 > 用户技能 > 内置技能。
什么意思?如果你在项目目录里放了一个自定义的browser技能,它会覆盖全局安装的版本。这个设计让你可以针对特定项目定制能力。
技能配置与管理
每个技能都有一个SKILL.md文件,里面用YAML格式定义元数据:
---
name: google-calendar
description: Manage Google Calendar events
requirements:
bins:
- gcalcli
env:
- GOOGLE_CALENDAR_API_KEY
---bins字段列出了依赖的二进制程序。比如这个日历技能需要gcalcli命令行工具。如果系统里没装,技能会加载失败。
三种安装方式:
- GUI安装:在Web界面点击”Add Skill”,搜索并安装
- CLI安装:
openclaw skill install google-calendar - 手动安装:把技能目录复制到
~/.openclaw/skills/
技能故障排查
技能加载失败是常见问题。用这个命令检查依赖:
openclaw skill check google-calendar它会告诉你缺少哪些依赖、环境变量有没有设置、OS配置是否匹配。
如果还是有问题,查看Gateway日志:
openclaw gateway --verbose日志会显示技能加载的详细过程,哪一步出错一目了然。
小模型场景的优化
如果你用的是小上下文窗口的本地模型(比如7B参数的量化模型),可能需要禁用部分技能来控制上下文大小。技能越多,系统提示词越长,留给对话的空间就越少。
高风险技能的限制
有些技能权限很高,需要谨慎使用:
exec:执行任意shell命令browser:访问任意网页web_fetch:抓取外部内容web_search:搜索引擎查询
这些技能在恶意输入的情况下可能被滥用。如果不是必需的,建议禁用。
Provider模型提供商配置
Provider决定了OpenClaw用哪个AI大脑。
支持的AI Provider
- Anthropic(Claude):官方主要推荐,API稳定,安全特性完善
- OpenAI:即将支持(GPT-4等模型)
- 本地模型:LM Studio、Ollama等
- OpenRouter:统一多模型访问接口,一个API Key用所有模型
- MCP服务器:2026年新特性,支持Model Context Protocol
Provider配置参数
最简单的配置(使用Anthropic):
{
"provider": {
"type": "anthropic",
"apiKey": "sk-ant-..."
}
}但我建议不要把API Key直接写在配置文件里,用环境变量:
export ANTHROPIC_API_KEY="sk-ant-..."这样配置文件可以安全地提交到版本控制,API Key不会泄漏。
本地模型配置
{
"provider": {
"type": "openai-compatible",
"baseURL": "http://localhost:1234/v1",
"modelId": "kimi-k2.5-chat"
}
}baseURL:本地模型服务器地址(LM Studio默认1234端口)modelId:指定使用的模型名称
MCP服务器配置(新特性)
{
"provider": {
"mcpServers": {
"onesearch": {
"command": "npx",
"args": ["-y", "@onesearch/mcp-server"]
}
}
}
}OneSearch MCP让你可以通过统一接口访问多个搜索引擎(Google、Bing、Brave等),不用给每个搜索引擎单独配API Key。
本地模型的注意事项
说实话,本地模型有它的优势——隐私、成本、离线可用。但安全特性确实比商业模型弱:
- 提示注入风险更高:小模型更容易被恶意输入欺骗
- 上下文窗口小:安全特性需要更多系统提示词,但小模型放不下
- 量化模型的局限:4-bit量化后,模型的指令遵循能力会下降
如果你必须用本地模型,建议:
- 严格限制技能权限
- 开启沙箱模式
- 不要在有敏感数据的机器上运行
安全配置最佳实践
安全配置永远是第一优先级。CVE-2026-25253漏洞的教训告诉我们,配置不当的后果可能很严重。
安全配置清单
基础安全(必做)
- ✅ 永不分享gateway token——就像你家钥匙,千万不能给别人
- ✅ 使用防火墙,仅暴露必要端口(18789)
- ✅ SSH使用密钥认证而非密码
- ✅ 限制Web界面访问(VPN或IP白名单)
- ✅ DM策略:优先用
pairing或allowlist - ✅ 群组策略:开启mention gating
进阶安全(强烈推荐)
- ✅ 定期轮换token(至少每季度一次)
- ✅ 开启日志敏感信息脱敏
- ✅ 限制高风险技能(exec、browser)
- ✅ 使用专用服务器(不要和主要工作机混用)
输入安全与沙箱
有一条铁律:将所有外部输入视为恶意。
链接、附件、粘贴的指令——都可能是精心构造的攻击。OpenClaw的沙箱功能(opt-in)可以隔离高风险操作:
{
"security": {
"sandbox": {
"enabled": true,
"skills": ["exec", "browser"]
}
}
}这样exec和browser技能会在隔离环境中运行,即使被攻破也影响不到主系统。
Secrets管理
API密钥、token等敏感信息的管理:
- 基础方案:用SCP传输
.env文件到服务器,避免在聊天中粘贴 - 高级方案:使用Doppler、HashiCorp Vault等专业secrets管理器
千万不要做的事情:
- ❌ 在Telegram消息里发送API Key
- ❌ 把secrets提交到Git仓库
- ❌ 在公开的issue里贴日志(可能包含token)
安全审计与维护
OpenClaw内置了安全审计命令:
# 基础检查
openclaw security audit
# 深度检查
openclaw security audit --deep
# 自动应用安全防护
openclaw security audit --fix这个命令会检查:
- Token强度是否足够
- 端口是否暴露到公网
- 文件权限是否正确(
~/.openclaw应为700,配置文件应为600) - 高风险技能是否启用
- DM策略是否安全
本地文件权限
chmod 700 ~/.openclaw
chmod 600 ~/.openclaw/openclaw.json这样只有你自己能读写配置文件,其他用户连看都看不到。
千万不要做的事情
- ❌ 把18789端口暴露到公网
- ❌ 在不理解风险的情况下授予shell访问
- ❌ 安装未验证来源的技能
- ❌ 使用
dmPolicy: "open"而不设白名单 - ❌ 在存有主要邮箱/银行信息的机器上运行OpenClaw
实战配置案例
理论讲完了,来看几个实际场景的完整配置。
场景1:个人使用,仅WhatsApp,配对模式
{
"gateway": {
"port": 18789,
"auth": {
"token": "generate-a-strong-random-token"
},
"logging": {
"redactSensitive": true
}
},
"channel": {
"type": "whatsapp",
"dmPolicy": "pairing",
"session": {
"dmScope": "per-channel-peer"
}
},
"skills": {
"enabled": [
"calendar",
"web_search",
"file_manager"
],
"disabled": [
"exec",
"browser"
]
},
"provider": {
"type": "anthropic"
},
"security": {
"sandbox": {
"enabled": true
}
}
}这个配置适合普通个人用户——安全性好,功能够用,高风险技能被禁用。
场景2:团队协作,多渠道,白名单模式
{
"gateway": {
"port": 18789,
"auth": {
"token": "team-gateway-token"
},
"remote": {
"token": "team-remote-token"
}
},
"channel": [
{
"type": "telegram",
"dmPolicy": "allowlist",
"allowFrom": [
"telegram:@alice",
"telegram:@bob",
"telegram:@carol"
],
"groupPolicy": "mention",
"mentionGating": true
},
{
"type": "discord",
"dmPolicy": "allowlist",
"allowFrom": [
"discord:123456789"
]
}
],
"skills": {
"enabled": [
"calendar",
"web_search",
"github",
"jira"
]
},
"provider": {
"type": "anthropic"
}
}多渠道配置用数组形式,每个渠道独立管理白名单。群组开启mention gating避免刷屏。
场景3:本地模型,离线使用,技能精简
{
"gateway": {
"port": 19000
},
"channel": {
"type": "whatsapp",
"dmPolicy": "allowlist",
"allowFrom": ["+1234567890"]
},
"skills": {
"enabled": [
"calculator",
"file_manager"
]
},
"provider": {
"type": "openai-compatible",
"baseURL": "http://localhost:1234/v1",
"modelId": "llama-3.1-8b"
}
}本地模型场景下,技能尽量精简——小模型的上下文窗口装不下太多系统提示词。
常见配置错误与解决
错误1:token不匹配导致无法连接
症状:Web界面显示”Authentication failed”
解决:检查gateway.auth.token和你输入的token是否完全一致(注意空格、换行符)
错误2:技能依赖缺失导致加载失败
症状:日志显示”Skill ‘google-calendar’ failed to load”
解决:运行openclaw skill check google-calendar,按提示安装缺失的依赖
错误3:端口冲突导致Gateway无法启动
症状:Error: listen EADDRINUSE :::18789
解决:改用其他端口,或找到占用18789的进程并杀掉
错误4:配置文件格式错误
症状:SyntaxError: Unexpected token } in JSON
解决:用JSON验证工具检查格式,常见问题是多余的逗号或引号不匹配
故障排查命令
# 查看服务状态
openclaw status
# 健康检查
openclaw doctor
# 详细日志
openclaw gateway --verbose结论
说了这么多,核心就三点:
第一,配置文件是OpenClaw的心脏。每个参数的含义都值得理解透彻——不是为了炫技,而是为了在出问题时能快速定位。
第二,安全配置永远是第一优先级。CVE-2026-25253漏洞证明了配置不当的风险是真实存在的。token要保密、端口要限制、DM策略要收紧、高风险技能要谨慎启用。
第三,配置不是一次性工作。随着使用场景变化、团队成员增减、新技能上线,配置需要持续优化。每隔一段时间回顾一下配置,跑一次openclaw security audit,确保一切在掌控之中。
现在,立即做三件事:
- 运行
openclaw security audit --deep检查当前配置 - 对照本文的最佳实践清单,逐项优化你的配置
- 把优化后的配置备份到安全的地方(但别把token一起备份了)
如果你在配置过程中遇到问题,OpenClaw社区很活跃,GitHub Discussions和Discord频道都有人帮忙。也欢迎分享你的配置经验——大家都是这样一步步摸索过来的。
OpenClaw配置文件完整设置流程
从零开始配置openclaw.json的详细步骤,包含Gateway、Channel、Skills、Provider和Security模块
⏱️ 预计耗时: 30 分钟
- 1
步骤1: 第一步:创建和定位配置文件
配置文件位置:~/.openclaw/openclaw.json
创建方式:
• 自动生成:运行安装向导时自动创建
• 手动创建:mkdir -p ~/.openclaw && touch ~/.openclaw/openclaw.json
• 文件权限:chmod 600 ~/.openclaw/openclaw.json(仅所有者可读写)
配置优先级规则:
环境变量 > 配置文件 > 默认值
调试技巧:使用环境变量临时覆盖参数,无需修改配置文件 - 2
步骤2: 第二步:配置Gateway网关模块
基础配置参数:
端口设置:
• "port": 18789(默认端口,可改为其他未占用端口)
• 访问地址:http://localhost:18789
认证配置:
• "auth.token":网关认证令牌(等同于密码,必须保密)
• "remote.token":远程客户端连接令牌(可单独轮换)
• 2026年版本强制要求认证,不支持"auth: none"
安全增强:
• "logging.redactSensitive": true(日志自动脱敏,隐藏API密钥和token)
启动命令:
openclaw gateway
验证:浏览器访问http://localhost:18789,输入token登录 - 3
步骤3: 第三步:配置Channel渠道模块
支持的渠道类型:
• WhatsApp(扫码配对)
• Telegram(需Bot Token)
• Discord(需创建Application)
• Mattermost(企业协作)
DM策略配置(4种模式):
1. pairing模式(推荐):
"dmPolicy": "pairing"
未知发送者需配对码验证,批准命令:
openclaw pairing approve whatsapp ABC123
2. allowlist模式(安全):
"dmPolicy": "allowlist"
"allowFrom": ["+1234567890", "telegram:@username"]
仅白名单用户可发消息
3. open模式(高风险):
"dmPolicy": "open"
"allowFrom": ["*"]
任何人可发消息,不推荐生产环境使用
4. disabled模式:
完全禁用私信,仅接受群组消息
群组配置:
"groupPolicy": "mention"
"mentionGating": true
AI仅回复@提及的消息,避免刷屏
会话隔离(多用户场景):
"session.dmScope": "per-channel-peer"
每个用户对话历史独立,不会串话 - 4
步骤4: 第四步:配置Skills技能模块
技能安装路径:~/.openclaw/skills/
优先级规则:工作区技能 > 用户技能 > 内置技能
三种安装方式:
1. GUI安装:Web界面点击"Add Skill"搜索安装
2. CLI安装:openclaw skill install google-calendar
3. 手动安装:复制技能目录到~/.openclaw/skills/
配置示例:
"skills": {
"enabled": ["calendar", "web_search", "file_manager"],
"disabled": ["exec", "browser"]
}
高风险技能(需谨慎):
• exec:执行任意shell命令
• browser:访问任意网页
• web_fetch:抓取外部内容
• web_search:搜索引擎查询
故障排查命令:
openclaw skill check google-calendar
查看缺失依赖、环境变量配置、OS兼容性
详细日志:
openclaw gateway --verbose
显示技能加载详细过程
小模型优化:
禁用部分技能减少上下文占用,技能越多系统提示词越长 - 5
步骤5: 第五步:配置Provider模型提供商
支持的Provider类型:
1. Anthropic(Claude)- 官方推荐
2. OpenAI(GPT-4等)- 即将支持
3. 本地模型(LM Studio、Ollama)
4. OpenRouter(多模型统一接口)
5. MCP服务器(Model Context Protocol)
Anthropic配置(推荐):
"provider": {
"type": "anthropic",
"apiKey": "sk-ant-..."
}
安全做法:使用环境变量存储API Key
export ANTHROPIC_API_KEY="sk-ant-..."
配置文件不包含密钥,可安全提交到版本控制
本地模型配置:
"provider": {
"type": "openai-compatible",
"baseURL": "http://localhost:1234/v1",
"modelId": "llama-3.1-8b"
}
MCP服务器配置(2026新特性):
"provider": {
"mcpServers": {
"onesearch": {
"command": "npx",
"args": ["-y", "@onesearch/mcp-server"]
}
}
}
本地模型注意事项:
• 提示注入风险更高,小模型易被恶意输入欺骗
• 上下文窗口小,需精简技能
• 量化模型(4-bit)指令遵循能力下降
• 必须严格限制技能权限
• 开启沙箱模式
• 不在敏感数据机器上运行 - 6
步骤6: 第六步:配置Security安全模块
基础安全配置(必做):
• 永不分享gateway token
• 防火墙仅暴露18789端口
• SSH使用密钥认证
• 限制Web界面访问(VPN/IP白名单)
• DM策略优先用pairing或allowlist
• 群组开启mention gating
沙箱配置:
"security": {
"sandbox": {
"enabled": true,
"skills": ["exec", "browser"]
}
}
高风险技能隔离运行,被攻破不影响主系统
文件权限设置:
chmod 700 ~/.openclaw
chmod 600 ~/.openclaw/openclaw.json
仅所有者可访问配置文件
安全审计命令:
openclaw security audit(基础检查)
openclaw security audit --deep(深度检查)
openclaw security audit --fix(自动修复)
检查项目:
• Token强度
• 端口暴露情况
• 文件权限
• 高风险技能状态
• DM策略安全性
定期维护:
• 至少每季度轮换token
• 开启日志敏感信息脱敏
• 限制高风险技能
• 使用专用服务器
Secrets管理:
• 基础方案:SCP传输.env文件
• 高级方案:Doppler、HashiCorp Vault
• 绝不在消息/Git/issue中暴露密钥 - 7
步骤7: 第七步:验证和故障排查
验证配置:
1. 检查配置文件格式:
用JSON验证工具检查语法错误
2. 健康检查:
openclaw doctor
自动检查配置状态并给出修复建议
3. 查看服务状态:
openclaw status
显示Gateway、Channel、Skills运行状态
4. 安全审计:
openclaw security audit --deep
全面检查安全配置
常见错误排查:
错误1:Authentication failed
原因:token不匹配
解决:检查gateway.auth.token是否包含多余空格或换行符
错误2:Skill加载失败
原因:依赖缺失
解决:openclaw skill check [skill-name],安装缺失依赖
错误3:端口冲突(EADDRINUSE)
原因:18789端口被占用
解决:改用其他端口或杀掉占用进程
错误4:JSON语法错误
原因:配置文件格式问题
解决:检查多余逗号、引号不匹配
详细日志:
openclaw gateway --verbose
显示Gateway启动、技能加载、认证等详细过程
配置备份:
定期备份配置文件到安全位置
注意:备份时移除token和API密钥
常见问题
dmPolicy应该选pairing还是allowlist?
pairing模式(推荐大多数场景):
• 适合:不确定所有用户是谁,但需要审核
• 优点:灵活,朋友第一次配对后畅通无阻
• 流程:陌生人发消息 → 生成6位配对码 → 你批准 → 以后直接通信
• 命令:openclaw pairing approve whatsapp ABC123
allowlist模式(推荐高安全场景):
• 适合:明确知道所有使用者(家人、团队成员)
• 优点:最安全,非白名单直接屏蔽
• 配置:"allowFrom": ["+1234567890", "telegram:@username"]
• 维护:新增用户需手动添加到白名单
选择建议:
个人使用不确定谁会联系 → pairing
团队固定成员使用 → allowlist
公开演示/测试 → open(临时使用,不推荐长期)
CVE-2026-25253漏洞具体是什么?如何防护?
• CVE编号:CVE-2026-25253
• CVSS评分:8.8(严重)
• 发现时间:2026年1月底
• 影响版本:2026年1月29日前的版本
攻击原理:
攻击者可通过URL参数窃取认证token,例如:
http://victim.com:18789/?token=leaked-token
一旦获取token,即可完全控制OpenClaw实例,执行任意命令
官方修复措施:
1. 移除"auth: none"选项,强制启用认证
2. URL参数不再传递token
3. 所有请求必须通过Header传递认证信息
防护措施:
• 立即更新到最新版本(2026年1月29日后)
• 轮换所有现有token(旧token可能已泄漏)
• 永不在URL中包含token
• 限制Web界面访问(VPN/IP白名单/防火墙)
• 不将18789端口暴露到公网
• 定期运行openclaw security audit检查配置
检查是否受影响:
openclaw --version
显示版本日期早于2026-01-29则需更新
本地模型和Anthropic API在安全性上有什么区别?
1. 提示注入防护:
• 内置安全层,能识别恶意prompt
• 拒绝执行危险指令
• 定期更新安全规则
2. 指令遵循能力:
• 严格遵循系统提示词
• 不易被用户输入欺骗
3. 上下文处理:
• 大窗口(200K tokens)可容纳完整安全提示词
本地模型的安全局限:
1. 提示注入风险高:
• 小模型(7B-13B)易被精心构造的输入绕过
• 缺少专门的安全训练
2. 量化模型问题:
• 4-bit量化后,指令遵循能力显著下降
• 安全特性可能失效
3. 上下文限制:
• 小窗口(4K-8K tokens)放不下完整安全提示词
• 只能精简技能和系统提示
本地模型安全使用建议:
• 严格限制技能权限(仅启用低风险技能)
• 必须开启沙箱模式隔离运行
• 不在有敏感数据的机器上部署
• allowlist白名单限制用户
• 禁用exec、browser等高风险技能
• 定期审查日志,监控异常行为
选择建议:
需要高安全性(处理敏感数据) → Anthropic API
重视隐私和离线可用 → 本地模型+严格安全配置
技能太多会影响性能吗?应该启用多少个?
1. 上下文占用:
每个技能会增加系统提示词长度
• 单个技能:平均200-500 tokens
• 10个技能:约2000-5000 tokens
• 留给对话的空间相应减少
2. 模型类型决定策略:
大模型(Anthropic Claude):
• 上下文窗口:200K tokens
• 建议:可启用10-20个常用技能
• 影响:几乎可忽略,性能不受影响
中等模型(本地13B-30B):
• 上下文窗口:8K-32K tokens
• 建议:启用5-10个必需技能
• 影响:需权衡功能和上下文空间
小模型(本地7B量化):
• 上下文窗口:4K-8K tokens
• 建议:仅启用2-5个核心技能
• 影响:必须精简,否则无法对话
3. 按需启用策略:
个人助手场景(推荐):
• calendar(日历管理)
• web_search(网络搜索)
• file_manager(文件管理)
• calculator(计算器)
开发场景(推荐):
• github(代码仓库)
• web_search(技术搜索)
• exec(命令执行,需沙箱)
企业场景(推荐):
• calendar(日历)
• jira(项目管理)
• slack(团队协作)
• web_search(搜索)
动态调整:
• 工作区技能优先级高于全局
• 可针对不同项目创建不同配置
• 不常用技能及时禁用
性能优化建议:
openclaw skill list
查看已启用技能及其上下文占用
禁用不用的技能:
"skills": {"disabled": ["skill-name"]}
如何安全地管理多个环境(开发/测试/生产)的配置?
方法1:环境变量覆盖(推荐)
基础配置文件(~/.openclaw/openclaw.json):
包含通用配置,不含敏感信息
开发环境(.env.development):
export OPENCLAW_GATEWAY_PORT=18789
export OPENCLAW_DM_POLICY=open
export ANTHROPIC_API_KEY=sk-ant-dev-key
生产环境(.env.production):
export OPENCLAW_GATEWAY_PORT=18789
export OPENCLAW_DM_POLICY=allowlist
export ANTHROPIC_API_KEY=sk-ant-prod-key
切换环境:
source .env.development
openclaw gateway
优先级:环境变量 > 配置文件 > 默认值
方法2:多配置文件
创建不同配置:
~/.openclaw/openclaw.dev.json
~/.openclaw/openclaw.prod.json
指定配置启动:
openclaw gateway --config ~/.openclaw/openclaw.prod.json
方法3:Git管理(推荐团队)
版本控制:
openclaw.json.template(模板,提交Git)
openclaw.json(实际配置,加入.gitignore)
.env.example(环境变量示例)
.gitignore配置:
openclaw.json
.env
.env.local
.env.*.local
团队协作流程:
1. 拷贝模板:cp openclaw.json.template openclaw.json
2. 填入本地配置
3. 使用环境变量存储敏感信息
方法4:Secrets管理器(企业推荐)
Doppler示例:
doppler secrets set GATEWAY_TOKEN xxx
doppler run -- openclaw gateway
HashiCorp Vault示例:
vault kv get -field=token secret/openclaw/gateway
安全检查清单:
✅ 配置文件不包含API密钥和token
✅ 使用环境变量存储敏感信息
✅ .gitignore包含所有配置文件
✅ 生产环境token与开发环境不同
✅ 定期轮换生产环境token
✅ 配置文件权限正确(600)
✅ 不在聊天/issue中分享配置
备份策略:
开发配置:可提交Git(无敏感信息)
生产配置:加密备份到安全位置(1Password/Bitwarden)
群组中AI助手疯狂回复怎么办?
未开启mention gating,AI监听群内所有消息并回复
解决方案:
1. 开启Mention Gating(推荐)
配置:
"channel": {
"groupPolicy": "mention",
"mentionGating": true
}
效果:AI仅回复@提及的消息
使用:
群成员发送 "@OpenClaw 今天天气怎么样"
AI才会响应
2. 关键词触发(备选)
配置:
"channel": {
"groupPolicy": "keyword",
"keywords": ["openclaw", "助手"]
}
效果:仅包含关键词的消息触发回复
3. 完全禁用群组
配置:
"channel": {
"groupPolicy": "disabled"
}
效果:AI不响应任何群组消息,仅处理私信
4. 消息频率限制
配置:
"channel": {
"rateLimit": {
"maxMessages": 10,
"perMinutes": 1
}
}
效果:限制每分钟最多回复10条消息
临时紧急处理:
立即关闭群组响应:
openclaw channel disable --group
移除AI从群组:
从WhatsApp/Telegram群组中移除OpenClaw
重启Gateway:
openclaw gateway restart
最佳实践配置:
"channel": {
"groupPolicy": "mention",
"mentionGating": true,
"rateLimit": {
"maxMessages": 5,
"perMinutes": 1
}
}
这样配置:
• AI仅响应@提及
• 每分钟最多5条回复
• 避免刷屏和滥用
配置文件突然失效,Gateway无法启动怎么排查?
第一步:检查配置文件格式
验证JSON格式:
cat ~/.openclaw/openclaw.json | python -m json.tool
常见格式错误:
• 多余的逗号:{"key": "value",}
• 引号不匹配:"key: "value"
• 注释(JSON不支持):// this is wrong
在线验证工具:jsonlint.com
第二步:检查文件权限
查看权限:
ls -la ~/.openclaw/openclaw.json
正确权限:
-rw------- (600) 仅所有者可读写
修复权限:
chmod 600 ~/.openclaw/openclaw.json
chmod 700 ~/.openclaw
第三步:查看详细错误日志
启动详细模式:
openclaw gateway --verbose
日志位置:
~/.openclaw/logs/gateway.log
查看最近错误:
tail -n 50 ~/.openclaw/logs/gateway.log
第四步:运行健康检查
基础检查:
openclaw doctor
输出会显示:
• 配置文件是否可读
• 必需字段是否存在
• 依赖是否满足
• 端口是否可用
深度检查:
openclaw security audit --deep
第五步:常见故障和解决
故障1:端口被占用
错误:Error: listen EADDRINUSE :::18789
解决:
查找占用进程:lsof -i :18789
杀掉进程:kill -9 [PID]
或改用其他端口:"port": 19000
故障2:Token格式错误
错误:Invalid authentication token
解决:
检查token无换行符:cat -A ~/.openclaw/openclaw.json
重新生成token:openssl rand -hex 32
故障3:环境变量冲突
错误:配置被意外覆盖
解决:
查看环境变量:env | grep OPENCLAW
清除冲突变量:unset OPENCLAW_GATEWAY_PORT
故障4:配置文件损坏
错误:SyntaxError或Unexpected token
解决:
恢复备份:cp ~/.openclaw/openclaw.json.backup ~/.openclaw/openclaw.json
或使用模板:cp openclaw.json.template ~/.openclaw/openclaw.json
第六步:重置配置(最后手段)
备份当前配置:
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.broken
删除配置:
rm ~/.openclaw/openclaw.json
重新运行向导:
openclaw init
验证启动:
openclaw gateway --verbose
预防措施:
1. 定期备份配置:
crontab -e
添加:0 0 * * * cp ~/.openclaw/openclaw.json ~/.openclaw/backup/openclaw-$(date +%Y%m%d).json
2. 版本控制(无敏感信息的模板):
git init ~/.openclaw
git add openclaw.json.template
3. 修改前测试:
cp openclaw.json openclaw.json.test
# 修改test文件
openclaw gateway --config openclaw.json.test --dry-run
4. 使用配置验证脚本:
openclaw config validate
14 分钟阅读 · 发布于: 2026年2月5日 · 修改于: 2026年2月5日




评论
使用 GitHub 账号登录后即可评论