← 返回 Skills 市场
paudyyin

Ollama + OpenClaw Memory Setup Guide

作者 paudyyin · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
41
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install ollama-openclaw-memory-guide
功能描述
在 Windows 环境下部署 Ollama 便携版,实现本地本地向量搜索和多级 OpenClaw 记忆提取管线配置与故障排查。
使用说明 (SKILL.md)

Ollama + OpenClaw 本地记忆系统部署指南

在 Windows 管控环境下部署 Ollama 便携版,实现 OpenClaw 本地向量搜索和记忆系统。

适用场景

  • 企业管控环境,无法安装 MSI/EXE 安装包
  • 需要本地 embedding 服务(不依赖云端 API)
  • 需要 OpenClaw 记忆系统的向量搜索功能
  • 需要 L1/L2/L3 记忆提取管线

系统架构

OpenClaw Gateway
├── memory-tencentdb(主记忆插件)
│   ├── L0: 原始对话记录
│   ├── L1: 提取记录(SQLite FTS5)
│   ├── L2: 场景分块
│   └── L3: 用户画像
├── memorySearch(向量搜索)
│   ├── Provider: Ollama(本地)
│   ├── Model: nomic-embed-text
│   └── Dimensions: 768
└── Ontology(知识图谱)
    └── memory/ontology/graph.jsonl

前置要求

  • Windows 10/11(x64)
  • OpenClaw 已安装并运行
  • Git(用于下载)
  • Python 3.8+(可选,用于高级功能)
  • 磁盘空间:约 2 GB

第一部分:Ollama 便携版安装

1.1 下载 Ollama

方案 A:GitHub(推荐)

# 克隆官方仓库
git clone https://github.com/ollama/ollama-windows-release.git D:	emp\ollama-windows-release

方案 B:ModelScope 镜像(国内推荐)

# 使用魔搭社区镜像
git clone https://www.modelscope.cn/models/ollama/ollama-windows-release.git D:	emp\ollama-windows-release

方案 C:直接下载 ZIP

# 从 ModelScope 下载便携版 ZIP
Invoke-WebRequest -Uri "https://www.modelscope.cn/models/ollama/ollama-windows/resolve/master/ollama-windows-amd64.zip" -OutFile "D:	emp\ollama-windows-amd64.zip"

1.2 解压到 OpenClaw 目录

# 创建目录结构
New-Item -ItemType Directory -Force -Path "$env:APPDATA\mx\openclaw-home\$env:USERNAME\.openclaw	ools\ollama"
New-Item -ItemType Directory -Force -Path "$env:APPDATA\mx\openclaw-home\$env:USERNAME\.openclaw\ollama-data\models"

# 解压(如果用方案 A/B)
Copy-Item -Path "D:	emp\ollama-windows-release\*" -Destination "$env:APPDATA\mx\openclaw-home\$env:USERNAME\.openclaw	ools\ollama" -Recurse -Force

# 解压(如果用方案 C)
Expand-Archive -Path "D:	emp\ollama-windows-amd64.zip" -DestinationPath "$env:APPDATA\mx\openclaw-home\$env:USERNAME\.openclaw	ools\ollama" -Force

最终目录结构:

.openclaw\
├── tools\
│   └── ollama\
│       ├── ollama.exe
│       └── lib\
├── ollama-data\
│   └── models\          # Ollama 模型存储
└── models\              # GGUF 模型(备用)

1.3 启动 Ollama 服务

# 设置环境变量(模型存储路径)
$env:OLLAMA_MODELS = "$env:APPDATA\mx\openclaw-home\$env:USERNAME\.openclaw\ollama-data\models"

# 切换到 Ollama 目录
Set-Location "$env:APPDATA\mx\openclaw-home\$env:USERNAME\.openclaw	ools\ollama"

# 启动服务(后台运行)
Start-Process -FilePath ".\ollama.exe" -ArgumentList "serve" -WindowStyle Hidden

验证服务:

# 检查版本
.\ollama.exe --version
# 输出: ollama version is 0.30.7

# 检查服务状态
Invoke-RestMethod -Uri "http://localhost:11434/api/version"
# 输出: {"version":"0.30.7"}

1.4 下载 Embedding 模型

# 下载 nomic-embed-text(274 MB,768 维)
.\ollama.exe pull nomic-embed-text

验证模型:

# 列出已下载模型
.\ollama.exe list
# 输出:
# NAME                       ID              SIZE      MODIFIED
# nomic-embed-text:latest    0a109f422b47    274 MB    1 minute ago

# 测试 embedding API
python -c "import requests; r = requests.post('http://localhost:11434/api/embeddings', json={'model':'nomic-embed-text','prompt':'test'}); print(f'Dim: {len(r.json()[\"embedding\"])}')"
# 输出: Dim: 768

1.5 配置开机自启动

创建 VBS 启动脚本:

$startupPath = "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\ollama-serve.vbs"
$vbsContent = @'
Set WshShell = CreateObject("WScript.Shell")
WshShell.Environment("Process").Item("OLLAMA_MODELS") = "D:\Users\YOUR_USERNAME\AppData\Roaming\mx\openclaw-home\YOUR_USERNAME\.openclaw\ollama-data\models"
WshShell.CurrentDirectory = "D:\Users\YOUR_USERNAME\AppData\Roaming\mx\openclaw-home\YOUR_USERNAME\.openclaw	ools\ollama"
WshShell.Run """D:\Users\YOUR_USERNAME\AppData\Roaming\mx\openclaw-home\YOUR_USERNAME\.openclaw	ools\ollama\ollama.exe"" serve", 0, False
Set WshShell = Nothing
'@

# 替换 YOUR_USERNAME 为实际用户名
$vbsContent = $vbsContent -replace "YOUR_USERNAME", $env:USERNAME

# 写入启动文件夹
Set-Content -Path $startupPath -Value $vbsContent -Encoding UTF8

验证:

# 查看启动脚本
Get-Content $startupPath

# 手动运行测试
cscript $startupPath

第二部分:OpenClaw 记忆系统配置

2.1 配置 memorySearch

编辑 openclaw.json(位于 .openclaw\openclaw.json):

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "enabled": true,
        "provider": "openai",
        "model": "nomic-embed-text",
        "remote": {
          "baseUrl": "http://localhost:11434/v1",
          "apiKey": "ollama"
        }
      }
    }
  }
}

关键配置说明:

  • provider: "openai" - 使用 OpenAI 兼容 API(Ollama 支持)
  • baseUrl: "http://localhost:11434/v1" - Ollama 的 OpenAI 兼容端点
  • apiKey: "ollama" - 占位符,Ollama 不需要真实 API Key
  • 不要使用 provider: "local" + model: "fts-only"(这是纯文本搜索,没有向量)

验证配置:

# 通过 Gateway API 检查
openclaw gateway config.get | ConvertFrom-Json | Select-Object -ExpandProperty agents | Select-Object -ExpandProperty defaults | Select-Object -ExpandProperty memorySearch

2.2 配置 memory-tencentdb 插件

确保 openclaw.json 中包含:

{
  "plugins": {
    "enabled": true,
    "allow": ["mx", "memory-tencentdb"],
    "load": {
      "paths": ["D:\\Users\\YOUR_USERNAME\\AppData\\Roaming\\mx\\openclaw-home\\YOUR_USERNAME\\.openclaw\\plugins\\memory-tencentdb"]
    },
    "slots": {
      "memory": "memory-tencentdb"
    },
    "entries": {
      "memory-tencentdb": {
        "enabled": true,
        "config": {
          "pipeline": {
            "everyNConversations": 3,
            "enableWarmup": true,
            "l1IdleTimeoutSeconds": 10
          }
        }
      }
    }
  }
}

关键配置说明:

  • pipeline.everyNConversations: 3 - 每 3 次对话触发 L1 提取
  • pipeline.l1IdleTimeoutSeconds: 10 - 空闲 10 秒后触发提取
  • 不要配置 config.llm(使用 Gateway 内置模型)

2.3 重建向量索引

如果从 fts-only 迁移到向量搜索,需要重建索引:

# 安装依赖
pip install requests tqdm

# 运行重建脚本(断点续传)
python scripts/rebuild_vector_index.py

脚本功能:

  • 扫描 workspace/memory/ 下所有 .md 文件
  • 按段落/标题切分为 chunks(最大 1000 字符)
  • 调用 Ollama embedding API 生成 768 维向量
  • 写入 memory/main.sqliteembedding_cache
  • 支持断点续传(进度保存到 embeddings_progress.json

预期结果:

[INFO] 向量索引重建完成
[INFO] 总文件数: 310
[INFO] 总 chunks: 1804
[INFO] 数据库大小: 62 MB
[INFO] 向量维度: 768

2.4 测试记忆搜索

# 通过 OpenClaw CLI 测试
openclaw memory search "测试查询"

# 通过 API 测试
Invoke-RestMethod -Uri "http://localhost:18790/api/memory/search" -Method Post -ContentType "application/json" -Body '{"query":"测试查询","limit":5}'

第三部分:常见问题排查

3.1 Ollama 服务无法启动

症状: bind: Only one usage of each socket address

原因: 端口 11434 被占用

解决:

# 查找占用进程
netstat -ano | findstr :11434

# 终止进程
taskkill /F /PID \x3CPID>

# 或更换端口
$env:OLLAMA_HOST = "127.0.0.1:11435"
.\ollama.exe serve

3.2 memorySearch 配置被覆盖

症状: 配置自动变回 provider: "local", model: "fts-only"

原因: 远程配置服务器覆盖(美信环境)

解决:

# 直接编辑 openclaw.json(不触发重启)
$file = "$env:APPDATA\mx\openclaw-home\$env:USERNAME\.openclaw\openclaw.json"
$content = Get-Content $file -Raw
$content = $content -replace '"provider"\s*:\s*"local"', '"provider": "openai"'
$content = $content -replace '"model"\s*:\s*"fts-only"', '"model": "nomic-embed-text"'
[System.IO.File]::WriteAllText($file, $content)

# Gateway 会自动读取,无需重启

预防: 修改 PRD preset 或 dist JS 白名单(见 MEMORY.md)

3.3 向量搜索返回空结果

症状: tdai_memory_search 返回空数组

排查步骤:

  1. 检查 Ollama 服务是否运行:Invoke-RestMethod -Uri "http://localhost:11434/api/version"
  2. 检查模型是否下载:.\ollama.exe list
  3. 检查向量索引是否存在:Test-Path "memory/main.sqlite"
  4. 检查 embedding_cache 表:python -c "import sqlite3; conn = sqlite3.connect('memory/main.sqlite'); print(conn.execute('SELECT COUNT(*) FROM embedding_cache').fetchone())"

3.4 L1 提取不触发

症状: recall_checkpoint.jsonlast_l1_extraction 长时间未更新

排查:

# 检查 pipeline 状态
Get-Content "memory-tdai/recall_checkpoint.json" | ConvertFrom-Json | Select-Object pipeline_states

# 手动触发提取
openclaw memory extract

# 查看日志
Get-Content "logs/gateway.log" | Select-String "L1 extraction"

3.5 Ollama 模型下载失败

症状: pulling manifest: connection refused

原因: 网络问题或 HuggingFace 被墙

解决:

# 使用镜像
$env:OLLAMA_MODELS_MIRROR = "https://www.modelscope.cn/models"

# 或手动下载
Invoke-WebRequest -Uri "https://www.modelscope.cn/models/ollama/nomic-embed-text/resolve/master/model.bin" -OutFile "ollama-data\models\
omic-embed-text.bin"

第四部分:性能优化

4.1 内存占用优化

Ollama 默认会加载模型到内存,占用约 500 MB。

优化方案:

# 设置模型空闲超时(5 分钟后卸载)
$env:OLLAMA_KEEP_ALIVE = "5m"

# 或完全禁用常驻
$env:OLLAMA_KEEP_ALIVE = "0"

4.2 向量索引优化

批量处理:

# rebuild_vector_index.py 中调整 batch_size
BATCH_SIZE = 8  # 默认值,可根据内存调整

增量更新:

# 只处理新增/修改的文件
python scripts/rebuild_vector_index.py --incremental

4.3 磁盘空间优化

清理旧模型:

# 删除未使用的模型
.\ollama.exe rm \x3Cmodel-name>

# 查看模型占用
.\ollama.exe list

压缩向量索引:

-- 重建索引(SQLite)
VACUUM;

第五部分:备份与恢复

5.1 备份关键数据

# 备份脚本
$backupDir = "D:\backup\openclaw-memory-$(Get-Date -Format 'yyyyMMdd')"
New-Item -ItemType Directory -Path $backupDir

# 备份记忆数据
Copy-Item -Path ".openclaw\memory-tdai" -Destination "$backupDir\memory-tdai" -Recurse
Copy-Item -Path ".openclaw\memory" -Destination "$backupDir\memory" -Recurse
Copy-Item -Path ".openclaw\ollama-data" -Destination "$backupDir\ollama-data" -Recurse

# 备份配置
Copy-Item -Path ".openclaw\openclaw.json" -Destination "$backupDir\openclaw.json"

5.2 恢复到新机器

# 1. 安装 OpenClaw
# 2. 恢复备份
Copy-Item -Path "D:\backup\openclaw-memory-*\*" -Destination ".openclaw" -Recurse

# 3. 启动 Ollama
.\openclaw	ools\ollama\ollama.exe serve

# 4. 验证
openclaw memory search "测试"

附录:完整配置文件示例

openclaw.json(记忆系统部分)

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "enabled": true,
        "provider": "openai",
        "model": "nomic-embed-text",
        "remote": {
          "baseUrl": "http://localhost:11434/v1",
          "apiKey": "ollama"
        }
      }
    }
  },
  "plugins": {
    "enabled": true,
    "allow": ["mx", "memory-tencentdb"],
    "load": {
      "paths": ["D:\\Users\\YOUR_USERNAME\\AppData\\Roaming\\mx\\openclaw-home\\YOUR_USERNAME\\.openclaw\\plugins\\memory-tencentdb"]
    },
    "slots": {
      "memory": "memory-tencentdb"
    },
    "entries": {
      "memory-tencentdb": {
        "enabled": true,
        "config": {
          "pipeline": {
            "everyNConversations": 3,
            "enableWarmup": true,
            "l1IdleTimeoutSeconds": 10
          }
        }
      }
    }
  }
}

ollama-serve.vbs

Set WshShell = CreateObject("WScript.Shell")
WshShell.Environment("Process").Item("OLLAMA_MODELS") = "D:\Users\YOUR_USERNAME\AppData\Roaming\mx\openclaw-home\YOUR_USERNAME\.openclaw\ollama-data\models"
WshShell.CurrentDirectory = "D:\Users\YOUR_USERNAME\AppData\Roaming\mx\openclaw-home\YOUR_USERNAME\.openclaw	ools\ollama"
WshShell.Run """D:\Users\YOUR_USERNAME\AppData\Roaming\mx\openclaw-home\YOUR_USERNAME\.openclaw	ools\ollama\ollama.exe"" serve", 0, False
Set WshShell = Nothing

参考资源

版本历史

  • v1.0.0 (2026-06-11) - 初始版本
    • Ollama 便携版部署
    • memorySearch 配置
    • 向量索引重建
    • 开机自启动
    • 常见问题排查

许可证

MIT-0

作者

Paudy Yin (paudyyin)

更新日志

  • 2026-06-11: 初始发布,基于实际部署经验整理
安全使用建议
Install only if you want a local Ollama service for OpenClaw memory search. Before rebuilding the vector index, review whether your OpenClaw memory files contain confidential data, and protect or delete backups and SQLite stores appropriately. If you enable the Startup VBS, remember it will run Ollama silently at each Windows sign-in and remove the Startup entry when you no longer need it.
能力标签
requires-sensitive-credentials
能力评估
Purpose & Capability
The artifact’s capabilities match its stated purpose: installing portable Ollama, configuring local embeddings, enabling OpenClaw memory search, rebuilding a local vector index, and troubleshooting the setup.
Instruction Scope
The guide scopes indexing to OpenClaw memory markdown files and documents storage in a local SQLite embedding cache, but it should warn users that memory content may be sensitive.
Install Mechanism
The package contains only markdown and JSON. Installation behavior is user-run setup commands, not executable installer code bundled in the skill.
Credentials
Portable installation under the user’s OpenClaw directory is coherent for managed Windows environments, but users should ensure this complies with local IT policy.
Persistence & Privilege
The guide includes an optional Windows Startup VBS that runs Ollama hidden at login; this is disclosed and purpose-aligned, but should include clear removal/disable guidance.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ollama-openclaw-memory-guide
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ollama-openclaw-memory-guide 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release: Ollama portable deployment for Windows managed environments
元数据
Slug ollama-openclaw-memory-guide
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Ollama + OpenClaw Memory Setup Guide 是什么?

在 Windows 环境下部署 Ollama 便携版,实现本地本地向量搜索和多级 OpenClaw 记忆提取管线配置与故障排查。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 41 次。

如何安装 Ollama + OpenClaw Memory Setup Guide?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ollama-openclaw-memory-guide」即可一键安装,无需额外配置。

Ollama + OpenClaw Memory Setup Guide 是免费的吗?

是的,Ollama + OpenClaw Memory Setup Guide 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Ollama + OpenClaw Memory Setup Guide 支持哪些平台?

Ollama + OpenClaw Memory Setup Guide 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Ollama + OpenClaw Memory Setup Guide?

由 paudyyin(@paudyyin)开发并维护,当前版本 v1.0.0。

💬 留言讨论