Hugging Face (Inference)
Hugging Face (Inference)
Hugging Face Inference Providers 通过单个路由器 API 提供 OpenAI 兼容的聊天补全。使用一个令牌即可访问多个模型(DeepSeek、Llama 等)。OpenClaw 使用OpenAI 兼容端点(仅限聊天补全);对于文本转图像、嵌入或语音,请直接使用 HF inference clients。
- 提供者:
huggingface - 认证:
HUGGINGFACE_HUB_TOKEN或HF_TOKEN(具有调用 Inference Providers权限的细粒度令牌) - API:OpenAI 兼容(
https://router.huggingface.co/v1) - 计费:单个 HF 令牌;定价 遵循提供者费率,包含免费层级。
快速开始
- 在 Hugging Face → Settings → Tokens 创建具有调用 Inference Providers权限的细粒度令牌。
- 运行 onboarding 并在提供者下拉菜单中选择Hugging Face,然后在提示时输入 API 密钥:
openclaw onboard --auth-choice huggingface-api-key
- 在默认 Hugging Face 模型下拉菜单中,选择你想要的模型(当你有有效令牌时,列表从 Inference API 加载;否则显示内置列表)。你的选择将保存为默认模型。
- 你也可以稍后在配置中设置或更改默认模型:
{
agents: {
defaults: {
model: { primary: "huggingface/deepseek-ai/DeepSeek-R1" },
},
},
}
非交互式示例
openclaw onboard --non-interactive \
--mode local \
--auth-choice huggingface-api-key \
--huggingface-api-key "$HF_TOKEN"
这将设置 huggingface/deepseek-ai/DeepSeek-R1 为默认模型。
环境变量说明
如果 Gateway 作为守护进程运行(launchd/systemd),确保 HUGGINGFACE_HUB_TOKEN 或 HF_TOKEN
对该进程可用(例如,在 ~/.openclaw/.env 中或通过 env.shellEnv)。
模型发现和 onboarding 下拉菜单
OpenClaw 通过直接调用Inference 端点来发现模型:
GET https://router.huggingface.co/v1/models
(可选:发送 Authorization: Bearer $HUGGINGFACE_HUB_TOKEN 或 $HF_TOKEN 获取完整列表;某些端点在没有认证的情况下返回子集。)响应是 OpenAI 风格的 { "object": "list", "data": [ { "id": "Qwen/Qwen3-8B", "owned_by": "Qwen", ... }, ... ] }。
当你配置 Hugging Face API 密钥(通过 onboarding、HUGGINGFACE_HUB_TOKEN 或 HF_TOKEN)时,OpenClaw 使用此 GET 来发现可用的聊天补全模型。在交互式 onboarding期间,输入令牌后,你会看到默认 Hugging Face 模型下拉菜单,其中填充了该列表(如果请求失败则为内置目录)。在运行时(例如 Gateway 启动),当存在密钥时,OpenClaw 再次调用GET https://router.huggingface.co/v1/models 来刷新目录。该列表与内置目录合并(用于上下文窗口和成本等元数据)。如果请求失败或未设置密钥,则仅使用内置目录。
模型名称和可编辑选项
- 来自 API 的名称: 当 API 返回
name、title或display_name时,模型显示名称从 GET /v1/models 填充;否则从模型 id 派生(例如deepseek-ai/DeepSeek-R1→ "DeepSeek R1")。 - 覆盖显示名称: 你可以在配置中为每个模型设置自定义标签,以便它在 CLI 和 UI 中按你想要的方式显示:
{
agents: {
defaults: {
models: {
"huggingface/deepseek-ai/DeepSeek-R1": { alias: "DeepSeek R1 (fast)" },
"huggingface/deepseek-ai/DeepSeek-R1:cheapest": { alias: "DeepSeek R1 (cheap)" },
},
},
},
}
- 提供者/策略选择: 在模型 id后追加后缀来选择路由器如何选择后端:
:fastest— 最高吞吐量(路由器选择;提供者选择锁定—无交互式后端选择器)。:cheapest— 每个输出令牌成本最低(路由器选择;提供者选择锁定)。:provider— 强制特定后端(例如:sambanova、:together)。
当你选择**:cheapest或:fastest**(例如在 onboarding 模型下拉菜单中)时,提供者被锁定:路由器根据成本或速度决定,不显示可选的"偏好特定后端"步骤。你可以将这些作为单独条目添加到 models.providers.huggingface.models 中,或使用后缀设置 model.primary。你也可以在 Inference Provider settings 中设置默认顺序(无后缀 = 使用该顺序)。
- 配置合并: 配置合并时会保留
models.providers.huggingface.models中的现有条目(例如在models.json中)。因此你在那里设置的任何自定义name、alias或模型选项都会被保留。
模型 ID 和配置示例
模型引用使用 huggingface/<org>/<model> 形式(Hub 风格 ID)。以下列表来自GET https://router.huggingface.co/v1/models;你的目录可能包含更多。
示例 ID(来自 inference 端点):
| 模型 | 引用(前缀 huggingface/) |
|---|---|
| DeepSeek R1 | deepseek-ai/DeepSeek-R1 |
| DeepSeek V3.2 | deepseek-ai/DeepSeek-V3.2 |
| Qwen3 8B | Qwen/Qwen3-8B |
| Qwen2.5 7B Instruct | Qwen/Qwen2.5-7B-Instruct |
| Qwen3 32B | Qwen/Qwen3-32B |
| Llama 3.3 70B Instruct | meta-llama/Llama-3.3-70B-Instruct |
| Llama 3.1 8B Instruct | meta-llama/Llama-3.1-8B-Instruct |
| GPT-OSS 120B | openai/gpt-oss-120b |
| GLM 4.7 | zai-org/GLM-4.7 |
| Kimi K2.5 | moonshotai/Kimi-K2.5 |
你可以在模型 id 后追加 :fastest、:cheapest 或 :provider(例如 :together、:sambanova)。在 Inference Provider settings 中设置默认顺序;完整列表请参阅 Inference Providers 和GET https://router.huggingface.co/v1/models。
完整配置示例
主要 DeepSeek R1 带 Qwen 回退:
{
agents: {
defaults: {
model: {
primary: "huggingface/deepseek-ai/DeepSeek-R1",
fallbacks: ["huggingface/Qwen/Qwen3-8B"],
},
models: {
"huggingface/deepseek-ai/DeepSeek-R1": { alias: "DeepSeek R1" },
"huggingface/Qwen/Qwen3-8B": { alias: "Qwen3 8B" },
},
},
},
}
Qwen 作为默认,带 :cheapest 和 :fastest 变体:
{
agents: {
defaults: {
model: { primary: "huggingface/Qwen/Qwen3-8B" },
models: {
"huggingface/Qwen/Qwen3-8B": { alias: "Qwen3 8B" },
"huggingface/Qwen/Qwen3-8B:cheapest": { alias: "Qwen3 8B (cheapest)" },
"huggingface/Qwen/Qwen3-8B:fastest": { alias: "Qwen3 8B (fastest)" },
},
},
},
}
DeepSeek + Llama + GPT-OSS 带别名:
{
agents: {
defaults: {
model: {
primary: "huggingface/deepseek-ai/DeepSeek-V3.2",
fallbacks: [
"huggingface/meta-llama/Llama-3.3-70B-Instruct",
"huggingface/openai/gpt-oss-120b",
],
},
models: {
"huggingface/deepseek-ai/DeepSeek-V3.2": { alias: "DeepSeek V3.2" },
"huggingface/meta-llama/Llama-3.3-70B-Instruct": { alias: "Llama 3.3 70B" },
"huggingface/openai/gpt-oss-120b": { alias: "GPT-OSS 120B" },
},
},
},
}
使用 :provider 强制特定后端:
{
agents: {
defaults: {
model: { primary: "huggingface/deepseek-ai/DeepSeek-R1:together" },
models: {
"huggingface/deepseek-ai/DeepSeek-R1:together": { alias: "DeepSeek R1 (Together)" },
},
},
},
}
多个 Qwen 和 DeepSeek 模型带策略后缀:
{
agents: {
defaults: {
model: { primary: "huggingface/Qwen/Qwen2.5-7B-Instruct:cheapest" },
models: {
"huggingface/Qwen/Qwen2.5-7B-Instruct": { alias: "Qwen2.5 7B" },
"huggingface/Qwen/Qwen2.5-7B-Instruct:cheapest": { alias: "Qwen2.5 7B (cheap)" },
"huggingface/deepseek-ai/DeepSeek-R1:fastest": { alias: "DeepSeek R1 (fast)" },
"huggingface/meta-llama/Llama-3.1-8B-Instruct": { alias: "Llama 3.1 8B" },
},
},
},
}