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

(3-2)机器人身体结构与人体仿生学:人形机器人躯干系统

(3-2)机器人身体结构与人体仿生学:人形机器人躯干系统

3.2  人形机器人躯干系统 躯干是人形机器人的核心支撑与功能集成单元,承担连接四肢、容纳核心部件(电池、控制器、传感器)、传递运动力矩及维持动态平衡的多重使命。其设计需在人体仿生学(如脊柱运动特性、躯干质量分布)与工程实现(结构刚度、驱动效率、空间利用率)之间找到最优平衡,直接决定机器人的运动协调性、负载能力与运行稳定性。 3.2.1  躯干结构方案 人形机器人躯干结构如图3-6所示,躯干是连接四肢、承载核心部件(电池、控制器、传感器)并传递运动力矩的关键载体,其结构设计的核心矛盾是刚度与灵活性的平衡、集成效率与维护便捷性的取舍。 图3-6  人形机器人躯干的结构 当前工程领域形成了三类主流方案,均围绕“仿生适配+工程落地”展开,具体设计特性与适用场景如下。 1. 一体化结构方案 (1)设计逻辑: 以“极致刚性与结构稳定性”为核心,采用整体式无拆分框架,通过高性能复合材料一体成型工艺,

从0到1打造RISC-V智能家居中控:硬件+固件+通信全链路实战

从0到1打造RISC-V智能家居中控:硬件+固件+通信全链路实战

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🌱 无论你是刚入门的新手,还是正在进阶的开发者,希望你都能有所收获! 文章目录 * 从0到1打造RISC-V智能家居中控:硬件+固件+通信全链路实战 🏠💡 * 为什么选择RISC-V?🤔 * 系统整体架构概览 🧩 * 第一步:硬件选型与电路搭建 🔌 * 主控芯片选择 * 外设连接 * 第二步:开发环境搭建 🛠️ * 安装步骤(以Ubuntu为例) * 第三步:裸机驱动开发(Bare Metal)⚡ * 示例1:DHT11温湿度读取(Bit-banging) * 示例2:BH1750光照传感器(I2C) * 第四步:引入FreeRTOS实现多任务调度 🔄 * 第五步:Wi-Fi连接与MQTT通信 ☁️📡 * 连接Wi-Fi * MQTT客户端(使用esp-mqtt库) * 第六步:BLE本地控制(无需Wi-Fi)📱

FPGA Debug:PCIE XDMA没有Link up(驱动检测不到xilinx PCIE设备)使用LTSSM定位问题

FPGA Debug:PCIE XDMA没有Link up(驱动检测不到xilinx PCIE设备)使用LTSSM定位问题

问题现象: 与驱动联调:驱动无法扫描到Xilinx的PCIE设备 通过ila抓取pcie_link_up信号:发现link up一直为低 问题分析:         出现这种情况,在FPGA中搭建测试环境,使用XDMA+BRAM的形式,减少其它模块的影响,框架如下: 1 检查PCIE的时钟 时钟,必须使用原理图上的GT Ref 差分时钟,通过IBUFDSGTE转为单端时钟 2 检查PCIE 复位 复位:PCIE复位信号有要求--上电后,PCIE_RESTN信号需在电源稳定后延迟一段时间再释放,通常是100ms以上 而这100ms的时间,系统主要做以下的事情: * 电源稳定时间 * 参考时钟稳定时间 * PCIe IP核的复位和初始化时间 * 链路训练时间 // 典型的100ms时间分配: 0-10ms   : 电源稳定 (Power Stable) 10-20ms  : 参考时钟稳定 (Refclk Stable)   20-30ms  : 复位释放和PLL锁定 (Reset Release

LazyLLM 测评 | 低代码颠覆 AI 开发!代码专家智能体进阶模块实战

LazyLLM 测评 | 低代码颠覆 AI 开发!代码专家智能体进阶模块实战

摘要: LazyLLM 是商汤大装置推出的开源低代码框架,作为构建和优化多 Agent 应用的一站式开发框架,覆盖应用搭建、数据准备、模型部署、微调、评测等全流程开发环节,提供丰富的工具支持。其以模块化设计打破传统开发壁垒,通过数据流驱动重构开发逻辑,能让开发者用极简代码实现工业级复杂 AI 应用,摆脱冗余编码束缚,聚焦核心业务场景,降低 AI 应用构建成本并支持持续迭代优化。堪称 AI 开发者的 “效率神器”,其技术普惠理念为 AI 开发领域带来新的实践范式,推动了更高效的开发模式。本文将以Python编程为切入点,带你深入了解LazyLLM框架。 LazyLLM 是构建和优化多 Agent 应用的一站式开发工具,为应用开发过程中的全部环节(包括应用搭建、数据准备、模型部署、模型微调、评测等)提供了大量的工具,协助开发者用极低的成本构建 AI 应用,并可以持续地迭代优化效果。 LazyLLM作为商汤大装置推出的开源低代码框架,简直是AI开发者的“效率神器”