OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  chromadb-memory: 基于 ChromaDB 和本地 Ollama 的长期记忆系统

chromadb-memory: 基于 ChromaDB 和本地 Ollama 的长期记忆系统

 
  prompt ·  2026-02-02 06:26:27 · 3 次点击  · 0 条评论  

name: chromadb-memory
description: 通过 ChromaDB 与本地 Ollama 嵌入实现长期记忆。自动回忆功能会在每一轮对话中注入相关上下文。无需云 API——完全自托管。
version: 1.2.0
author: matts
homepage: https://github.com/openclaw/openclaw
metadata:
openclaw:
emoji: "🧠"
requires:
bins: ["curl"]
category: "memory"
tags:
- memory
- chromadb
- ollama
- vector-search
- local
- self-hosted
- auto-recall


ChromaDB 记忆插件

基于 ChromaDB 和本地 Ollama 嵌入的长期语义记忆。零云依赖。

功能概述

  • 自动回忆:在智能体每次响应前,使用用户消息查询 ChromaDB,并自动注入相关上下文。
  • chromadb_search 工具:手动对 ChromaDB 集合进行语义搜索。
  • 100% 本地化:使用 Ollama(nomic-embed-text 模型)生成嵌入,ChromaDB 进行向量存储。

前置要求

  1. 运行 ChromaDB(推荐使用 Docker):
    bash docker run -d --name chromadb -p 8100:8000 chromadb/chroma:latest

  2. 安装 Ollama 并拉取嵌入模型
    bash ollama pull nomic-embed-text

  3. 在 ChromaDB 中索引文档:使用任何兼容 ChromaDB 的索引工具来填充你的集合。

安装步骤

# 1. 复制插件扩展文件
mkdir -p ~/.openclaw/extensions/chromadb-memory
cp {baseDir}/scripts/index.ts ~/.openclaw/extensions/chromadb-memory/
cp {baseDir}/scripts/openclaw.plugin.json ~/.openclaw/extensions/chromadb-memory/

# 2. 将以下配置添加到你的 OpenClaw 配置文件 (~/.openclaw/openclaw.json) 中:
{
  "plugins": {
    "entries": {
      "chromadb-memory": {
        "enabled": true,
        "config": {
          "chromaUrl": "http://localhost:8100",
          "collectionName": "longterm_memory",
          "ollamaUrl": "http://localhost:11434",
          "embeddingModel": "nomic-embed-text",
          "autoRecall": true,
          "autoRecallResults": 3,
          "minScore": 0.5
        }
      }
    }
  }
}
# 4. 重启网关服务
openclaw gateway restart

配置选项

选项 默认值 描述
chromaUrl http://localhost:8100 ChromaDB 服务器 URL
collectionName longterm_memory 集合名称(自动解析 UUID,重新索引后仍有效)
collectionId 集合 UUID(可选备用项)
ollamaUrl http://localhost:11434 Ollama API URL
embeddingModel nomic-embed-text Ollama 嵌入模型
autoRecall true 是否在每轮对话中自动注入相关记忆
autoRecallResults 3 每轮自动回忆的最大结果数
minScore 0.5 最小相似度得分(0-1)

工作原理

  1. 你发送一条消息。
  2. 插件通过 Ollama(nomic-embed-text 模型,768 维)将你的消息转换为嵌入向量。
  3. 查询 ChromaDB 以寻找最相似的邻居向量。
  4. 得分高于 minScore 的结果会作为 <chromadb-memories> 标签内容注入到智能体的上下文中。
  5. 智能体在拥有相关长期上下文的情况下进行回复。

令牌开销

在最坏情况下,自动回忆功能每轮对话会增加约 275 个令牌(3 个结果 × 约 300 字符 + 包装文本)。相对于 20 万以上的上下文窗口,此开销可忽略不计。

调优建议

  • 结果太杂?minScore 提高到 0.6 或 0.7。
  • 缺少上下文?minScore 降低到 0.4,或将 autoRecallResults 增加到 5。
  • 只想手动搜索? 设置 autoRecall: false,并使用 chromadb_search 工具。

架构示意图

用户消息 → Ollama(嵌入) → ChromaDB(查询) → 上下文注入
                                                  ↓
                                          智能体响应

无需 OpenAI。无需云端服务。你的记忆始终保留在你的硬件上。

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor