OpenClaw 的所有行为,都由一个文件控制:~/.openclaw/openclaw.json

很多新手在引导向导(openclaw onboard)完成后就停了,觉得能跑起来就够了。但如果你想真正发挥 OpenClaw 的能力——切换模型、限定谁能发消息、配置定时任务、调整 Heartbeat 频率——就必须读懂这个配置文件。

本文逐模块拆解 openclaw.json 的核心参数,每个参数都解释”是什么”和”为什么这么设”,并附上可直接使用的配置示例。

配置文件的位置和基本结构

配置文件路径:

~/.openclaw/openclaw.json

Docker 容器内路径:

/app/data/openclaw.json

整个 ~/.openclaw/ 目录的结构如下:

~/.openclaw/
├── openclaw.json       # 主配置文件(本文重点)
├── credentials/        # API 密钥(权限应设为 600)
│   ├── anthropic
│   └── openai
└── workspace/          # 工作区(Agent 的"家")
    ├── SOUL.md         # Agent 人格定义
    ├── USER.md         # 用户信息
    ├── HEARTBEAT.md    # 心跳任务清单
    ├── TOOLS.md        # 工具权限配置
    └── memory/         # 长期记忆文件

配置文件使用 JSON5 格式(兼容标准 JSON,但支持注释),有几条重要规则:

  • OpenClaw 对 Schema 严格校验——未知字段、类型错误、缺少必填项都会导致 Gateway 拒绝启动
  • 修改配置文件后,部分更改会热重载生效,但多数需要运行 openclaw gateway restart
  • 优先级顺序:环境变量 > 配置文件 > 默认值

三种修改配置的方式

在深入参数之前,先说清楚改配置的三种途径:

方式一:CLI 命令(推荐)
最安全的方式,自动校验语法,不会引入 JSON 格式错误:

# 读取配置
openclaw config get agents.defaults.model

# 设置配置
openclaw config set gateway.mode "local"

# 删除配置项
openclaw config unset channels.telegram.botToken

方式二:直接编辑 JSON 文件
用任何文本编辑器打开 ~/.openclaw/openclaw.json 直接编辑。注意确保 JSON 语法正确,编辑完后用 openclaw doctor --fix 验证。

方式三:控制面板(Config 选项卡)
打开浏览器访问 http://127.0.0.1:18789,进入 Config 选项卡,界面化修改,适合不熟悉 JSON 的用户。

模块一:gateway — 网关核心设置

Gateway 模块控制 OpenClaw 的核心进程行为,是最关键的配置区块。

{
  "gateway": {
    "mode": "local",          // 必填!local=仅本机访问,remote=允许外部访问
    "host": "127.0.0.1",      // 绑定地址,强烈建议保持 127.0.0.1
    "port": 18789,            // 监听端口,默认 18789
    "auth": {
      "mode": "token",        // 认证方式:token 或 password
      "token": "你的令牌"    // 登录控制面板的凭证
    }
  }
}

新手最常犯的错误:host 设为 0.0.0.0。这会把控制面板暴露在公网,是严重的安全漏洞。除非你明确知道自己在做什么,否则 host 永远保持 127.0.0.1

关于 gateway.mode:这是一个必填项,缺少它 Gateway 会拒绝启动并报错 gateway start blocked。个人单机使用设为 "local",服务器多用户部署设为 "remote"(同时必须配置严格的认证和防火墙)。

通过 CLI 快速设置:

openclaw config set gateway.mode "local"
openclaw config set gateway.host "127.0.0.1"

模块二:agents — Agent 和模型配置

这个模块定义 AI Agent 的基本行为,包括使用哪个模型、工作区在哪里、心跳频率等。

{
  "agents": {
    "defaults": {
      "workspace": "~/.openclaw/workspace",   // 工作区路径
      "model": {
        "primary": "anthropic/claude-sonnet-4-6",   // 主力模型
        "fallbacks": [                               // 备用模型(主力失败时自动切换)
          "openai/gpt-5.2",
          "deepseek/deepseek-chat"
        ]
      },
      "heartbeat": {
        "every": "30m",          // 心跳触发间隔(如 "30m"、"1h"、"900"秒)
        "isolatedSession": true, // 每次心跳使用独立会话(大幅降低 Token 消耗)
        "activeHours": "08:00-22:00"  // 仅在此时间段内触发心跳
      }
    }
  }
}

关于模型命名格式:格式为 "提供商/模型名称",例如:

  • anthropic/claude-sonnet-4-6(推荐日常使用,性价比最优)
  • anthropic/claude-opus-4-6(性能最强,成本较高)
  • openai/gpt-5.2
  • deepseek/deepseek-chat(成本最低,中文支持好)

关于 fallbacks(备用模型):强烈建议配置。当主力模型遇到限流(429错误)或服务不可用时,OpenClaw 会自动切换到备用模型继续工作,不会中断你的任务。

成本优化建议:不要把最贵的模型设为默认。推荐把 Sonnet 设为主力处理日常任务,只有在需要深度推理时才让 Opus 作为备用被调用。

模块三:channels — 通讯平台配置

这个模块控制 OpenClaw 连接哪些通讯平台,以及谁有权限给它发消息。

Telegram 配置示例

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "123456:ABC-你的BotToken",
      "dmPolicy": "pairing",    // pairing=配对验证 | allowlist=白名单 | open=开放
      "allowFrom": ["tg:你的用户ID"]  // 允许发消息的用户(allowlist 模式下)
    }
  }
}

WhatsApp 配置示例

{
  "channels": {
    "whatsapp": {
      "enabled": true,
      "dmPolicy": "pairing",
      "allowFrom": ["+8613800138000"],  // 允许的手机号(E.164 格式)
      "groupPolicy": "allowlist",        // 群组消息策略
      "ackReaction": {
        "emoji": "👀",                   // 收到消息时的自动回应表情
        "direct": true
      }
    }
  }
}

关于 dmPolicy(私信策略),这是最重要的安全参数之一:

  • "pairing"(推荐):第一次发消息需要配对验证,防止陌生人控制你的 Agent
  • "allowlist":只有 allowFrom 列表中的用户才能发消息,最严格
  • "open":任何人都可以发消息,仅在完全受控的私有环境中使用

通过 CLI 快速配置 Telegram:

openclaw config set channels.telegram.enabled true
openclaw config set channels.telegram.botToken "你的BotToken"
openclaw config set channels.telegram.dmPolicy "pairing"

模块四:models — 模型提供商配置

这个模块配置各个 AI 模型提供商的连接信息,包括 API Key 和自定义端点。

{
  "models": {
    "providers": {
      "anthropic": {
        "apiKey": "sk-ant-你的密钥"   // Anthropic API Key
      },
      "openai": {
        "apiKey": "sk-你的密钥"        // OpenAI API Key
      },
      "deepseek": {
        "apiKey": "sk-你的密钥"
      },
      "local-ollama": {               // 本地 Ollama 模型(API 费用为零)
        "baseUrl": "http://127.0.0.1:11434/v1",
        "apiKey": "ollama",
        "api": "openai-responses"
      }
    }
  }
}

安全建议:API Key 不要直接写在配置文件里,推荐用环境变量引用:

# 在 ~/.openclaw/openclaw.json 中使用环境变量
{
  "models": {
    "providers": {
      "anthropic": {
        "apiKey": "${ANTHROPIC_API_KEY}"
      }
    }
  }
}

然后在 shell 配置文件(~/.zshrc~/.bashrc)中设置:

export ANTHROPIC_API_KEY="sk-ant-你的密钥"

这样 API Key 不会出现在配置文件中,即使配置文件意外泄露,密钥也是安全的。

模块五:cron — 定时任务配置

这个模块控制定时任务的全局行为(具体任务通过 openclaw cron add 添加)。

{
  "cron": {
    "enabled": true,              // 是否启用定时任务
    "maxConcurrentRuns": 2,       // 同时执行的最大任务数
    "sessionRetention": "24h",    // 任务会话保留时间
    "runLog": {
      "maxBytes": "2mb",          // 日志文件最大大小
      "keepLines": 2000           // 保留的最大日志行数
    }
  }
}

常用 Cron 任务配置(通过 CLI 添加,不写在 JSON 文件里):

# 每天早上9点执行日报总结
openclaw cron add \
  --name "morning-brief" \
  --cron "0 9 * * *" \
  --message "总结我的邮件和今日日程,用中文回复"

# 每小时检查一次优先事项
openclaw cron add \
  --name "hourly-check" \
  --every 3600000 \
  --message "有什么需要我处理的优先事项吗?"

# 查看所有定时任务
openclaw cron list --all

完整的最小可用配置示例

以下是一份覆盖核心功能的最小配置,适合新手参考:

{
  "gateway": {
    "mode": "local",
    "host": "127.0.0.1",
    "port": 18789
  },
  "agents": {
    "defaults": {
      "workspace": "~/.openclaw/workspace",
      "model": {
        "primary": "anthropic/claude-sonnet-4-6",
        "fallbacks": ["deepseek/deepseek-chat"]
      },
      "heartbeat": {
        "every": "30m",
        "isolatedSession": true
      }
    }
  },
  "models": {
    "providers": {
      "anthropic": {
        "apiKey": "${ANTHROPIC_API_KEY}"
      },
      "deepseek": {
        "apiKey": "${DEEPSEEK_API_KEY}"
      }
    }
  },
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "${TELEGRAM_BOT_TOKEN}",
      "dmPolicy": "pairing"
    }
  },
  "cron": {
    "enabled": true,
    "maxConcurrentRuns": 2
  }
}

修改配置后的验证步骤

每次修改配置文件后,养成以下习惯:

# 第一步:验证配置语法和有效性
openclaw doctor --fix

# 第二步:重启 Gateway 使配置生效
openclaw gateway restart

# 第三步:确认运行状态正常
openclaw gateway status

# 第四步(定期执行):安全审计
openclaw security audit --deep

配置文件的权限安全

配置文件中包含 API Key、Bot Token 等敏感信息,务必设置正确的文件权限:

# 保护整个 .openclaw 目录(仅所有者可访问)
chmod 700 ~/.openclaw

# 保护主配置文件
chmod 600 ~/.openclaw/openclaw.json

# 保护 API 密钥目录
chmod 700 ~/.openclaw/credentials

运行以下命令检查配置文件中是否有明文 API Key(这些应该通过环境变量引用,而不是直接写在文件里):

grep -r "sk-" ~/.openclaw/openclaw.json

如果有输出,建议将 Key 移到环境变量中管理。

总结:新手需要重点关注的参数

如果你是第一次接触 OpenClaw 配置文件,只需要重点掌握这几个参数就够用了:

  • gateway.mode:必填,设为 "local"
  • gateway.host:必须是 "127.0.0.1",不要改
  • agents.defaults.model.primary:你的主力 AI 模型
  • agents.defaults.model.fallbacks:备用模型列表,至少配置一个
  • channels.*.dmPolicy:通讯平台的消息权限策略,建议用 "pairing"
  • agents.defaults.heartbeat.isolatedSession:设为 true 节省 Token

想查阅完整的配置参数参考,访问 OpenClaw官网中文版(通过浏览器翻译访问 openclaw.ai)或官方配置文档 docs.openclaw.ai/gateway/configuration

本文内容基于 OpenClaw 官方文档、moltfounders.com、lumadock.com、clawtank.dev 等公开资料整理,信息截至2026年3月28日。