Jetson 上 OpenClaw + Ollama + llama.cpp 的联动配置模板部署大模型

Jetson 上我建议的联动方式是:OpenClaw -> Ollama(主模型,原生 API)+ llama.cpp(备用/低资源模型,OpenAI 兼容 API)+ Ollama embeddings(memorySearch) 这样做的原因是,OpenClaw 官方把 Ollama + openclaw onboard 作为最低冲突的本地方案;同时它也支持把 vLLM / LiteLLM / 自定义 OpenAI-compatible 本地代理 作为额外 provider 接进来。Ollama 这边,OpenClaw 明确推荐走原生 http://host:11434 ,不要给它配 /v1,否则工具调用会变差;而 llama.cppllama-server 则原生提供 OpenAI-compatible chat completions / responses / embeddings 路由,适合当第二套本地后端。(OpenClaw1)

另外,OpenClaw 的本地模型指南也明确提醒:它默认期待大上下文和较强的提示注入防护 ,小硬件上的强量化/小模型更容易丢上下文或降低安全裕量。所以在 Jetson Orin NX 16G 上,更稳的策略是把 Ollama 设为主模型 ,把 llama.cpp 设为 fallback 或专用模型,而不是反过来。(OpenClaw1)

下面给你一份推荐版模板

特点是 Ollama 走自动发现 ,你不用手工维护本地模型清单;llama.cpp 作为一个显式自定义 provider 接入;memorySearch 用 Ollama 的 /api/embeddings。OpenClaw 的文档说明,只要设置了 OLLAMA_API_KEY 且没有显式写 models.providers.ollama,它就会从本地 http://127.0.0.1:11434 自动发现模型memorySearch.provider = "ollama" 也是官方支持的,只是不会自动选中,所以这里显式打开。(OpenClaw2)

先准备环境变量:

bash 复制代码
export OLLAMA_API_KEY="ollama-local"
export OPENCLAW_GATEWAY_TOKEN="replace-with-a-long-random-token"

把下面保存为 ~/.openclaw/openclaw.json

json5 复制代码
{
  identity: {
    name: "Jetson-Claw",
    theme: "local edge agent",
    emoji: "🦙",
  },

  gateway: {
    bind: "loopback",
    port: 18789,
    auth: {
      token: "${OPENCLAW_GATEWAY_TOKEN}",
    },
  },

  agent: {
    workspace: "~/.openclaw/workspace",
  },

  agents: {
    defaults: {
      model: {
        // 主模型:走 Ollama(自动发现)
        primary: "ollama/qwen2.5:7b-instruct",

        // 备用:先退到 llama.cpp,再退到另一个 Ollama 小模型
        fallbacks: [
          "llamacpp/qwen2.5-7b-instruct-gguf",
          "ollama/llama3.2:3b",
        ],
      },

      models: {
        "ollama/qwen2.5:7b-instruct": { alias: "Ollama 主模型" },
        "llamacpp/qwen2.5-7b-instruct-gguf": { alias: "llama.cpp 备用" },
        "ollama/llama3.2:3b": { alias: "Ollama 小模型" },
      },

      memorySearch: {
        enabled: true,

        // 用 Ollama embeddings,而不是 OpenClaw 的 local(node-llama-cpp) 模式
        provider: "ollama",

        // 换成你本机实际装好的 embedding 模型
        model: "YOUR_OLLAMA_EMBED_MODEL",

        // Jetson 上先不要再级联更多 embedding fallback,保持简单
        fallback: "none",

        cache: {
          enabled: true,
          maxEntries: 50000,
        },

        sync: {
          watch: true,
        },
      },
    },
  },

  models: {
    // 保留合并模式,未来你还可以叠加云端 provider
    mode: "merge",

    providers: {
      // llama.cpp 作为自定义 OpenAI-compatible provider
      llamacpp: {
        baseUrl: "http://127.0.0.1:8080/v1",
        apiKey: "llama-local",
        api: "openai-completions",

        models: [
          {
            id: "qwen2.5-7b-instruct-gguf",
            name: "Qwen2.5 7B Instruct GGUF",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 4096,
            maxTokens: 1024,
          },
        ],
      },
    },
  },
}

这个模板的关键点有三个:

第一,Ollama 不写 models.providers.ollama 。因为官方文档说,一旦你显式写了 models.providers.ollama自动发现会被关闭,你就得自己维护模型列表;不写则会自动从本地 Ollama 实例发现模型。(OpenClaw2)

第二,llama.cpp 走 /v1,并用 api: "openai-completions" 。OpenClaw 官方对"其他 OpenAI-compatible 本地代理"给的标准接法,就是 models.providers.<id> + baseUrl + api + models 这一套;而 llama.cpp 官方文档确认 llama-server 提供 OpenAI-compatible 路由。(OpenClaw1)

第三,memorySearch 用 Ollama,不用 local 。因为 OpenClaw 文档里写得很清楚:memorySearch.provider = "local" 走的是 node-llama-cpp ,可能需要额外的 pnpm approve-builds / pnpm rebuild;而 memorySearch.provider = "ollama" 是官方支持的本地/self-hosted embeddings 路径,更适合先把 Jetson 跑稳。(OpenClaw3)


启动顺序

先起 Ollama。Ollama 官方 API 默认就在 http://localhost:11434/api。 (Ollama Docs4)

bash 复制代码
ollama serve
ollama list

然后起 llama.cpp

bash 复制代码
~/src/llama.cpp/build/bin/llama-server \
  -m ~/models/base/model.gguf \
  --host 127.0.0.1 \
  --port 8080 \
  -c 4096 \
  -np 1 \
  -ctk q8_0 \
  -ctv q8_0

再检查两个后端:

bash 复制代码
curl http://127.0.0.1:11434/api/tags
curl http://127.0.0.1:8080/v1/models

最后让 OpenClaw 读配置:

bash 复制代码
openclaw gateway restart
openclaw models list
openclaw health
openclaw gateway status

如果你想把 Ollama 也改成"显式配置"

只有在这几种情况下才建议这么做:

你要连远程 Ollama 、你想强制指定 contextWindow/maxTokens 、或者你想完全手工管模型列表 。官方文档明确说,远程 Ollama 时应使用 baseUrl: "http://host:11434",不要加 /v1 ,并把 api 设成 "ollama" 以保证原生工具调用行为。(OpenClaw2)

对应模板是:

json5 复制代码
{
  models: {
    mode: "merge",
    providers: {
      ollama: {
        baseUrl: "http://127.0.0.1:11434",
        apiKey: "${OLLAMA_API_KEY}",
        api: "ollama",
        models: [
          {
            id: "qwen2.5:7b-instruct",
            name: "Qwen2.5 7B Instruct",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 8192,
            maxTokens: 2048,
          },
          {
            id: "llama3.2:3b",
            name: "Llama 3.2 3B",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 8192,
            maxTokens: 2048,
          },
        ],
      },
    },
  },
}

远程控制这台 Jetson 的模板

OpenClaw 官方建议把 Gateway 绑在 loopback ,然后通过 SSH 隧道 从笔记本连进去;默认网关端口是 18789 。如果你希望本地电脑上的 OpenClaw CLI 默认连这台 Jetson,可以把 gateway.mode: "remote"gateway.remote.url/token 写进去。(OpenClaw5)

先在你的笔记本上开隧道:

bash 复制代码
ssh -N -L 18789:127.0.0.1:18789 user@jetson-host

然后在本地电脑的 OpenClaw 配置里加:

json5 复制代码
{
  gateway: {
    mode: "remote",
    remote: {
      url: "ws://127.0.0.1:18789",
      token: "your-token",
    },
  },
}

这样之后本地的 openclaw healthopenclaw status 之类就会默认走这个远程 Gateway。(OpenClaw5)


两个最容易踩的坑

不要把 OpenClaw 连 Ollama 时写成 http://127.0.0.1:11434/v1 官方文档明确说,这会切到 OpenAI-compatible 模式,工具调用会变得不可靠,模型可能把工具 JSON 当纯文本吐出来。(OpenClaw2)

不要一开始就把 memorySearch.provider 设成 local 这条路走的是 node-llama-cpp,本地编译和依赖更重;Jetson 上先用 ollama embeddings 更省心。(OpenClaw3)

后面会陆续加入openclaw gateway安全模式下与ros联动配置。

参考链接:

1: https://docs.openclaw.ai/gateway/local-models "Local Models - OpenClaw"

2: https://docs.openclaw.ai/providers/ollama "Ollama - OpenClaw"

3: https://docs.openclaw.ai/reference/memory-config "Memory configuration reference - OpenClaw"

4: https://docs.ollama.com/api/introduction "Introduction - Ollama"

5: https://docs.openclaw.ai/gateway/remote "Remote Access - OpenClaw"

相关推荐
凯瑟琳.奥古斯特20 小时前
高阶子查询题目精炼
开发语言·数据库·python·职场和发展·数据库开发
lolo大魔王20 小时前
Linux 文件系统超全面详解(原理、结构、挂载、分区、inode、日志、管理命令)
linux·运维·服务器
身如柳絮随风扬20 小时前
数据库读写分离:从原理到实战,构建高并发系统
数据库·mysql
小脑斧12320 小时前
AI技能化落地:从对话式大模型到可生产、可复用的AI工程体系
人工智能·skills·openclaw·hermes·marvis
西陵20 小时前
Agent 为什么会陷入 Doom Loop?OpenClaw 的破解之道
前端·人工智能·ai编程
飞哥数智坊20 小时前
动动嘴皮子就把事干了,Mic Air + TRAE SOLO 让我越来越懒
人工智能
喜欢踢足球的老罗20 小时前
从移动开发转型 AI Agent 工程师:我做了一个开源学习系统
人工智能·学习
武汉唯众智创21 小时前
AI智能心理筛查拆解:三级漏斗式筛查算法+行业理论落地
人工智能·ai心理健康·校园心理健康·学生心理健康解决方案·校园心理健康平台·心理筛查
云天AI实战派21 小时前
AI 智能体全流程实战:从 0 搭一个门店运营助手,用 API + 工具搜索 + 编码代理做出可复现闭环
人工智能·ai·智能体