> ## Documentation Index
> Fetch the complete documentation index at: https://docs.laozhang.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenClaw 接入老张API：自定义 provider 配置 GPT 与 Claude

> 在 OpenClaw 中把老张API添加为自定义 provider：用向导几分钟跑通，或在 openclaw.json 里同时接入 GPT 与 Claude，并处理上下文压缩、doctor 和网关报错。

GPT 按 OpenAI 格式接入，Claude、DeepSeek、GLM 按 Anthropic 格式接入，两个 provider 分别用 `default` 和 `Claude Code` 分组的令牌，可以随时切换模型。

| 项目 | 内容 |
| - | - |
| 入口 | `openclaw onboard` 选 Custom provider，或编辑 `~/.openclaw/openclaw.json` |
| OpenAI 格式地址 | `https://api.laozhang.ai/v1` |
| Anthropic 格式地址 | `https://api.laozhang.ai` |
| 令牌 | OpenAI 格式用 `default` 分组，Anthropic 格式用 `Claude Code` 分组，计费模式都选按量优先 |
| 推荐模型 | `gpt-6.1-sol`、`claude-sonnet-5-5`、`deepseek-v4-pro` |
| Node.js | 24.x 需 24.16.0 及以上，或 26.1.0 及以上 |
| 最后核对 | 2026 年 11 月 4 日，OpenClaw 2026.10.10 |

## 准备密钥

在[令牌管理](https://api2.laozhang.ai/token)创建令牌，计费模式选按量优先。两种格式要用不同分组的令牌：

* `default` 分组：给 OpenAI 格式（GPT）用，写入 `LAOZHANG_API_KEY`。
* `Claude Code` 分组：给 Anthropic 格式（Claude、DeepSeek、GLM）用，写入 `LAOZHANG_CLAUDE_API_KEY`。只用向导接入 GPT 时，不需要这个令牌。

然后把密钥写进环境变量，下文的命令和配置都从这里读取：

```bash theme={null}
echo 'export LAOZHANG_API_KEY="default 分组的老张API密钥"' >> ~/.zshrc
echo 'export LAOZHANG_CLAUDE_API_KEY="Claude Code 分组的老张API密钥"' >> ~/.zshrc
source ~/.zshrc
```

使用 bash 时把 `~/.zshrc` 换成 `~/.bashrc`。

## 安装 OpenClaw

OpenClaw 要求 Node.js 24.16.0 及以上的 24.x，或 26.1.0 及以上，官方推荐 Node 26。用安装脚本时，缺少 Node.js 会自动安装：

```bash theme={null}
curl -fsSL https://openclaw.ai/install.sh | bash
```

脚本装完会接着启动配置向导。想先跳过向导，改用：

```bash theme={null}
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
```

已经装好合适版本的 Node.js 时，也可以用 npm 安装，再启动向导：

```bash theme={null}
npm install -g openclaw@latest --allow-scripts=openclaw
openclaw onboard --install-daemon
```

* npm 11.15 及更早版本不认识 `--allow-scripts`，去掉这个参数即可。
* `--install-daemon` 会把网关装成后台服务，网关默认监听 18789 端口。
* macOS 也可以从 [GitHub Releases](https://github.com/openclaw/openclaw/releases) 下载桌面版 DMG。

## 用向导接入老张API

只用 GPT 模型时，用向导最快。

**1. 选择 Custom provider**

运行 `openclaw onboard`，到选择模型服务商的步骤时选 **Custom provider**，兼容类型选 OpenAI，然后填写：

* **Base URL**：`https://api.laozhang.ai/v1`
* **API Key**：老张API密钥
* **Provider ID**：`laozhang`

**2. 或者用一条命令完成**

不想逐步回答时，用非交互模式。密钥从环境变量读取，不会以明文留在命令历史里：

```bash theme={null}
openclaw onboard --non-interactive --accept-risk \
  --auth-choice custom-api-key \
  --custom-base-url "https://api.laozhang.ai/v1" \
  --custom-api-key "$LAOZHANG_API_KEY" \
  --custom-provider-id laozhang \
  --custom-compatibility openai \
  --custom-model-id gpt-6.1-sol
```

不写 `--custom-model-id` 时，OpenClaw 会从 `/v1/models` 读取老张API的全部模型，列表会很长，建议只填要用的模型。

**3. 确认模型可用**

```bash theme={null}
openclaw models list --provider laozhang
openclaw models status
```

列表里出现 `gpt-6.1-sol`，说明 provider 已经添加。之后要修改向导里的设置，运行 `openclaw configure`。

## 在配置文件中同时接入 GPT 与 Claude

Claude、DeepSeek、GLM 按 Anthropic 格式接入，需要单独一个 `anthropic-messages` 类型的 provider，并使用 `Claude Code` 分组的令牌。这种组合用配置文件写最清楚。

**1. 找到配置文件**

```bash theme={null}
openclaw config file
```

默认路径是 `~/.openclaw/openclaw.json`，格式为 JSON5，可以写注释和尾逗号。

**2. 写入两个 provider**

把下面的 `models` 和 `agents` 合并进现有配置，不要删除其他字段：

```json5 theme={null}
{
  models: {
    providers: {
      // OpenAI 格式：GPT 模型
      laozhang: {
        baseUrl: "https://api.laozhang.ai/v1",
        apiKey: "${LAOZHANG_API_KEY}",
        api: "openai-completions",
        models: [
          {
            id: "gpt-6.1-sol",
            name: "GPT-6.1 Sol",
            reasoning: true,
            input: ["text", "image"],
            // 输入超过 272K tokens 的请求按长上下文价计费，这里按标准档设置
            contextWindow: 272000,
            maxTokens: 32000,
            compat: { supportsUsageInStreaming: true },
          },
        ],
      },
      // Anthropic 格式：Claude、DeepSeek、GLM，地址不带 /v1，用 Claude Code 分组的令牌
      "laozhang-anthropic": {
        baseUrl: "https://api.laozhang.ai",
        apiKey: "${LAOZHANG_CLAUDE_API_KEY}",
        api: "anthropic-messages",
        models: [
          {
            id: "claude-sonnet-5-5",
            name: "Claude Sonnet 5.5",
            reasoning: true,
            input: ["text", "image"],
            contextWindow: 1000000,
            maxTokens: 32000,
          },
          {
            id: "deepseek-v4-pro",
            name: "DeepSeek V4 Pro",
            reasoning: true,
            input: ["text"],
            // 按模型实际上下文长度填写
            contextWindow: 128000,
            maxTokens: 32000,
          },
          {
            id: "glm-5.2",
            name: "GLM-5.2",
            reasoning: true,
            input: ["text"],
            // 按模型实际上下文长度填写
            contextWindow: 128000,
            maxTokens: 32000,
          },
        ],
      },
    },
  },
  agents: {
    defaults: {
      model: { primary: "laozhang/gpt-6.1-sol" },
    },
  },
}
```

`apiKey` 里的 `${LAOZHANG_API_KEY}` 和 `${LAOZHANG_CLAUDE_API_KEY}` 会替换成同名环境变量，配置文件里不出现密钥原文。

**3. 检查配置并设置默认模型**

```bash theme={null}
openclaw config validate
openclaw models set laozhang/gpt-6.1-sol
openclaw models status
```

模型引用的写法是「provider ID/模型 ID」，例如 `laozhang-anthropic/claude-sonnet-5-5`。修改 provider、模型列表和默认模型后，OpenClaw 会自动重新加载配置，不需要重启网关。

**4. 跑一轮测试**

用命令行让模型调用一次工具：

```bash theme={null}
openclaw agent --local --model laozhang/gpt-6.1-sol -m "当前目录有几个文件？用工具查一下"
```

* `--local` 用本机配置的凭据直接跑一轮。
* `--model` 临时指定模型，换成 `laozhang-anthropic/claude-sonnet-5-5` 即可测试 Claude。
* `--session-id <名字>` 开一个新会话。

模型查看目录后给出文件数量，说明对话和工具调用都正常。之后在会话中发送 `/model <provider ID/模型 ID>` 可以随时换模型，每次请求和用量可以在[调用日志](https://api2.laozhang.ai/log)中查看。

### 字段说明

| 字段 | 作用 |
| - | - |
| `api` | `openai-completions` 对应 OpenAI 格式，`anthropic-messages` 对应 Anthropic 格式 |
| `input` | 默认只有文字，要发送图片写成 `["text", "image"]` |
| `contextWindow` | 模型的上下文长度，OpenClaw 据此决定何时压缩历史；不写时按 200000 处理 |
| `maxTokens` | 单次输出上限；OpenAI 格式下以 `max_completion_tokens` 发送 |
| `reasoning` | 设为 `true` 时，OpenAI 格式会发送 `reasoning_effort` |
| `compat.supportsUsageInStreaming` | 让 OpenClaw 读取流式响应中的用量 |

* **OpenAI 格式的模型建议打开 `supportsUsageInStreaming`。** 老张API在流式响应中返回 token 用量，OpenClaw 默认不读取，只能估算上下文占用，压缩时机容易偏差。
* **Claude 单次输出上限为 32,768 tokens**，`maxTokens` 不要超过这个值。
* 各模型价格见[模型与价格总表](https://docs.laozhang.ai/models.md)。

## 选择模型

| 模型 | 放在哪个 provider | 适合 |
| - | - | - |
| `gpt-6.1-sol` | OpenAI 格式 | 通用助手、写作、多步骤 Agent 任务 |
| `claude-sonnet-5-5` | Anthropic 格式 | 通用助手、写作、多步骤 Agent 任务 |
| `deepseek-v4-pro` | Anthropic 格式 | 日常使用，性价比高 |
| `glm-5.2` | Anthropic 格式 | Agent 编程 |

在配置里添加模型时，按上一节的格式在对应 provider 的 `models` 中加一项，`id` 要与[模型与价格总表](https://docs.laozhang.ai/models.md)完全一致。

## 常见问题

### 提示 Auto-compaction could not recover？

完整报错是 `Auto-compaction could not recover this turn`，表示自动压缩后上下文仍然放不下。按顺序处理：

1. 重试这一轮。
2. 发送 `/compact` 手动压缩，或发送 `/new` 开一个新会话。
3. 换上下文更长的模型，例如 `claude-sonnet-5-5`。

预防办法是把每个模型的 `contextWindow` 填准，并打开 `compat.supportsUsageInStreaming`，让 OpenClaw 按真实用量判断压缩时机。

### reserveTokensFloor 还能用吗？

不能。`compaction` 下的 `reserveTokens`、`reserveTokensFloor` 和 `maxHistoryShare` 都已废弃。运行下面的命令会把它们从配置中删除：

```bash theme={null}
openclaw doctor --fix
```

平时排查配置问题也可以先运行 `openclaw doctor`，加 `--deep` 做更深入的检查，加 `--json` 以 JSON 输出结果。

### 网关启动报 EADDRINUSE？

网关的端口（默认 18789）已被占用。先运行 `openclaw gateway status`，看是否已经有一个网关在运行，例如之前用 `--install-daemon` 装好的后台服务。不是 OpenClaw 占用时，用 `lsof -i :18789` 找出占用端口的进程。

### 报 AUTH\_TOKEN\_MISMATCH？

多数情况是改了另一份配置。使用 `--profile` 或设置了 `OPENCLAW_STATE_DIR` 时，OpenClaw 读取的不是默认目录。用 `openclaw config file` 确认当前生效的配置文件，在这份文件里修改；需要重新生成网关令牌时运行 `openclaw doctor --generate-gateway-token`。

### Claude 的思考关不掉？

只把 `reasoning` 设为 `false` 不够，Claude 仍会自适应思考。在会话中发送 `/think off`，或在配置中设置 `thinkingDefault`，写法见 [OpenClaw 官方文档](https://docs.openclaw.ai)。

### GPT-6 提示 Function tools with reasoning\_effort are not supported？

2026 年 11 月 4 日之前，GPT-6 系列在 Chat Completions 中调用工具时会报这个错。老张API现在已兼容这类请求，`gpt-6.1-sol`、`gpt-6-sol` 可以在推理的同时调用工具，`reasoning: true` 保持即可。

仍然报错时，确认 OpenAI 格式 provider 的地址是 `https://api.laozhang.ai/v1`，再把报错时间和模型发给客服。

### 报 401、403、404 或 503？

* **401**：密钥错误或没有复制完整。在终端分别运行 `test -n "$LAOZHANG_API_KEY" && echo 已设置` 和 `test -n "$LAOZHANG_CLAUDE_API_KEY" && echo 已设置`，确认两个变量都已设置，再在[令牌管理](https://api2.laozhang.ai/token)确认令牌已启用，见 [API Key 无效与 Base URL](https://docs.laozhang.ai/faq/invalid-api-key.md)。
* **403 或 503 no available channels**：令牌分组不包含该模型，或模型 ID 写错。GPT 用 `default` 分组的令牌，Claude、DeepSeek、GLM 用 `Claude Code` 分组的令牌，见[如何确认模型是否可用](https://docs.laozhang.ai/faq/model-availability.md)。
* **404**：地址里的 `/v1` 重复或缺失。OpenAI 格式写 `https://api.laozhang.ai/v1`，Anthropic 格式写 `https://api.laozhang.ai`。
* **余额不足**：见[余额不足](https://docs.laozhang.ai/faq/balance-insufficient.md)。

网关作为后台服务运行时，可能读不到终端里设置的环境变量，表现为 401。这时可以把 `LAOZHANG_API_KEY` 和 `LAOZHANG_CLAUDE_API_KEY` 写进配置文件的 `env.vars`，此后这份配置文件含有密钥，不要提交到代码仓库或截图外发。

## 相关文档

* [工具接入总览](https://docs.laozhang.ai/scenarios.md)
* [Chat Completions 请求格式与字段](https://docs.laozhang.ai/api-reference/chat-completions.md)
* [Claude 协议：Anthropic Messages 请求格式](https://docs.laozhang.ai/api-reference/claude.md)
* [OpenClaw 官方文档](https://docs.openclaw.ai)
* [OpenClaw GitHub 仓库](https://github.com/openclaw/openclaw)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.