SGLang

SGLang 可以通过兼容 OpenAI 的 HTTP API 来部署开源模型。OpenClaw 通过 openai-completions API 连接 SGLang。

OpenClaw 还支持自动发现 SGLang 上的可用模型——只需设置 SGLANG_API_KEY(如果服务端没有认证要求,填什么值都行),且不要显式定义 models.providers.sglang

快速开始

  1. 启动 SGLang 的 OpenAI 兼容服务。

你的 base URL 需要暴露 /v1 端点(比如 /v1/models/v1/chat/completions)。SGLang 通常运行在:

  • http://127.0.0.1:30000/v1
  1. 设置环境变量(没有认证要求的话,填什么值都行):
export SGLANG_API_KEY="sglang-local"
  1. 运行引导向导选择 SGLang,或直接设置模型:
openclaw onboard
{
  agents: {
    defaults: {
      model: { primary: "sglang/your-model-id" },
    },
  },
}

模型自动发现(隐式提供商)

当设置了 SGLANG_API_KEY(或存在认证配置)且没有定义 models.providers.sglang 时,OpenClaw 会查询:

  • GET http://127.0.0.1:30000/v1/models

并将返回的 ID 转换为模型条目。

如果你显式设置了 models.providers.sglang,自动发现会被跳过,需要手动定义模型。

显式配置(手动定义模型)

以下场景适合用显式配置:

  • SGLang 运行在不同的主机或端口。
  • 你想固定 contextWindow/maxTokens 的值。
  • 服务端需要真正的 API 密钥(或者你想控制请求头)。
{
  models: {
    providers: {
      sglang: {
        baseUrl: "http://127.0.0.1:30000/v1",
        apiKey: "${SGLANG_API_KEY}",
        api: "openai-completions",
        models: [
          {
            id: "your-model-id",
            name: "Local SGLang Model",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 128000,
            maxTokens: 8192,
          },
        ],
      },
    },
  },
}

常见问题排查

  • 检查服务是否可达:
curl http://127.0.0.1:30000/v1/models
  • 如果请求因认证错误失败,请设置与服务端配置匹配的 SGLANG_API_KEY,或在 models.providers.sglang 中显式配置提供商。