Skip to content

附录 B:配置文件 openclaw.json 核心字段参考

openclaw.json 是 Gateway 的主配置文件,默认位于 ~/.openclaw/openclaw.json


顶层结构

json
{
  "agents": { ... },
  "bindings": [ ... ],
  "channels": { ... },
  "hooks": { ... },
  "heartbeat": { ... },
  "env": { ... }
}

agents

json
{
  "agents": {
    "list": [
      {
        "id": "main",
        "workspace": "~/.openclaw/workspace",
        "model": {
          "primary": "anthropic/claude-sonnet-4-6",
          "fallback": "openai/gpt-4o"
        },
        "auth": "default",
        "tools": {
          "profile": "coding",
          "allow": ["browser"],
          "deny": ["messaging"]
        },
        "sandbox": {
          "mode": "non-main"
        },
        "env": {
          "MY_VAR": "value"
        }
      }
    ],
    "defaults": "main"
  }
}
字段类型说明
idstringAgent 唯一标识符(必填)
workspacestringWorkspace 目录路径(必填)
model.primarystring主模型,格式 provider/model-id
model.fallbackstring主模型不可用时的备用模型
authstring使用哪套 Auth 配置(对应 auths 字段)
tools.profilestring工具画像:minimal / coding / full
tools.allowarray在 profile 基础上额外启用的工具
tools.denyarray在 profile 基础上额外禁用的工具
sandbox.modestring沙箱模式:off / non-main / all
envobjectAgent 专属环境变量
agents.defaultsstring没有匹配 binding 时使用的默认 Agent ID

bindings

json
{
  "bindings": [
    {
      "channel": "telegram",
      "agentId": "work"
    },
    {
      "channel": "whatsapp",
      "accountId": "wa-personal",
      "agentId": "life"
    },
    {
      "channel": "telegram",
      "senderId": "123456789",
      "agentId": "vip"
    }
  ]
}
字段类型说明
channelstring渠道名称(必填)
agentIdstring目标 Agent ID(必填)
accountIdstring渠道账号 ID(同渠道多账号时区分)
senderIdstring精确匹配某个发送者 ID(优先级最高)
guildIdstringDiscord 服务器 ID
teamIdstringSlack 工作区 ID

路由优先级(高到低):senderId > 父级 peer > guildId+role > guildId > teamId > accountId > channel > 默认 Agent


channels

各渠道的连接配置,以下为常用渠道示例:

json
{
  "channels": {
    "telegram": {
      "token": "your-bot-token"
    },
    "whatsapp": {
      "allowFrom": ["+8613800138000", "+8613900139000"]
    },
    "discord": {
      "token": "your-discord-token",
      "guildId": "your-guild-id"
    },
    "slack": {
      "botToken": "xoxb-...",
      "signingSecret": "..."
    },
    "web": {
      "enabled": true,
      "port": 18788
    }
  }
}

hooks(Webhook)

json
{
  "hooks": {
    "enabled": true,
    "token": "your-secret-token",
    "allowedAgentIds": ["main", "assistant"],
    "mappings": {
      "github-pr": {
        "kind": "agentTurn",
        "message": "GitHub 有新的 PR 需要 review",
        "channel": "telegram",
        "agentId": "work"
      }
    }
  }
}
字段类型说明
enabledboolean是否启用 Webhook 端点
tokenstring认证 Token(必填)
allowedAgentIdsarray允许通过 Webhook 触发的 Agent ID 列表
mappingsobject自定义路径到处理逻辑的映射
mappings[name].kindstring处理类型:agentTurn(隔离会话)/ systemEvent(注入心跳队列)
mappings[name].messageTemplatestring支持 替换 payload 字段

heartbeat

json
{
  "heartbeat": {
    "intervalMinutes": 30
  }
}
字段类型默认值说明
intervalMinutesnumber30心跳间隔(分钟)

env

Gateway 全局环境变量,所有 Agent 均可访问:

json
{
  "env": {
    "HA_TOKEN": "your-home-assistant-token",
    "HA_URL": "http://homeassistant.local:8123"
  }
}

Agent 级别的 env 字段仅该 Agent 可见,会覆盖同名的全局 env


工具画像(profile)速查

Profile包含工具组
minimalruntime(只读)、memory、sessions
codingruntime(读写)、fs、web、exec、memory、sessions
full所有工具组,包含 browser、messaging、nodes、automation

沙箱模式(sandbox.mode)速查

Mode行为
off不使用沙箱,直接在宿主机执行
non-main非主会话的任务在 Docker 沙箱里运行
all所有任务(包括主会话)在 Docker 沙箱里运行

基于 CC BY-NC-SA 4.0 许可证发布