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 路由,适合当第二套本地后端。([OpenClaw][1])

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

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

先准备环境变量:

exportOLLAMA_API_KEY="ollama-local"exportOPENCLAW_GATEWAY_TOKEN="replace-with-a-long-random-token"

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

{ 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 实例发现模型。([OpenClaw][2])

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

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


启动顺序

先起 Ollama。Ollama 官方 API 默认就在 http://localhost:11434/api。 ([Ollama Docs][4])

ollama serve ollama list 

然后起 llama.cpp

~/src/llama.cpp/build/bin/llama-server \-m ~/models/base/model.gguf \--host127.0.0.1 \--port8080\-c4096\-np1\-ctk q8_0 \-ctv q8_0 

再检查两个后端:

curl http://127.0.0.1:11434/api/tags curl http://127.0.0.1:8080/v1/models 

最后让 OpenClaw 读配置:

openclaw gateway restart openclaw models list openclaw health openclaw gateway status 

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

只有在这几种情况下才建议这么做:
你要连远程 Ollama、你想强制指定 contextWindow/maxTokens、或者你想完全手工管模型列表。官方文档明确说,远程 Ollama 时应使用 baseUrl: "http://host:11434",不要加 /v1,并把 api 设成 "ollama" 以保证原生工具调用行为。([OpenClaw][2])

对应模板是:

{ 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 写进去。([OpenClaw][5])

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

ssh-N-L18789:127.0.0.1:18789 user@jetson-host 

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

{ gateway: { mode: "remote", remote: { url: "ws://127.0.0.1:18789", token: "your-token", }, }, } 

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


两个最容易踩的坑

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

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

后面会陆续加入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”

Read more

服务器上 VsCode 的 Github Copilot:加载超时?优化与修复方案

服务器上 VS Code 的 GitHub Copilot 加载超时问题:优化与修复方案 当在服务器环境使用 VS Code 的 GitHub Copilot 时,加载超时通常由网络配置或资源限制引起。以下是结构化解决方案: 1. 网络层优化 配置代理(若需跨墙) 在 VS Code 的 settings.json 添加: "http.proxy": "http://your-proxy-ip:port", "https.proxy": "http://your-proxy-ip:port", "http.proxyStrictSSL"

Llama 3-8B-Instruct 在昇腾 NPU 上的 SGLang 性能实测

Llama 3-8B-Instruct 在昇腾 NPU 上的 SGLang 性能实测

1.引言 随着大模型在各类智能应用中的广泛应用,高效的推理硬件成为关键瓶颈。昇腾 NPU(Ascend Neural Processing Unit)凭借其高算力、低能耗以及对 SGLang 的深度优化,能够显著提升大模型推理性能。本文以 Llama 3-8B-Instruct 为例,通过在昇腾 NPU 上的实测,展示其在吞吐量、延迟和资源利用方面的优势,并探索可行的优化策略,为开发者在今后的开发中提供可参考的案例。 在本篇文章中我们会使用到Gitcode的Notebook来进行实战,GitCode Notebook 提供了开箱即用的云端开发环境,支持 Python、SGLang 及昇腾 NPU 相关依赖,无需本地复杂环境配置即可直接运行代码和进行实验。对于没有硬件平台的小伙伴来说是非常便利的。 GitCode Notebook使用链接:https://gitcode.com/user/m0_49476241/notebook。 2.实验环境与准备 2.

GitHub Copilot:Python开发者的AI助手

GitHub Copilot:Python开发者的AI助手 前言 大家好,我是第一程序员(名字大,人很菜)。作为一个非科班转码、正在学习Rust和Python的萌新,最近我开始使用GitHub Copilot。今天我想分享一下GitHub Copilot如何成为Python开发者的AI助手。 一、GitHub Copilot简介 1.1 什么是GitHub Copilot * AI编程助手:由GitHub和OpenAI合作开发的AI编程助手 * 代码生成:根据上下文自动生成代码 * 智能建议:提供智能的代码建议 * 多语言支持:支持多种编程语言,包括Python 1.2 GitHub Copilot的工作原理 * 基于GPT模型:使用OpenAI的GPT模型 * 代码训练:在大量开源代码上训练 * 上下文理解:理解代码的上下文和意图 * 实时建议:在编写代码时实时提供建议 二、GitHub Copilot在Python开发中的应用 2.1 代码生成 示例1:生成函数

医疗送药机器人“空间拓扑优化+动态算法决策+多级容错控制”三重链式编程技术解析与应用

医疗送药机器人“空间拓扑优化+动态算法决策+多级容错控制”三重链式编程技术解析与应用

一、引言 1.1 研究背景与意义 在医疗体系中,高效精准的药品配送是保障医疗服务质量和患者安全的关键环节。随着医疗技术的不断进步和医疗需求的日益增长,传统的人工送药方式逐渐暴露出诸多弊端,如配送效率低下、易受人为因素干扰导致错误率上升、人力成本高昂等。特别是在大型综合医院,科室众多、布局复杂,药品配送路径长且需经过多个区域,这使得人工送药的难度和工作量大幅增加,进而影响医疗服务的及时性和准确性。 医疗送药机器人的出现为解决这些问题提供了新的途径。它能够在医院复杂的环境中自主导航,按照预设的路径和时间准确地将药品送达指定地点,极大地提高了药品配送的效率和准确性。通过自动化的配送流程,送药机器人可有效减少人为因素造成的错误,如拿错药、送错药等情况,从而保障患者的用药安全。同时,送药机器人的应用还能将药师和护士从繁琐的药品配送工作中解放出来,使其能够将更多的时间和精力投入到临床药学服务和患者护理工作中,提高医疗服务的整体质量。 “空间拓扑优化 + 动态算法决策 + 多级容错控制” 三重链式编程技术的提出,为医疗送药机器人性能的进一步提升带来了革命性的突破。空间拓扑优化技术能够对医院的