跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashNode.jsAI

OpenClaw Memory 本地模式配置:Ubuntu CUDA cuDNN llama.cpp

综述由AI生成介绍在 Ubuntu 24.04 环境下配置 OpenClaw 使用本地 Memory 模式的完整流程。主要步骤包括安装 CUDA 和 cuDNN 驱动,编译支持 CUDA 的 llama.cpp,安装 node-llama-cpp 依赖,以及修改 openclaw.json 配置文件以启用本地向量检索。过程中解决了 sqlite-vec 加载失败及 GPU 验证报错等问题,最终实现无需 API Key 的本地语义记忆功能。

深海蔚蓝发布于 2026/4/5更新于 2026/5/2332 浏览

OpenClaw 的 Memory 配置

总结来说,针对 Memory 不生效的问题,又不想用 OpenAI 或 Gemini,或者只想单纯节省 token,可以按照如下方式设置为 local 模式:

  • 修改 openclaw.json 配置
  • 安装 CUDA 和 cuDNN
  • 编译 llama.cpp,使用 cuda
  • 安装 node-llama-cpp
  • 验证

背景:Memory 不生效的问题

执行 openclaw doctor 命令,有如下提示:

◇ Memory search Memory search is enabled but no embedding provider is configured. Semantic recall will not work without an embedding provider. Fix (pick one): - Set OPENAI_API_KEY or GEMINI_API_KEY in your environment - Add credentials: openclaw auth add --provider openai - For local embeddings: configure agents.defaults.memorySearch.provider and local model path - To disable: openclaw config set agents.defaults.memorySearch.enabled false Verify: openclaw memory status --deep 

这是因为'长期记忆检索'(memory_search)的 provider 只支持 openai | gemini | local,其中 openai/gemini 都需要单独的 API Key(或 remote.apiKey)。这一块网上的资料很少,且部分缺少上下文。我就决定自己来配置使用本地 (local) 模式的 Memory。

OpenClaw 的 Memory 配置

参考官网上的 Memory 介绍,我做了如下修改。1、修改 openclaw.json:如下,在 ~/.openclaw/openclaw.json 中,增加/修改如下内容:

"agents": {
  "defaults": {
    "model": { "primary": "zai/glm-5" },
    "models": { "zai/glm-5": { "alias": "GLM"  
     
     
       
       
       
         
         
         
         
      
    
     
        
     
       
          
       
          
          
       
         
           
           
        
      
    
  

}
}
,
"workspace"
:
"/home/band/.openclaw/workspace"
,
"compaction"
:
{
"mode"
:
"safeguard"
,
"reserveTokensFloor"
:
20000
,
"memoryFlush"
:
{
"enabled"
:
true
,
"softThresholdTokens"
:
4000
,
"systemPrompt"
:
"Session nearing compaction. Store durable memories now."
,
"prompt"
:
"Write any lasting notes to memory/YYYY-MM-DD.md; reply with NO_REPLY if nothing to store."
}
}
,
"maxConcurrent"
:
4
,
"subagents"
:
{
"maxConcurrent"
:
8
}
,
"memorySearch"
:
{
"provider"
:
"local"
,
"local"
:
{
"modelPath"
:
"hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf"
}
,
"fallback"
:
"none"
,
"sources"
:
[
"memory"
,
"sessions"
]
,
"experimental"
:
{
"sessionMemory"
:
true
}
,
"store"
:
{
"vector"
:
{
"enabled"
:
true
,
"extensionPath"
:
"~/.npm-global/lib/node_modules/sqlite-vec/node_modules/sqlite-vec-linux-x64/vec0.so"
}
}
}
}
}

注意:

  • modelPath 采用官方建议的模型,注意是模型名称,不是本地的目录,我就是在这卡了很久。
  • extensionPath 后文有讲到,修改为本地的目录

Ubuntu 24.04 安装 CUDA 和 cuDNN

按照官网的教程安装,地址:https://developer.nvidia.com/cuda-downloads

mkdir /opt/nvidia
cd /opt/nvidia
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin
sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/13.1.1/local_installers/cuda-repo-ubuntu2404-13-1-local_13.1.1-590.48.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2404-13-1-local_13.1.1-590.48.01-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2404-13-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-13-1

安装后,还需要设置环境变量:

echo 'export PATH=/usr/local/cuda-13.1/bin${PATH:+:${PATH}}' | sudo tee -a /etc/profile.d/cuda.sh
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-13.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' | sudo tee -a /etc/profile.d/cuda.sh
source /etc/profile.d/cuda.sh

验证:nvcc --version,提示如下表明已经 cuda toolkit 安装成功。

请添加图片描述

安装 cuDNN:

wget https://developer.download.nvidia.com/compute/cudnn/9.19.0/local_installers/cudnn-local-repo-ubuntu2404-9.19.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2404-9.19.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2404-9.19.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn

使用如下命令查看安装的目录:

# 注意大小写
dpkg -L libcudnn9-cuda-13
dpkg -l | grep cudnn

请添加图片描述

请添加图片描述

验证,与前文类似,先安装 Anaconda,再安装 pytorch,所有工作完成后。执行如下命令:python test_cuda.py

请添加图片描述

编译 llama.cpp

node-llama-cpp 会尝试构建 CUDA / Vulkan / CPU 三种版本,最终 fallback 到 CPU 版成功。为了避免用 CPU 版本,我先安装调试好 CUDA。我估计这一步可以采用官网的指引,Install llama.cpp using brew, nix or winget。 https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md

git clone https://github.com/ggml-org/llama.cpp.git
# 前提,要设置好环境变量,LLAMA_OPENSSL 是必要的,后面会有提示
cd llama.cpp
cmake -B build -DGGML_CUDA=ON -DLLAMA_OPENSSL=ON
cmake --build build --config Release

验证 llama.cpp 是否已经安装好

验证方案 1:

访问:https://huggingface.co/Qwen/Qwen3-0.6B-GGUF/tree/main,点击 Use this model,选择 llama.cpp,出现下面的窗口

请添加图片描述

因为我是再 WSL 中运行,就选择 cli 方案:

# Run inference directly in the terminal:
./build/bin/llama-cli -hf Qwen/Qwen3-0.6B-GGUF:Q8_0

如果出现下面的错误,加上 -DLLAMA_OPENSSL=ON 参数,重新编译 llama.cpp。

请添加图片描述

解决之后又有新的报错。暂时先到这里,没有继续验证,TODO

请添加图片描述

验证方案 2:下载并运行 Llama-2 7B 模型
# 安装并初始化 git-lfs(Git Large File Storage)
sudo apt install git-lfs
git lfs install

这个方案我没有做完。

安装 node-llama-cpp

npm install -g node-llama-cpp
# 此处官网文档和网上的资料都给了我误导
node-llama-cpp --version
# 3.16.1

验证 Memory

openclaw gateway restart
openclaw memory status --deep

正在下载模型到 ~/.node-llama-cpp/models,说明已经起作用了。

请添加图片描述

sqlite-vec unavailable

在 openclaw doctor 或 openclaw memory status --deep,还有个错误。

[memory] sqlite-vec unavailable: /home/band/sqlite-vec.so: cannot open shared object file: No such file or directory

循着网上的信息,找到正主:https://github.com/asg017/sqlite-vec,安装教程在:https://alexgarcia.xyz/sqlite-vec/installation.html,编译教程:https://alexgarcia.xyz/sqlite-vec/compiling.html

# 缺少什么安装什么
sudo apt-get update
sudo apt-get install unzip
sudo apt install -y libsqlite3-dev
git clone https://github.com/asg017/sqlite-vec
cd sqlite-vec
./scripts/vendor.sh
make loadable

按照官网的编译教程还是有误,就没继续。

我用了一个取巧的办法:

# 先安装,安装的目录在 ~/.npm-global/lib/node_modules/sqlite-vec/node_modules/sqlite-vec-linux-x64/vec0.so。
# 如果不知道在哪,可以先用 whereis node-llama-cpp/pnpm,找到 ~/.npm-global/bin/,lib 在同一个目录
npm install -g sqlite-vec

修改如下配置,重启 gateway,再执行 openclaw memory status --deep,问题修复:

"extensionPath": "~/.npm-global/lib/node_modules/sqlite-vec/node_modules/sqlite-vec-linux-x64/vec0.so"

踩过的坑

安装 node-llama-cpp 的一些提示

openclaw 的文档提示如下:

### [本地嵌入自动下载]
- 默认本地嵌入模型:`hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf`(约 0.6 GB)。
- 当 `memorySearch.provider = "local"` 时,`node-llama-cpp` 解析 `modelPath`;如果 GGUF 缺失,它会自动下载到缓存(或 `local.modelCacheDir`,如果已设置),然后加载它。下载在重试时会续传。
- 原生构建要求:运行 `pnpm approve-builds`,选择 `node-llama-cpp`,然后运行 `pnpm rebuild node-llama-cpp`。
- 回退:如果本地设置失败且 `memorySearch.fallback = "openai"`,我们自动切换到远程嵌入(`openai/text-embedding-3-small`,除非被覆盖)并记录原因。

运行 openclaw doctor,提示如下:

Memory search provider is set to "local" but no local model file was found. Fix (pick one):
- Install node-llama-cpp and set a local model path in config
- Switch to a remote provider: openclaw config set agents.defaults.memorySearch.provider openai
Verify: openclaw memory status --deep

看起来必须要安装 node-llama-cpp。于是继续搜寻资料。

cd ~/.openclaw/extensions
npm install node-llama-cpp
# 此时 node-llama-cpp 安装到 ~/.openclaw/extensions/node_modules,没有起作用。
pnpm approve-builds
# 提示没有需要编译的:There are no packages awaiting approval
npx --no node-llama-cpp inspect gpu
# 提示报错
安装 node-llama-cpp 的前置条件

OpenClaw 依赖 node-llama-cpp,网上说要原生编译安装。需要从源码编译 llama.cpp(大型 C++ AI 库)。所以要先编译 llama.cpp,还依赖 CUDA 和 cuDNN。所以正确的安装顺序是:

  • 安装 CUDA
  • 安装 cuDNN
  • 编译 llama.cpp
  • 原生编译安装 node-llama-cpp
# https://github.com/withcatai/node-llama-cpp.git
sudo apt-get update
sudo apt-get install build-essential cmake git libstdc++6 libgomp1
npx node-llama-cpp source download
npx node-llama-cpp source build

当我尝试执行 npx node-llama-cpp source download,一直报错。 此时我再尝试执行 npx --no node-llama-cpp inspect gpu,能正确执行,但是报错如下。让我很意外,怀疑是因为我把 llama.cpp 已经编译成功的缘故。

Vulkan: Vulkan is detected, but using it failed
To resolve errors related to Vulkan, see the Vulkan guide: https://node-llama-cpp.withcat.ai/guide/vulkan

请添加图片描述

Using node-llama-cpp With Vulkan

这个问题是在处理 node-llama-cpp 时遇到的,目前看没有影响,后面也没处理。

目录

  1. OpenClaw 的 Memory 配置
  2. 背景:Memory 不生效的问题
  3. OpenClaw 的 Memory 配置
  4. Ubuntu 24.04 安装 CUDA 和 cuDNN
  5. 注意大小写
  6. 编译 llama.cpp
  7. 前提,要设置好环境变量,LLAMA_OPENSSL 是必要的,后面会有提示
  8. 验证方案 1:
  9. Run inference directly in the terminal:
  10. 验证方案 2:下载并运行 Llama-2 7B 模型
  11. 安装并初始化 git-lfs(Git Large File Storage)
  12. 安装 node-llama-cpp
  13. 此处官网文档和网上的资料都给了我误导
  14. 3.16.1
  15. 验证 Memory
  16. sqlite-vec unavailable
  17. 缺少什么安装什么
  18. 先安装,安装的目录在 ~/.npm-global/lib/nodemodules/sqlite-vec/nodemodules/sqlite-vec-linux-x64/vec0.so。
  19. 如果不知道在哪,可以先用 whereis node-llama-cpp/pnpm,找到 ~/.npm-global/bin/,lib 在同一个目录
  20. 踩过的坑
  21. 安装 node-llama-cpp 的一些提示
  22. [本地嵌入自动下载]
  23. 此时 node-llama-cpp 安装到 ~/.openclaw/extensions/node_modules,没有起作用。
  24. 提示没有需要编译的:There are no packages awaiting approval
  25. 提示报错
  26. 安装 node-llama-cpp 的前置条件
  27. https://github.com/withcatai/node-llama-cpp.git
  28. Using node-llama-cpp With Vulkan
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • CLAUDE.md 与 AGENTS.md 完全指南:配置 AI 编程助手
  • 零门槛上手!小白也能封神,好用的AI写作平台
  • iTerm2 Snazzy 主题安装与个性化配置指南
  • 基于 Spring Cloud 的电商系统设计与实现:用户与商品模块
  • 2026 毕业季 AIGC 检测标准与论文降重应对指南
  • OpenGlass:大模型赋能的开源智能眼镜方案,支持语音控制与 AR 叠加
  • 基于视觉的增强现实特效技术解析与实战
  • Windows 安装 OpenClaw 配置 Qwen 与 Ollama 模型并接入飞书机器人
  • C++11 右值引用与移动语义详解:从性能瓶颈到零拷贝优化
  • 深入理解 Python 虚拟机:字典(dict)的内存优化
  • Windows 安装 OpenClaw 配置 Qwen 及 Ollama 本地模型并接入飞书机器人
  • Java 刷题常用集合类、函数及类型转换指南
  • 用老 Mac 跑本地 AI:OpenClaw 环境一键搭建
  • Android Framework 核心原理与源码解析:从启动流程到系统服务详解
  • Prometheus Pushgateway 安装配置与临时任务监控实践
  • WebAssembly 实战:Rust 计算模块与 Node.js 后端性能对比
  • AI 与传统方法处理历史观看数据的效率对比
  • CosyVoice 安装 openai-whisper 报错 ModuleNotFoundError 原因及解决方案
  • Android 性能优化实战指南:核心原理与面试应对策略
  • 文心一言功能详解与使用指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online