什么时候需要看这页
如果你的 Provider 节点准备用 SGLang 承接推理任务,先按这页启动 SGLang HTTP 服务。SGLang 提供 OpenAI-compatible 接口,Provider Agent 侧需要使用 --api-format sglang。
Token 供应示例里的模型名,例如 qwen3.6:35b、gemma4:26b,是启动 Provider Agent 时使用的平台模型代码。SGLang 加载的是 Hugging Face 模型 ID 或本地模型目录;控制台展示的“模型名称”用于下载和启动模型,“模型 ID”用于 SGLang 对外暴露的 OpenAI-compatible 模型标识和 Provider Agent 的 --runtime-model-id。
适用系统和特点
SGLang 的常规入门路径主要面向 Linux、Python 3.10+ 和 NVIDIA CUDA GPU。官方资料也提供 AMD GPU、Intel Xeon CPU、Apple Silicon with Metal、TPU、Ascend NPU、Intel XPU 等硬件页面,但不同后端能力和安装方式差异较大。
主要优点:
- 面向生产推理,重视低延迟和高吞吐
- 支持 OpenAI-compatible
/v1/chat/completions、/v1/completions、embedding 和 vision 等接口 - 支持 RadixAttention、prefix caching、连续批处理、chunked prefill、speculative decoding 和多种并行策略
主要限制:
- 安装依赖 CUDA、ROCm、PyTorch、FlashInfer 等版本组合,环境复杂度比 Ollama 高
- 不同硬件后端的可用功能不完全一致
安装 SGLang
通用 Linux/NVIDIA 环境可以使用 uv 安装:
pip install --upgrade pippip install uvuv pip install "sglang[all]"如果你使用 Docker,可以直接运行官方镜像。下面示例会把 Hugging Face 缓存挂载到容器内,并在 30000 端口暴露 OpenAI-compatible API:
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path Qwen/Qwen3.6-35B-A3B \ --context-length 262144 \ --host 0.0.0.0 \ --port 30000如果模型需要 Hugging Face 鉴权,替换 <secret> 为你的 Hugging Face token。
准备模型名
SGLang 的 --model-path 接收 Hugging Face 模型 ID 或本地模型目录,不直接按 Ollama 的 model:tag 下载模型。
实际使用时,先打开 Provider API 密钥页,在 Token 供应示例中选择目标模型和 SGLang 推理框架,然后分别点击“复制模型名称”和“复制模型 ID”。模型名称用于 --model-path 的下载来源;模型 ID 是 /v1/models、验证请求里的 model,也是 Provider Agent 的 --runtime-model-id / PROVIDER_AGENT_RUNTIME_MODEL_ID。
常见对应关系可以这样处理,最终以页面里“模型名称 / 模型 ID”显示的值为准:
| Token 供应示例模型名 | SGLang 模型名称 | SGLang 模型 ID | 说明 |
|---|---|---|---|
qwen3.6:35b | Qwen/Qwen3.6-35B-A3B | Qwen/Qwen3.6-35B-A3B | 适合作为长上下文示例 |
gemma4:26b | google/gemma-4-26B-A4B-it | google/gemma-4-26B-A4B-it | 具体 checkpoint 以实际下载和平台配置为准 |
SGLang 默认会用 --model-path 的值作为服务侧模型名。一般保持这个名字即可:
python3 -m sglang.launch_server \ --model-path Qwen/Qwen3.6-35B-A3B \ --context-length 262144 \ --host 0.0.0.0 \ --port 30000如果你确实需要使用 --served-model-name 覆盖返回名称,也应设置为上表中的 SGLang 模型 ID,例如 Qwen/Qwen3.6-35B-A3B,不要设置成 Ollama 风格的 qwen3.6:35b。Provider Agent 的 --runtime-model-id 需要和这个服务侧模型 ID 一致。
设置上下文窗口
SGLang 对应的上下文参数是 --context-length。这个值要根据目标模型要求的“上下文窗口”大小设置,不能默认所有模型都写成同一个数字。下面示例里的 262144 只适用于明确支持 256K 上下文窗口的模型;如果模型要求 128K,则应设置为 131072。
python3 -m sglang.launch_server \ --model-path Qwen/Qwen3.6-35B-A3B \ --served-model-name Qwen/Qwen3.6-35B-A3B \ --context-length 262144 \ --tp-size 8 \ --mem-fraction-static 0.8 \ --reasoning-parser qwen3 \ --host 0.0.0.0 \ --port 30000参数说明:
--context-length 262144在示例中表示模型最大上下文窗口为 256K tokens,实际值应按目标模型要求填写--tp-size需要按 GPU 数量和模型大小调整,不是固定值--mem-fraction-static可在显存紧张时调低--reasoning-parser qwen3只适用于需要 Qwen3 reasoning 解析的模型
注意:
- 模型本身必须支持你设置的目标上下文窗口大小
max_tokens只控制单次请求最多生成多少 token,不会扩大上下文窗口
验证 SGLang 服务
查看模型列表:
curl http://127.0.0.1:30000/v1/models做一次非流式推理:
curl http://127.0.0.1:30000/v1/chat/completions \ -H "Content-Type: application/json" \ --data-raw '{ "model": "Qwen/Qwen3.6-35B-A3B", "messages": [ { "role": "user", "content": "用一句中文回复:SGLang 服务可用。" } ], "max_tokens": 64, "temperature": 0 }'再检查流式输出:
curl http://127.0.0.1:30000/v1/chat/completions \ -H "Content-Type: application/json" \ --data-raw '{ "model": "Qwen/Qwen3.6-35B-A3B", "messages": [ { "role": "user", "content": "列出三个本地推理服务健康检查点。" } ], "stream": true, "max_tokens": 128 }'如果启动 SGLang 时配置了 --api-key skypool-test,所有请求都需要增加:
-H "Authorization: Bearer skypool-test"启动 Provider Agent
SGLang 服务可用后,先跑预检:
./token-provider-agent preflight start \ --model qwen3.6:35b \ --base-url http://127.0.0.1:30000 \ --api-format sglang \ --runtime-model-id Qwen/Qwen3.6-35B-A3B预检通过后正式启动:
./token-provider-agent start \ --api-key stp-... \ --model qwen3.6:35b \ --base-url http://127.0.0.1:30000 \ --api-format sglang \ --runtime-model-id Qwen/Qwen3.6-35B-A3B如果 SGLang 启用了推理框架 API Key,同时传入:
--runtime-api-key skypool-test