Skip to content
🚀 快速起步第 16 / 16 节

本地模型:Ollama、vLLM 与 ds4 ​

到上一课为止,OpenClaw 接的全是云端 API。这一课换一种方式:OpenClaw 本地模型——推理跑在你自己的硬件上,不花 API 费、对话数据一个字节不出门。官方架构里,模型与 agent harness(Claude、Codex、本地模型)都是可换插件,本地后端是完整的一等公民:Ollama、vLLM、SGLang 都是内置 provider,LM Studio 有专门引导,ds4(macOS Metal 本地跑 DeepSeek V4 Flash)纯配置接入。全程约 10 分钟,本教程基于 v2026.10.9。

学完你能做什么 ​

  • 用 Ollama 把本地模型接进 OpenClaw,工具调用正常工作——Claw 能真干活,不是只能陪聊
  • 用 vLLM / SGLang 在 GPU 服务器上自托管开源权重,OpenClaw 自动发现模型目录
  • 在 macOS 上用 ds4 本地跑 DeepSeek V4 Flash,配好 thinking 档位与按需启动
  • 对照官方选型表分清七个本地后端各管什么场景,第一次装也不迷路
  • 用分层诊断命令区分「模型能回话」和「Gateway 路由正常」,配好本地优先 + 云端兜底的混合方案

🎒 开始前的准备 ​

  • 完成了 连接模型总览:provider 体系与模型切换:provider/model 引用规则与「装插件 → 配凭据 → 选模型」三步心里有数
  • OpenClaw 已安装、Gateway 在运行:openclaw gateway status 有输出
  • 有一台跑得动模型的机器——官方 llama.cpp 托管配方的最小款也要 8 GiB 主机内存起步(64K 上下文配方),实际需求取决于模型权重、上下文与运行时
  • 装好至少一个本地推理后端(Ollama / vLLM / SGLang / LM Studio / ds4 任选),或跟着下面步骤现场装

💡 为什么用本地模型?

三个硬理由:免费——推理发生在你的 CPU/GPU 上,没有 per-token 账单;离线——模型拉下来之后断网也能跑,内网、涉密环境友好;隐私——对话、记忆、文件全程不出你的硬件。代价也明确:效果和速度受限于硬件,而且本地模型没有托管商的安全过滤,工具权限要自己收紧(第 1 步细说)。

跟我做 ​

第 1 步:选后端——官方选型表对号入座 ​

为什么:本地后端各有分工,选错后端事倍功半。官方 local-models 指南给了一张选型表,先对号入座:

后端什么时候用它怎么接
OllamaCLI 工作流、模型库丰富、免维护 systemd 服务内置 provider(第 2 步)
vLLM / SGLang / MLX高吞吐自托管,OpenAI 兼容 HTTP 端点vLLM、SGLang 内置 provider(第 3 步)
ds4macOS Metal 本地跑 DeepSeek V4 Flash,OpenAI 兼容工具调用纯配置(第 4 步)
LM Studio第一次本地部署,GUI 加载器,原生 Responses APIonboarding 引导(第 4 步)
llama.cpp(插件)硬件感知选模型、校验下载、OpenClaw 托管 server装 llama.cpp 插件后 openclaw onboard 选 Managed local server
llmmanOCI 仓库拉模型 + llama.cpp/vLLM/MLX 引擎 + 本地/托管混合路由独立 provider
LiteLLM / 自定义 OpenAI 兼容代理在前面挡一层别的模型 API上一课的 custom 流程

三条通用规则,后面每一步都会用到:

  1. 适配器:自定义 provider 写了 baseUrl 但省略 api 时,默认 openai-completions;后端支持 Responses API 时可用 api: "openai-responses"(LM Studio 支持)。Ollama 是特例——走原生适配器(api: "ollama"),见第 2 步的 /v1 警告。
  2. 硬件门槛:内存需求取决于模型权重、上下文、运行时和机器上的其他负载;官方 llama.cpp 托管配方用 64K 上下文,最小的也要 8 GiB 主机内存起步,且不保证跑得动、更不保证快。给 OpenClaw 的完整 prompt、工具 schema、历史和输出留足余量。
  3. 安全:本地模型不提供托管商的安全过滤。工具权限和 prompt 注入防御要按模型能力收紧——模型越弱,越容易被网页或文件里的注入指令带偏。

第 2 步:接入 Ollama(本地模型推荐起点) ​

为什么:Ollama 是本地模型最顺手的一条路——OpenClaw 内置 provider,Ollama 一条命令拉模型,装完就是免维护的后台服务。

方式 A(推荐):onboarding 引导 ​

先装 Ollama(ollama.com/download)并拉一个模型:

bash
ollama pull gemma4

再跑引导:

bash
openclaw onboard

选 Ollama,然后挑模式:Cloud + Local(本地模型 + 已登录时的 :cloud 云模型)或 Local only(纯本地)。

你应该看到:引导先检查默认或配置的 Ollama 主机;自动发现只认已加载进内存的模型(/api/ps 上报),且要求工具支持 + 至少 16K 上下文(/api/show 确认)。选中的路由要过一次真实 completion 才会保存——发现过程绝不自动拉取或加载闲置模型。已安装但没加载的模型不会被自动发现:桌面版 Model Setup 里走 Ollama 卡片的 Choose connection → Local only,可以准备一个已安装的闲置模型过活体检查,不必先手动加载。完成后 openclaw models list --provider ollama 能列出模型。

非交互版(两个自定义参数都可省略):

bash
openclaw onboard --non-interactive --accept-risk --skip-health \
  --auth-choice ollama \
  --custom-base-url "http://ollama-host:11434" \
  --custom-model-id "qwen3.5:27b"

省略 base URL 用本地默认主机;省略 model ID 时,优先挑已安装、支持工具、≥16K 上下文的模型(偏好非推理模型、其次小模型),都不合格就试推荐的 gemma4。

方式 B:手动配置 ​

bash
export OLLAMA_API_KEY="ollama-local"   # 本地/LAN 主机任意值即可
openclaw models set ollama/gemma4

或写进配置文件:

json5
{
  agents: {
    defaults: {
      model: { primary: "ollama/gemma4" },
    },
  },
}

⚠️ Ollama 的 baseUrl 不要带 /v1(与其他后端相反)

OpenClaw 对 Ollama 走原生 /api/chat,不是 OpenAI 兼容的 /v1。必须写原生地址 baseUrl: "http://host:11434"——带了 /v1 会破坏工具调用,模型把 tool-call JSON 当纯文本吐出来。vLLM、SGLang、ds4、LM Studio 正好相反,baseUrl 都要带 /v1。

凭据规则:loopback、私网、.local、裸主机名的 Ollama 地址不需要真实 token,OpenClaw 用 ollama-local 标记;公网远程主机和 https://ollama.com 才需要真实 OLLAMA_API_KEY 或 auth profile。

Ollama Cloud(可选):不占本地硬件的 Ollama 生态 ​

不想本地跑模型、又想用 Ollama 生态的托管模型?独立 provider ollama-cloud 直连 https://ollama.com,不需要本地 daemon:

bash
openclaw onboard --auth-choice ollama-cloud

onboarding 默认模型 ollama-cloud/minimax-m2.7;托管目录含 deepseek-v4-pro、glm-5.2、kimi-k3、minimax-m3、gpt-oss:20b 等 ID。混合模式则在本地主机上 ollama signin,经同一台 Ollama 主机同时用本地模型和 :cloud 云模型(如 minimax-m2.7:cloud、kimi-k3:cloud)。

  • openclaw models list --provider ollama 列出了你的本地模型

第 3 步:接入 vLLM 或 SGLang(GPU 自托管高吞吐) ​

为什么:手头有 GPU 服务器或大显存机器,想高吞吐自托管开源权重(上一课 LongCat 的开源权重就属于这种玩法)——vLLM 和 SGLang 都是内置 provider,OpenAI 兼容 /v1,支持模型自动发现。

vLLM 四步跑通。先记住四个属性:provider id vllm、API openai-completions、认证 VLLM_API_KEY、默认 baseUrl http://127.0.0.1:8000/v1。

bash
vllm serve <model-id>              # 1. 起服务,模型 ID 换成你要托管的
export VLLM_API_KEY="vllm-local"   # 2. 服务器不鉴权时任非空值,作为启用发现的 opt-in 信号
json5
// 3. 选模型
{
  agents: {
    defaults: {
      model: { primary: "vllm/your-model-id" },
    },
  },
}
bash
openclaw models list --provider vllm   # 4. 验证

你应该看到:models list 列出 vLLM 上的模型——设了 VLLM_API_KEY 且没写 models.providers.vllm 时,OpenClaw 查 GET http://127.0.0.1:8000/v1/models 自动生成模型条目,还能识别 DeepSeek V4 与 Nemotron 3 系推理模型(含 yk_deepseek_v4 这类别名)。注意:一旦写了 models.providers.vllm,就只认你手写的模型——想保持动态,在 agents.defaults.models 加通配 "vllm/*": {}。

非交互一条命令(CI / 脚本部署用):

bash
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice vllm \
  --custom-base-url "http://127.0.0.1:8000/v1" \
  --custom-api-key "vllm-local" \
  --custom-model-id "your-model-id"

vLLM 跑在别的机器/端口、要钉住上下文参数或用真实 Key 时,写显式配置(官方示例原样节选):

json5
{
  models: {
    providers: {
      vllm: {
        baseUrl: "http://127.0.0.1:8000/v1",
        apiKey: "${VLLM_API_KEY}",
        api: "openai-completions",
        timeoutSeconds: 300, // 可选:给慢的本地模型延长请求超时
        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,
          },
        ],
      },
    },
  },
}
🔧 进阶(可选):交互请求优先调度

一台 vLLM 同时服务交互对话和 cron / 记忆整理等后台任务时,先在服务端开原生优先级调度:

bash
vllm serve <model-id> --scheduling-policy priority

再给对应模型开 opt-in:

json5
{
  agents: {
    defaults: {
      models: {
        "vllm/your-model-id": { params: { priorityScheduling: true } },
      },
    },
  },
}

优先级映射:交互回合与手动 /compact 排 -100、委派或未分类工作排 0、cron / 心跳 / 记忆 / 简单辅助补全排 100——数字小的先调度,争用时按到达顺序破平。该开关默认关,只对选中的 vllm/* 模型生效。

SGLang 同款套路(内置且默认启用,默认 baseUrl http://127.0.0.1:30000/v1):

bash
export SGLANG_API_KEY="sglang-local"   # 服务器不鉴权时任非空值
openclaw onboard --auth-choice sglang

引导里的占位默认模型是 sglang/Qwen/Qwen3-8B。设了 SGLANG_API_KEY 且没写 models.providers.sglang 时同样自动发现;要钉参数就写显式配置,形状与 vLLM 完全一致(vllm 换 sglang、端口换 30000)。

💡 MLX 或其他 OpenAI 兼容本地服务也能接

任何暴露 OpenAI 风格 /v1/chat/completions 的本地服务都在射程内:MLX(mlx_lm.server)、LiteLLM、OAI-proxy 等。走上一课的 custom 流程,--custom-provider-id 给个本地 id(如 mlx)即可。模型 id 写 provider 内部的原样 key(如 mlx-community/Qwen3-30B-A3B-6bit),引用时加前缀:mlx/mlx-community/Qwen3-30B-A3B-6bit。

  • openclaw models list --provider vllm(或 --provider sglang)列出了托管的模型

第 4 步:接入 ds4 或 LM Studio(macOS DeepSeek 与新手 GUI) ​

为什么:两个特色后端覆盖另外两类需求——ds4 给 Mac 用户一条本地跑 DeepSeek V4 Flash 的路;LM Studio 给不想碰命令行的人一个 GUI。

ds4:macOS Metal 本地 DeepSeek V4 Flash ​

先说清楚 ds4 是什么:antirez 的本地项目(github.com/antirez/ds4),在 macOS Metal 后端跑 DeepSeek V4 Flash GGUF,暴露 OpenAI 兼容 /v1。它不是云服务、也不是 DeepSeek 官方产品;OpenClaw 侧没有插件,纯配置接入。

起服务(<DS4_DIR> 换成你的 ds4 检出路径):

bash
<DS4_DIR>/ds4-server \
  --model <DS4_DIR>/ds4flash.gguf \
  --host 127.0.0.1 \
  --port 18000 \
  --ctx 32768 \
  --tokens 128

你应该看到:curl http://127.0.0.1:18000/v1/models 的返回里包含 deepseek-v4-flash。

然后写 OpenClaw 配置(官方完整配置节选):

json5
{
  agents: {
    defaults: {
      model: { primary: "ds4/deepseek-v4-flash" },
      models: { "ds4/deepseek-v4-flash": { alias: "DS4 local" } },
    },
  },
  models: {
    mode: "merge",
    providers: {
      ds4: {
        baseUrl: "http://127.0.0.1:18000/v1",
        apiKey: "ds4-local",
        api: "openai-completions",
        timeoutSeconds: 300,
        models: [
          {
            id: "deepseek-v4-flash",
            name: "DeepSeek V4 Flash (ds4)",
            reasoning: true,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 32768,
            maxTokens: 128,
            compat: {
              supportsUsageInStreaming: true,
              supportsReasoningEffort: true,
              maxTokensField: "max_tokens",
              supportsStrictMode: false,
              thinkingFormat: "deepseek",
              supportedReasoningEfforts: ["low", "medium", "high", "xhigh"],
            },
          },
        ],
      },
    },
  },
}

两个关键点:

  • --ctx 32768 起步:OpenClaw 的 agent 回合带工具 schema 和 workspace 上下文,--ctx 4096 能过 curl 直连测试,但 agent 满载回合会报 500 prompt exceeds context。contextWindow 与 --ctx 对齐,maxTokens 与 --tokens 对齐。
  • Think Max 要大上下文:ds4-server --ctx 393216 且请求 reasoning_effort: "max" 才激活;此时模型元数据同步改成 contextWindow: 393216、maxTokens: 384000、supportedReasoningEfforts 加 "max"。
🔧 按需启动:让 OpenClaw 只在用到时拉起 ds4

不想让 ds4 常驻吃内存?在同一个 provider 条目里加 localService,OpenClaw 会在选中 ds4/... 模型时自动启动服务(官方示例原样):

json5
{
  models: {
    providers: {
      ds4: {
        baseUrl: "http://127.0.0.1:18000/v1",
        apiKey: "ds4-local",
        api: "openai-completions",
        timeoutSeconds: 300,
        localService: {
          command: "<DS4_DIR>/ds4-server",
          args: [
            "--model",
            "<DS4_DIR>/ds4flash.gguf",
            "--host",
            "127.0.0.1",
            "--port",
            "18000",
            "--ctx",
            "32768",
            "--tokens",
            "128",
          ],
          cwd: "<DS4_DIR>",
          healthUrl: "http://127.0.0.1:18000/v1/models",
          readyTimeoutMs: 300000,
          idleStopMs: 0,
        },
        models: [
          {
            id: "deepseek-v4-flash",
            name: "DeepSeek V4 Flash (ds4)",
            reasoning: true,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 32768,
            maxTokens: 128,
            compat: {
              supportsUsageInStreaming: true,
              supportsReasoningEffort: true,
              maxTokensField: "max_tokens",
              supportsStrictMode: false,
              thinkingFormat: "deepseek",
              supportedReasoningEfforts: ["low", "medium", "high", "xhigh"],
            },
          },
        ],
      },
    },
  },
}

三个字段别写错:command 必须是绝对可执行路径(不做 shell 查找、不展开 ~);readyTimeoutMs: 300000 给足 5 分钟——ds4 有冷 Metal 常驻与模型预热阶段,首次请求就是慢;healthUrl 用 /v1/models 探活。

LM Studio:GUI 加载器,onboarding 全自动 ​

LM Studio 用 GUI 跑 llama.cpp(GGUF)或 MLX 模型,也有 headless 的 llmster daemon。装好后三步:

bash
lms server start --port 1234        # 1. 起本地服务(headless 版用 lms daemon up)
export LM_API_TOKEN="your-lm-studio-api-token"   # 2. LM Studio 开了认证才需要,没开就留空
openclaw onboard                    # 3. 选 LM Studio,在 Default model 提示里挑模型

你应该看到:引导先查 LM Studio 主机的 /api/v1/models,只有 LM Studio 上报「有工具训练 + 至少 16K 有效上下文」的模型才会被自动推荐(已加载模型按加载实例的上下文算,不按宣传的最大值);选中后过一次真实 completion 才保存,自动检查绝不替你下载模型。

LM Studio 的模型 key 是 author/model-name 格式(如 qwen/qwen3.5-9b),OpenClaw 引用加 provider 前缀:lmstudio/qwen/qwen3.5-9b。查确切 key、换默认、装新模型后刷新:

bash
curl http://localhost:1234/api/v1/models              # 看返回里的 key 字段
openclaw models set lmstudio/qwen/qwen3.5-9b
openclaw models list --provider lmstudio --refresh    # 装了新模型后刷新目录

默认 merge 模式下,--refresh 新增发现的模型、保留你手写条目的元数据(名称、上下文上限等)。非交互版:openclaw onboard --non-interactive --accept-risk --skip-health --auth-choice lmstudio;要显式给全参数就再加 --custom-base-url http://localhost:1234/v1 --lmstudio-api-key "$LM_API_TOKEN" --custom-model-id qwen/qwen3.5-9b。

  • openclaw models list --provider ds4(或 --provider lmstudio)能看到你的模型

第 5 步:验证链路并配好混合兜底 ​

为什么:配置落盘 ≠ agent 能干活。「模型能回话」「Gateway 路由正常」「工具真实执行」是三层,官方给了分层诊断命令——哪层断了都知道去哪修。

bash
# 第一层:模型本身能不能回话(不带工具、不带 agent 上下文)
openclaw infer model run --local --model <provider/model> --prompt "Reply with exactly: pong" --json

# 第二层:Gateway 路由通不通(只发 prompt,跳过 transcript、工具与内置 MCP,
# 但仍走完整的 Gateway 路由、auth 与 provider 选择)
openclaw infer model run --gateway --model <provider/model> --prompt "Reply with exactly: pong" --json

第三层:工具冒烟测试,跑一个完整 agent 回合(以 ds4 为例):

bash
openclaw agent \
  --local \
  --session-id ds4-tool-smoke \
  --model ds4/deepseek-v4-flash \
  --thinking off \
  --message "Use the shell command pwd once, then reply exactly: tool-ok <output>" \
  --json \
  --timeout 240

你应该看到:executionTrace.winnerProvider 是 ds4、executionTrace.winnerModel 是 deepseek-v4-flash、toolSummary.calls 至少为 1、可见回复以 tool-ok 开头——工具真的执行了,不是模型把 JSON 念给你听。

全通过后,把顺手的模型设为日常默认:

bash
openclaw models set <provider/model>

想要省钱不断服,再配一层混合兜底——官方 local-models 指南的推荐玩法:本地优先、云端兜底,provider 出错时按 turn 落到下一个 fallback(官方示例对调 primary/fallbacks 顺序而来):

json5
{
  agents: {
    defaults: {
      model: {
        primary: "lmstudio/my-local-model",   // 本地优先
        fallbacks: ["anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-6"],
      },
      models: {
        "anthropic/claude-sonnet-4-6": { alias: "Sonnet" },
        "lmstudio/my-local-model": { alias: "Local" },
        "anthropic/claude-opus-4-6": { alias: "Opus" },
      },
    },
  },
  models: {
    mode: "merge",   // merge 保住云端模型目录,随时 /model 切换
    providers: {
      lmstudio: {
        baseUrl: "http://127.0.0.1:1234/v1",
        apiKey: "lmstudio",
        api: "openai-responses",
        models: [
          {
            id: "my-local-model",
            name: "Local Model",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 196608,
            maxTokens: 8192,
          },
        ],
      },
    },
  },
}

云优先、本地兜底就把 primary/fallbacks 对调,providers 块与 models.mode: "merge" 原样保留。注意 fallback 是「出错才切」的按 turn 切换;想要小请求留本地、超大请求才上云的按请求路由,官方指了 llmman 的 Hybrid inference。

  • 三层验证全过:两级 pong + 工具冒烟 toolSummary.calls ≥ 1

检查点 ✅ ​

  • 对照官方选型表选对了后端:Ollama(CLI)/ vLLM、SGLang(GPU 高吞吐)/ ds4(macOS DeepSeek)/ LM Studio(GUI)
  • openclaw models list --provider <id> 能列出你的本地模型
  • Ollama 的 baseUrl 是 http://host:11434(不带 /v1);vLLM / SGLang / ds4 / LM Studio 都带 /v1
  • openclaw infer model run --local 和 --gateway 都返回 pong
  • agent 冒烟测试里 toolSummary.calls ≥ 1——工具调用真实执行,不是吐 JSON 文本
  • 想省钱不断服:配了 fallbacks 混合方案,models.mode: "merge" 保住云端模型目录

踩坑提醒 ​

❌ Ollama baseUrl 带了 /v1——工具调用全坏 ​

Ollama 走原生 /api/chat 适配器,baseUrl 必须是 http://host:11434(不带 /v1)。带了 /v1 会走 OpenAI 兼容模式,工具调用坏掉、模型把 tool-call JSON 当纯文本吐出来。这和 vLLM / SGLang / ds4 / LM Studio(全都要 /v1)正好相反——记不住就记「Ollama 特立独行」。

❌ ds4 --ctx 4096:curl 能通,agent 回合 500 ​

500 prompt exceeds context 的原因:OpenClaw 的 agent 回合带工具 schema、workspace 上下文,比一条 curl 测试消息大得多。ds4-server --ctx 至少 32768,并把 models.providers.ds4.models[].contextWindow 对齐。Think Max 更是要 --ctx 393216 起步。

❌ 本地模型「能回话」,但工具调用显示为原始 JSON/XML 文本 ​

先按第 5 步分层诊断。若两级 infer model run 都通、完整回合乱套,按顺序排查:

  1. 本地 Ollama 模型、LM Studio、托管本地服务在 tools.toolSearch 未设时自动启用结构化 Tool Search(推迟 schema 下发、保留能力)——别关它。
  2. vLLM 用户先确认启动时带对了 tool-call parser 和 chat template(vLLM 官方文档:Qwen2.5 用 hermes、Qwen3-Coder 用 qwen3_xml)。
  3. 仍不行的专用模型条目可加 params.extra_body.tool_choice: "required" 强制工具调用——只给「每回合都该调工具」的模型用,别设成全局默认。
  4. 最后手段:该模型 compat.supportsTools: false 关掉工具;或开精简模式 agents.defaults.experimental.localModelLean: true(移除 browser、automations、message、image_generate、music_generate、video_generate、tts、pdf 这些大 schema 工具)。

❌ 慢模型 / 冷模型超时 ​

本地大模型首 token 慢、LM Studio 冷加载、ds4 冷预热都常见。给 provider 条目设 timeoutSeconds(如 300)——它覆盖连接、响应头、流式 body 与总中止,优先于调全局 agents.defaults.timeoutSeconds。ds4 冷启动另配 localService.readyTimeoutMs: 300000。

❌ WSL2 + Ollama + NVIDIA/CUDA:虚拟机反复重启 ​

官方 Ollama Linux 安装器会启用 Restart=always 的 systemd 服务。WSL2 GPU 环境下,开机自启会重载上次的模型、钉死宿主内存,把 WSL2 VM 拖进反复重启的循环(官方排障页把它列为 WSL2 crash loop)。WSL2 里别让 Ollama 开机自动加载模型。

❌ 上下文预算误判:输出被截、临近上限只剩一个 token ​

OpenClaw 按模型窗口做预检:余量低于 20% 警告(8k 下限)、低于 10% 硬阻断(4k 下限)。发现式接入的本地 Ollama 模型默认输出上限 8,192 token(OpenClaw 把输出上限作为 num_predict 发给原生 Ollama);要恢复 Ollama 无限制默认就设 params: { num_predict: -1 }。自定义模型条目把 contextWindow/maxTokens 写成真实值,别吃 200000 的兜底默认。

❌ Gateway 跑成守护进程后,export 的 Key「不生效」 ​

老坑重提:launchd / systemd 服务看不到交互 shell 的环境变量。OLLAMA_API_KEY、VLLM_API_KEY、SGLANG_API_KEY、LM_API_TOKEN 写进 ~/.openclaw/.env,或经配置里的 env.shellEnv 提供给那个进程。

❌ 把本地模型当「免费云端平替」,安全上裸奔 ​

本地模型没有托管商的安全过滤,模型越弱越容易被网页或文件里的注入指令带偏。工具权限收窄、compaction 保持开启、群聊会话考虑沙箱——官方 local-models 指南原话:keep tool permissions and prompt-injection defenses appropriate for the model and task。加固手法见安全加固(一):访问控制与身份。

下一步 ​

快速起步整章到此收官:安装、模型接入(国产全家桶 + 中转 + 本地模型)全部打通。接下来:

相关教程 ​

搞懂AI关于我们怎么写隐私说明

独立的第三方教程,与文中提到的任何产品及其公司没有隶属或合作关系;产品名称和商标归各自所有者。价格和政策以官方页面为准。