vLLM
vLLM 可以通过兼容 OpenAI 的 HTTP API 部署开源模型(以及部分自定义模型)。OpenClaw 通过 openai-completions API 连接 vLLM。
OpenClaw 还支持自动发现 vLLM 上的可用模型——只需设置 VLLM_API_KEY(如果服务端没有认证要求,填什么值都行),且不要显式定义 models.providers.vllm。
快速开始
- 启动 vLLM 的 OpenAI 兼容服务。
你的 base URL 需要暴露 /v1 端点(比如 /v1/models、/v1/chat/completions)。vLLM 通常运行在:
http://127.0.0.1:8000/v1
- 设置环境变量(没有认证要求的话,填什么值都行):
export VLLM_API_KEY="vllm-local"
- 选择一个模型(替换成你的 vLLM 模型 ID):
{
agents: {
defaults: {
model: { primary: "vllm/your-model-id" },
},
},
}
模型自动发现(隐式提供商)
当设置了 VLLM_API_KEY(或存在认证配置)且没有定义 models.providers.vllm 时,OpenClaw 会查询:
GET http://127.0.0.1:8000/v1/models
并将返回的 ID 转换为模型条目。
如果你显式设置了 models.providers.vllm,自动发现会被跳过,需要手动定义模型。
显式配置(手动定义模型)
以下场景适合用显式配置:
- vLLM 运行在不同的主机或端口。
- 你想固定
contextWindow/maxTokens的值。 - 服务端需要真正的 API 密钥(或者你想控制请求头)。
{
models: {
providers: {
vllm: {
baseUrl: "http://127.0.0.1:8000/v1",
apiKey: "${VLLM_API_KEY}",
api: "openai-completions",
models: [
{
id: "your-model-id",
name: "Local vLLM Model",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 128000,
maxTokens: 8192,
},
],
},
},
},
}
常见问题排查
- 检查服务是否可达:
curl http://127.0.0.1:8000/v1/models
- 如果请求因认证错误失败,请设置与服务端配置匹配的
VLLM_API_KEY,或在models.providers.vllm中显式配置提供商。