OpenClaw 安装、配置教程:从零开始掌握 AI 网关设置
引言:配置即能力——理解 OpenClaw 的核心哲学
在 AI 智能体时代,配置不再仅仅是参数调整,而是能力定义的过程。OpenClaw 作为一款先进的开源 AI 网关平台,其配置系统是整个生态的基石。通过精细的配置,你可以将同一个 OpenClaw 实例转变为:
- 企业级智能客服:集成企业微信、Slack,支持多部门路由
- 个人数字分身:同时管理 WhatsApp、Telegram、iMessage 多平台消息
- 自动化工作流引擎:定时执行任务、处理文件、监控数据
- 安全沙箱环境:在完全隔离的容器中运行任意代码
本文将带你从零开始,全面掌握 OpenClaw 配置系统的每一个细节,无论你是初次接触的新手,还是需要进行高级调优的资深开发者。
第一部分:配置基础架构
1.1 配置文件位置与格式
文件路径:~/.openclaw/openclaw.json
格式特性:
- 使用 JSON5 格式,支持注释 (
//) 和尾随逗号 (,) - 可选配置机制:若文件不存在,系统将使用安全的默认值启动
- 自动备份:每次修改都会创建时间戳备份文件
目录结构示例:
~/.openclaw/
├── openclaw.json # 主配置文件
├── openclaw.json.bak.20260414-153100 # 自动备份
├── .env # 环境变量文件
├── workspace/ # 默认工作区
└── sessions/ # 会话存储
1.2 四种配置编辑方式详解
1.2.1 交互式向导(新手首选)
完整设置向导:
openclaw onboard
- 逐步引导完成所有核心配置
- 自动检测可用频道和模型
- 提供安全建议和最佳实践
快速配置向导:
openclaw configure
- 仅配置最常用选项
- 适合已有经验的用户快速调整
1.2.2 CLI 命令行(自动化友好)
读取配置:
# 获取单个值
openclaw config get agents.defaults.workspace
# 获取整个对象
openclaw config get channels.telegram
# 支持路径通配符
openclaw config get "agents.*.model"
设置配置:
# 设置简单值
openclaw config set agents.defaults.heartbeat.every "2h"
# 设置复杂对象
openclaw config set 'agents.defaults.model' '{"primary": "anthropic/claude-sonnet-4-5"}'
# 批量设置
openclaw config set \
agents.defaults.sandbox.mode "non-main" \
agents.defaults.sandbox.scope "agent"
删除配置:
# 删除单个键
openclaw config unset tools.web.search.apiKey
# 删除整个对象
openclaw config unset channels.signal
1.2.3 控制 UI(可视化操作)
访问地址:http://127.0.0.1:18789
双模式编辑:
- 表单模式:根据配置 Schema 自动生成友好表单,带验证提示
- Raw JSON 模式:直接编辑原始 JSON5,适合高级用户
实时预览:
- 修改后立即显示效果预览
- 错误高亮和修复建议
- 配置历史版本对比
1.2.4 直接编辑(传统高效)
编辑器推荐:
- VS Code + JSON5 插件
- Vim + json5.vim
- JetBrains IDE 内置支持
热重载优势:
- 保存文件后自动应用更改
- 无需重启网关服务
- 错误时保留上次有效配置
第二部分:严格验证与安全机制
2.1 验证机制详解
严格模式原则:
- 未知键拒绝:任何不在 Schema 中的字段都会导致启动失败
- 类型验证:确保每个字段的数据类型正确
- 值范围检查:如端口号必须在 1-65535 范围内
唯一例外:
{
"$schema": "https://openclaw.ai/schema/v2.json",
// 其他配置...
}
$schema 字段用于编辑器智能提示,不会被验证。
2.2 验证失败处理流程
失败表现:
- 网关进程立即终止
- 仅允许诊断命令:
openclaw doctor、openclaw logs等
修复步骤:
# 查看详细错误信息
openclaw doctor
# 自动修复常见错误
openclaw doctor --fix
# 强制确认修复(无交互)
openclaw doctor --yes
常见错误类型:
- 模型名称格式错误
- 频道令牌无效
- 路径权限不足
- 端口已被占用
第三部分:核心配置任务深度解析
3.1 消息频道配置(多平台集成)
3.1.1 通用频道配置结构
{
channels: {
"<provider>": {
"enabled": true,
"botToken": "your-token-here",
"dmPolicy": "pairing",
"allowFrom": ["allowed-identifiers"],
"groupPolicy": "allowlist",
"groupAllowFrom": ["allowed-group-ids"],
"groups": {
"*": { "requireMention": true }
}
}
}
}
3.1.2 各平台特殊配置
WhatsApp:
{
channels: {
whatsapp: {
phoneNumber: "+15555550123",
businessAccountId: "123456789012345",
webhookVerifyToken: "your-verify-token"
}
}
}
Telegram:
{
channels: {
telegram: {
botToken: "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11",
allowedUpdates: ["message", "edited_message", "callback_query"]
}
}
}
企业微信:
{
channels: {
wecom: {
corpId: "ww1234567890abcdef",
agentId: 1000001,
secret: "your-app-secret",
token: "your-callback-token",
aesKey: "your-encoding-aes-key"
}
}
}
3.2 模型配置与智能路由
3.2.1 多模型策略配置
{
agents: {
defaults: {
model: {
primary: "anthropic/claude-sonnet-4-5",
fallbacks: [
"openai/gpt-5.2",
"mistral/mixtral-8x22b-instruct"
],
routing: {
"image-analysis": "openai/gpt-5.2-vision",
"code-generation": "anthropic/claude-opus-4-6"
}
},
models: {
"anthropic/claude-sonnet-4-5": {
alias: "Sonnet",
temperature: 0.7,
maxTokens: 4096
},
"openai/gpt-5.2": {
alias: "GPT",
temperature: 0.8,
maxTokens: 8192
}
}
}
}
}
3.2.2 模型提供商配置
{
models: {
providers: {
anthropic: {
apiKey: { source: "env", id: "ANTHROPIC_API_KEY" },
baseUrl: "https://api.anthropic.com"
},
openai: {
apiKey: { source: "env", id: "OPENAI_API_KEY" },
organization: "org-your-org-id"
},
openrouter: {
apiKey: { source: "env", id: "OPENROUTER_API_KEY" },
defaultHeaders: {
"HTTP-Referer": "https://your-app.com",
"X-Title": "Your App Name"
}
}
}
}
}
3.3 访问控制与安全策略
3.3.1 私信策略详解
四种 DM 策略:
pairing:首次对话需在命令行确认配对(最安全)allowlist:仅允许列表中的用户发送消息open:任何人都可以发送消息(不推荐生产环境)disabled:完全禁用私信功能
配置示例:
{
channels: {
telegram: {
dmPolicy: "pairing",
allowFrom: ["tg:123456789", "tg:987654321"]
},
whatsapp: {
dmPolicy: "allowlist",
allowFrom: ["+15555550123", "+15555550124"]
}
}
}
3.3.2 群组安全配置
{
channels: {
whatsapp: {
groupPolicy: "allowlist",
groupAllowFrom: ["123456789-12345@g.us", "987654321-98765@g.us"],
groups: {
"*": {
requireMention: true,
autoLeave: false
},
"123456789-12345@g.us": {
requireMention: false,
autoLeave: true
}
}
}
}
}
3.4 会话管理高级配置
3.4.1 会话作用域策略
dmScope 选项详解:
main:所有用户共享同一个会话(不推荐)per-peer:每个用户独立会话,跨频道共享per-channel-peer:每个用户在每个频道有独立会话(推荐)per-account-channel-peer:考虑多账号情况的最细粒度
配置示例:
{
session: {
dmScope: "per-channel-peer",
threadBindings: {
enabled: true,
idleHours: 24,
maxAgeHours: 168
},
reset: {
mode: "hybrid",
atHour: 4,
idleMinutes: 120,
dailyReset: true
},
persistence: {
enabled: true,
maxSessions: 1000,
cleanupInterval: "1h"
}
}
}
3.4.2 会话持久化与清理
{
session: {
storage: {
type: "file",
path: "~/.openclaw/sessions",
encryption: {
enabled: true,
keySource: "env",
keyId: "SESSION_ENCRYPTION_KEY"
}
},
cleanup: {
idleTimeout: "7d",
maxAge: "30d",
batchSize: 100
}
}
}
3.5 沙箱安全执行环境
3.5.1 沙箱模式配置
{
agents: {
defaults: {
sandbox: {
mode: "non-main",
scope: "agent",
image: "openclaw-sandbox:bookworm-slim",
network: "none",
resources: {
memory: "2g",
cpu: "1.0",
processes: 100,
fileDescriptors: 1024
},
mounts: {
"/workspace": { type: "bind", source: "~/.openclaw/workspace", readOnly: false },
"/tmp": { type: "tmpfs", size: "512m" }
},
capabilities: {
drop: ["ALL"],
add: []
}
}
}
}
}
3.5.2 浏览器沙箱专用配置
{
agents: {
defaults: {
sandbox: {
image: "openclaw-sandbox:browser",
network: "bridge",
environment: {
"DISPLAY": ":99",
"NO_VNC_PORT": "6080"
},
ports: {
"6080/tcp": "6080"
},
volumes: {
"/dev/shm": { type: "tmpfs", size: "2g" }
}
}
}
}
}
3.6 心跳与保活机制
3.6.1 心跳配置详解
{
agents: {
defaults: {
heartbeat: {
every: "30m",
target: "last",
directPolicy: "allow",
message: "🔄 Heartbeat check",
timeout: "5s",
retryCount: 3,
backoff: "exponential"
}
}
}
}
target 选项:
last:发送到最近活跃的频道whatsapp/telegram/discord:指定特定频道none:禁用心跳消息(仅后台保活)
3.7 定时任务与自动化
3.7.1 Cron 任务配置
{
cron: {
enabled: true,
timezone: "Asia/Shanghai",
maxConcurrentRuns: 2,
sessionRetention: "24h",
runLog: {
maxBytes: "2mb",
keepLines: 2000,
level: "info"
},
jobs: [
{
name: "daily-summary",
schedule: "0 8 * * *",
agentId: "main",
command: "/skills/daily-summary/run",
timeout: "10m"
},
{
name: "data-backup",
schedule: "0 2 * * *",
agentId: "backup",
command: "backup --all --compress",
timeout: "1h"
}
]
}
}
3.7.2 Webhook 集成配置
{
hooks: {
enabled: true,
token: { source: "env", id: "WEBHOOK_SECRET_TOKEN" },
path: "/hooks",
defaultSessionKey: "hook:ingress",
allowRequestSessionKey: false,
allowedSessionKeyPrefixes: ["hook:", "webhook:"],
security: {
rateLimit: {
requests: 100,
window: "1m"
},
ipWhitelist: ["192.168.1.0/24", "10.0.0.0/8"]
},
mappings: [
{
match: {
path: "gmail-webhook",
headers: { "X-Gmail-Event": "new-email" }
},
action: "agent",
agentId: "email-processor",
deliver: true,
transform: {
"session.input": "body.email.subject + ' ' + body.email.snippet"
}
}
]
}
}
3.8 多 Agent 架构与路由
3.8.1 多 Agent 配置
{
agents: {
list: [
{
id: "personal",
default: true,
workspace: "~/.openclaw/workspace-personal",
model: { primary: "anthropic/claude-sonnet-4-5" },
skills: ["personal-assistant", "calendar-manager"]
},
{
id: "work",
workspace: "~/.openclaw/workspace-work",
model: { primary: "openai/gpt-5.2" },
skills: ["project-manager", "code-reviewer", "meeting-summarizer"]
},
{
id: "family",
workspace: "~/.openclaw/workspace-family",
model: { primary: "mistral/mixtral-8x22b-instruct" },
skills: ["recipe-suggester", "homework-helper", "shopping-list"]
}
]
},
bindings: [
{
agentId: "personal",
match: {
channel: ["whatsapp", "telegram"],
accountId: "personal-phone"
}
},
{
agentId: "work",
match: {
channel: ["wecom", "slack"],
accountId: "company-account"
}
},
{
agentId: "family",
match: {
channel: "whatsapp",
peerId: ["+15555550101", "+15555550102"]
}
}
]
}
3.8.2 动态路由规则
{
routing: {
rules: [
{
name: "urgent-messages",
condition: {
"message.text": { "$regex": "(?i)\\b(urgent|emergency|asap)\\b" }
},
action: { "agentId": "priority-handler", "priority": "high" }
},
{
name: "work-hours-only",
condition: {
"time.hour": { "$gte": 9, "$lte": 18 },
"time.weekday": { "$in": [1, 2, 3, 4, 5] }
},
action: { "agentId": "work", "fallback": "personal" }
}
]
}
}
第四部分:配置模块化与维护
4.1 $include 模块化配置
4.1.1 基础包含语法
// ~/.openclaw/openclaw.json
{
gateway: { port: 18789 },
agents: { $include: "./agents.json5" },
channels: { $include: "./channels.json5" },
models: { $include: "./models.json5" },
broadcast: {
$include: ["./clients/team-a.json5", "./clients/team-b.json5"]
}
}
4.1.2 高级包含策略
条件包含:
{
"development": { $include: "./dev-config.json5" },
"production": { $include: "./prod-config.json5" },
"$conditional": {
"if": { "$env": "NODE_ENV", "$eq": "production" },
"then": { "$ref": "production" },
"else": { "$ref": "development" }
}
}
循环包含:
{
"channels": {
"$foreach": {
"in": ["whatsapp", "telegram", "discord"],
"as": "channel",
"template": {
"${channel}": {
"enabled": true,
"dmPolicy": "pairing"
}
}
}
}
}
4.2 环境变量与密钥管理
4.2.1 多层环境变量加载
加载优先级:
- 父进程环境变量(最高优先级)
- 当前工作目录的
.env文件 ~/.openclaw/.env全局文件(最低优先级)
.env 文件示例:
# ~/.openclaw/.env
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
WEBHOOK_SECRET_TOKEN=your-webhook-secret-here
SESSION_ENCRYPTION_KEY=32-byte-encryption-key-here
4.2.2 SecretRef 安全引用
多种密钥源支持:
{
"models": {
"providers": {
"anthropic": {
"apiKey": {
"source": "env",
"provider": "default",
"id": "ANTHROPIC_API_KEY"
}
},
"custom-api": {
"apiKey": {
"source": "file",
"provider": "vault",
"id": "/secrets/custom-api-key.txt"
}
},
"legacy-system": {
"apiKey": {
"source": "exec",
"provider": "aws",
"id": "aws secretsmanager get-secret-value --secret-id legacy-api-key --query SecretString --output text"
}
}
}
}
}
4.2.3 变量替换与拼接
高级替换语法:
{
"gateway": {
"auth": {
"token": "${OPENCLAW_GATEWAY_TOKEN:-default-token}",
"issuer": "${DOMAIN_NAME:-localhost}"
}
},
"models": {
"providers": {
"custom": {
"baseUrl": "${API_BASE_URL:-https://api.example.com}/v${API_VERSION:-1}"
}
}
},
"channels": {
"webhook": {
"url": "https://${DOMAIN_NAME}/webhooks/${WEBHOOK_PATH}"
}
}
}
第五部分:热重载与动态配置
5.1 热重载机制详解
5.1.1 重载模式配置
{
gateway: {
reload: {
mode: "hybrid",
debounceMs: 300,
watchConfig: true,
watchIncludes: true,
maxDepth: 10
}
}
}
重载模式说明:
disabled:完全禁用热重载config-only:仅监控主配置文件includes:监控主配置和所有包含文件hybrid:智能监控,自动检测依赖关系(推荐)
5.1.2 热应用 vs 需重启对照表
| 配置类别 | 热应用 | 需重启 |
|---|---|---|
| 消息频道配置 | ✅ | ❌ |
| 模型配置 | ✅ | ❌ |
| 访问控制策略 | ✅ | ❌ |
| 会话管理设置 | ✅ | ❌ |
| 沙箱配置 | ❌ | ✅ |
| 网关端口 | ❌ | ✅ |
| 认证令牌 | ✅ | ❌ |
| 定时任务 | ✅ | ❌ |
| Webhook 配置 | ✅ | ❌ |
| 多 Agent 路由 | ✅ | ❌ |
5.2 远程配置管理
5.2.1 GitOps 配置同步
{
gateway: {
remote: {
enabled: true,
url: "https://github.com/your-org/openclaw-config.git",
branch: "main",
path: "production/config.json5",
interval: "5m",
token: { source: "env", id: "GITHUB_TOKEN" },
autoReload: true
}
}
}
5.2.2 配置版本控制
{
config: {
version: "2.1.0",
metadata: {
author: "admin@company.com",
description: "Production configuration for Q2 2026",
lastUpdated: "2026-04-14T15:31:00Z"
},
changelog: [
{
version: "2.1.0",
date: "2026-04-14",
changes: ["Added WhatsApp Business support", "Updated model routing rules"]
}
]
}
}
第六部分:最佳实践与故障排除
6.1 配置最佳实践清单
安全优先原则:
- ✅ 始终使用
pairing策略作为默认 DM 策略 - ✅ 敏感信息使用 SecretRef,绝不硬编码
- ✅ 沙箱默认启用,网络访问最小化
- ✅ 定期轮换 API 密钥和认证令牌
性能优化建议:
- ✅ 合理设置会话清理策略,避免存储膨胀
- ✅ 使用模型缓存和浏览器二进制复用
- ✅ 限制并发任务数量,防止资源耗尽
- ✅ 配置适当的超时和重试策略
可维护性策略:
- ✅ 使用
$include拆分大型配置 - ✅ 添加详细的注释和文档
- ✅ 使用版本控制管理配置变更
- ✅ 定期运行
openclaw doctor检查健康状态
6.2 常见问题排查
6.2.1 配置验证错误
症状:网关无法启动,报配置错误
解决方案:
# 详细诊断
openclaw doctor --verbose
# 自动修复
openclaw doctor --fix --yes
# 临时回退到上一个工作配置
cp ~/.openclaw/openclaw.json.bak.* ~/.openclaw/openclaw.json
6.2.2 频道连接失败
症状:特定频道无法接收或发送消息
解决方案:
# 检查频道状态
openclaw channels status
# 重新配置特定频道
openclaw configure --channel telegram
# 查看详细日志
openclaw logs --channel telegram --tail 100
6.2.3 沙箱执行问题
症状:工具执行失败或超时
解决方案:
# 检查沙箱状态
openclaw sandbox status
# 增加资源限制
openclaw config set agents.defaults.sandbox.resources.memory "4g"
# 启用调试模式
openclaw config set agents.defaults.sandbox.debug true
结语:配置的艺术
OpenClaw 的配置系统体现了现代软件工程的核心理念:安全性、灵活性、可维护性的完美平衡。通过本文的全面指南,你应该已经掌握了从基础设置到高级调优的所有技能。
记住,优秀的配置不是一蹴而就的,而是通过渐进增强的方式逐步完善的:
- 从最小配置开始:先让系统运行起来
- 逐步添加功能:按需配置频道、模型、安全策略
- 持续优化调整:根据实际使用情况进行性能调优
- 定期安全审计:确保配置始终符合安全最佳实践
核心哲学:配置是通往强大 AI 助手的大门。从简单开始,逐步扩展,让你的 OpenClaw 既安全又高效地运行。
官方资源:
- 完整配置参考手册:https://docs.openclaw.ai/config/reference
- 配置示例库:https://github.com/openclaw/config-examples
- 社区支持论坛:https://community.openclaw.ai
现在,你已经具备了成为 OpenClaw 配置专家的所有知识。开始构建你的 AI 网关吧!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)