Skip to content

OpenClaw 配置

官方文档:https://docs.openclaw.ai/zh-CN

OpenClaw 属于典型外接网关场景。分组、Base URL、User-Agent、模型填写的统一规则,建议先看 外接兼容与接入说明

OpenClaw Gateway 是 AI 代理网关,支持通过飞书、Telegram、Discord 等渠道接入 AI 模型。启动后默认 Web UI 地址:http://127.0.0.1:18789/


步骤一:安装

bash
npm install -g openclaw@latest

步骤二:初始化引导

bash
openclaw onboard --install-daemon
  1. 选择快速开始(QuickStart,确认 Yes)

  2. 跳过供应商选择,选择全模型

  3. 保持默认模型,继续下一步(此步骤主要用于生成配置文件)


步骤三:配置通知渠道

从以下渠道中选择一个接入:

渠道说明
飞书需安装飞书插件,步骤较多,查看详细配置 →
TelegramToken 获取最为简便,参考官方文档
Discord参考官方文档

步骤四:配置 Skills

根据需要选择安装 Skills。

Skills 无内置审核机制,来源不明的 Skills 存在安全风险,请仅安装可信来源的内容。


步骤五:配置 Hooks

建议勾选 session-memory(按空格选中):


步骤六:配置 API 参数

推荐使用 CC Switch 配置查看 CC Switch 统一配置 →

无论是否通过 CC Switch,只要 OpenClaw 作为外接客户端调用,就要注意以下几点:

  • 同一个 OpenClaw 可以同时接 Claude 和 Codex
  • 不同 provider 要分别选择对应分组,并分别填写对应 User-Agent
  • 不能把 Claude 的 UA 直接复用到 Codex provider 上

如果你是第一次接 OpenClaw,建议先按这个顺序排:

  1. 先在 CC Switch 统一配置 中确认 Key 与分组
  2. 再看 外接兼容与接入说明 确认 Base URL、协议和模型
  3. 最后回到本页填写 OpenClaw provider 细节

如果配置的是 Claude provider

  • API 端点https://nekocode.ai
  • API 协议Anthropic Messages
  • 令牌分组:选择 Claude 外接可用分组(max 外接 / 特渠 / kiro
  • 必须添加 Claude 对应 Headers
json
"headers": {
  "Authorization": "Bearer sk-xxx",
  "User-Agent": "claude-cli/2.0.76 (external, cli)"
}

如果配置的是 Codex provider

  • API 端点https://nekocode.ai/v1
  • API 协议OpenAI Responses
  • 令牌分组:选择 Codex 对应分组 codex / codex-pro
  • 必须添加 Codex 对应 Headers
json
"headers": {
  "Authorization": "Bearer sk-xxx",
  "User-Agent": "codex_cli_rs/0.77.0 (Windows 10.0.26100; x86_64) WindowsTerminal"
}

无论是 Claude provider 还是 Codex provider,缺少各自对应 UA 时,都可能报 403 block403 Forbidden。配置模型时,从模型广场复制模型 ID 填入即可。

外接场景的分组和 UA 规则,完整说明见 外接调用 User-Agent 说明

如果你还要接 JetBrains、Trae 等其他外接客户端,可统一从 外接兼容与接入说明 进入,再按客户端页面分别落地。


完整配置 JSON 参考

展开查看
json
{
  "agents": {
    "defaults": {
      "compaction": {
        "mode": "safeguard"
      },
      "maxConcurrent": 4,
      "model": {
        "primary": "nekocode/gpt-5"
      },
      "subagents": {
        "maxConcurrent": 8
      },
      "workspace": "C:\\Users\\<USERNAME>\\.openclaw\\workspace"
    },
    "list": [
      {
        "agentDir": "C:\\Users\\<USERNAME>\\.openclaw\\agents\\main\\agent",
        "id": "main",
        "name": "main",
        "workspace": "C:\\Users\\<USERNAME>\\.openclaw\\workspace"
      }
    ]
  },
  "channels": {
    "feishu": {
      "appId": "<YOUR_FEISHU_APP_ID>",
      "appSecret": "<YOUR_FEISHU_APP_SECRET>",
      "domain": "feishu",
      "enabled": true,
      "groupPolicy": "disabled"
    }
  },
  "commands": {
    "native": "auto",
    "nativeSkills": "auto",
    "ownerDisplay": "raw",
    "restart": true
  },
  "gateway": {
    "auth": {
      "mode": "token",
      "token": "<YOUR_GATEWAY_TOKEN>"
    },
    "bind": "loopback",
    "mode": "local",
    "nodes": {
      "denyCommands": [
        "camera.snap",
        "camera.clip",
        "screen.record",
        "calendar.add",
        "contacts.add",
        "reminders.add"
      ]
    },
    "port": 18789,
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    }
  },
  "hooks": {
    "internal": {
      "enabled": true,
      "entries": {
        "session-memory": {
          "enabled": true
        }
      }
    }
  },
  "messages": {
    "ackReactionScope": "group-mentions"
  },
  "models": {
    "mode": "merge",
    "providers": {
      "nekocode-claude": {
        "api": "anthropic-messages",
        "apiKey": "sk-xxx",
        "baseUrl": "https://nekocode.ai",
        "headers": {
          "Authorization": "Bearer sk-xxx",
          "User-Agent": "claude-cli/2.0.76 (external, cli)"
        },
        "models": [
          {
            "contextWindow": 200000,
            "cost": { "cacheRead": 0, "cacheWrite": 0, "input": 0, "output": 0 },
            "id": "claude-opus-4-5-20251101",
            "maxTokens": 32000,
            "name": "claude-opus-4-5"
          },
          { "id": "claude-haiku-4-5-20251001", "name": "claude-haiku-4-5" },
          { "id": "claude-opus-4-6", "name": "claude-opus-4-6" },
          { "id": "claude-sonnet-4-5-20250929", "name": "claude-sonnet-4-5" },
          { "id": "claude-sonnet-4-6", "name": "claude-sonnet-4-6" }
        ]
      },
      "nekocode": {
        "api": "openai-responses",
        "apiKey": "sk-xxx",
        "baseUrl": "https://nekocode.ai/v1",
        "headers": {
          "Authorization": "Bearer sk-xxx",
          "User-Agent": "codex_cli_rs/0.77.0 (Windows 10.0.26100; x86_64) WindowsTerminal"
        },
        "models": [
          {
            "contextWindow": 200000,
            "cost": { "cacheRead": 0, "cacheWrite": 0, "input": 0, "output": 0 },
            "id": "gpt-5",
            "maxTokens": 32000,
            "name": "gpt-5"
          },
          { "id": "gpt-5.3-codex", "name": "gpt-5.3-codex" },
          { "id": "gpt-5.2-codex", "name": "gpt-5.2-codex" },
          { "id": "gpt-5.2", "name": "gpt-5.2" }
        ]
      }
    }
  },
  "plugins": {
    "entries": {
      "feishu": { "enabled": true }
    }
  },
  "session": {
    "dmScope": "per-channel-peer"
  },
  "tools": {
    "profile": "coding"
  }
}