🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

长期记忆库 baaai123/solo-memory

DeepSeek Harness
baaai12343 天前有提交已提供中文文档扫描:含敏感能力

自动记住对话偏好与踩坑,检索时注入相关上下文

32/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/baaai123/solo-memory.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · chat
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 43 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/30) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包solo-memory(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:10:59

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令
查看扫描证据(共 6 处,展示前 6 条)
  • 执行外部命令来自配置/变量
    opencode-auto-memory/index.js:75
    execFileSync(PY, ["-m", "pip", "install", "-q", "-r", REQUIREMENTS], { cwd: PROJECT });
  • 执行外部命令来自配置/变量
    opencode-auto-memory/index.js:97
    execFileSync(cmd, [...pre, "-m", "venv", VENV], { cwd: PROJECT, stdio: "pipe" });
  • 执行外部命令来自配置/变量
    opencode-auto-memory/index.js:123
    execFileSync(PY, ["-m", "pip", "install", "-q", "optimum[onnxruntime]", "huggingface_hub"], { cwd: PROJECT, timeout: 600000, stdio: "pipe", env });
  • 执行外部命令来自配置/变量
    opencode-auto-memory/index.js:124
    execFileSync(PY, [path.join(PROJECT, "scripts", "download_model.py")], { cwd: PROJECT, timeout: 900000, stdio: "inherit", env });
  • 执行外部命令固定命令
    opencode-auto-memory/index.js:126
    execFileSync("bash", [path.join(PROJECT, "download_model.sh")], { cwd: PROJECT, timeout: 900000, stdio: "inherit", env });
  • 执行外部命令来自配置/变量
    opencode-auto-memory/index.js:140
    const child = execFile(
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 记住对话偏好
  • 记录踩坑经验
  • 检索注入上下文

README

由 DeepSeek 最新模型翻译生成
记忆技能 记忆技能 为 AI Agent 打造的长期记忆插件(中文为主,中英双语可用)— 本地优先、双模型记忆、可自我进化。 哼,杂鱼又忘事了吧? 过去聊过什么、你爱用什么技术栈、哪个 bug 踩过几遍,我全替你记着呢。下次开口前先给你递小抄,省得你像个金鱼一样三秒重置,把 token 浪费在重复自我介绍和重复 websearch 上。已经学过的东西我会拦着不让你再学一遍,没学过的才放你去搜——帮你省 token、省时间,别不识好歹。当然啦,才、才不是特地为你准备的,只是看不得你每次都从零开始犯蠢而已。 为 AI Agent(Claude / OpenAI / 自研 LLM)提供持久化的长期记忆:每次对话自动存取,检索时注入相关记忆上下文,对话碎片经提炼后沉淀为结构化知识。零 API 检索(本地向量检索),所有 LLM 决策由主 agent 完成(模块为纯存储+检索,不越俎代庖——见 ADR-0002)。 语言支持:中英双语均可存取,检索信号各有侧重——中文由 BM25(jieba 分词)主导,英文由语义向量(bge-large-en-v1.5)主导。插件本身语言无关,中文/英文对话都能自动记忆。
展开完整文档(README 剩余 1 节)
记忆技能

记忆技能

为 AI Agent 打造的长期记忆插件(中文为主,中英双语可用)— 本地优先、双模型记忆、可自我进化。

哼,杂鱼又忘事了吧? 过去聊过什么、你爱用什么技术栈、哪个 bug 踩过几遍,我全替你记着呢。下次开口前先给你递小抄,省得你像个金鱼一样三秒重置,把 token 浪费在重复自我介绍和重复 websearch 上。已经学过的东西我会拦着不让你再学一遍,没学过的才放你去搜——帮你省 token、省时间,别不识好歹。当然啦,才、才不是特地为你准备的,只是看不得你每次都从零开始犯蠢而已。

为 AI Agent(Claude / OpenAI / 自研 LLM)提供持久化的长期记忆:每次对话自动存取,检索时注入相关记忆上下文,对话碎片经提炼后沉淀为结构化知识。零 API 检索(本地向量检索),所有 LLM 决策由主 agent 完成(模块为纯存储+检索,不越俎代庖——见 ADR-0002)。

语言支持:中英双语均可存取,检索信号各有侧重——中文由 BM25(jieba 分词)主导,英文由语义向量(bge-large-en-v1.5)主导。插件本身语言无关,中文/英文对话都能自动记忆。

特性

| 特性 | 说明 |
| 两半记忆模型 | 非结构化对话 + 结构化知识(pref/pers/skill/mission/conclusion) |
| 自动存取 | weave 自动注入上下文;透明代理下 Agent 零改动 |
| 主动检索 | Agent 引用记忆标题 → 自动展开为完整上下文 |
| 碎片隔离 | 未分类对话碎片不污染 weave 注入(tier2/nudge/[近期记忆] 只显示结构化记忆),碎片仍可显式搜索 |
| 候选提炼 | distill 将对话碎片压缩为带证据的候选卡 → 主 agent 审核 → 自动转正结构化记忆 |
| 反馈演化 | 记忆权重随使用自动演化(去重+0.05 / 引用+0.02 / 反馈+0.05) |
| 三层注入 | tier1 场景感知 + tier2 结构化记忆 + nudge 高优记忆 |
| 透明接入 | MCP 工具 / OpenAI 兼容代理 / Python API 三通道 |

架构

┌────────────────────────────── Agent 层 ──────────────────────────────┐ │ MCP 工具 (15个) 透明代理 (auto_context) Python API │ │ 决策权全部在主 agent:分类/拆解/教学/审核 —— 模块不越俎代庖 │ └──────────────────────────────┬──────────────────────────────────────┘ │ ┌─────────────────────────── MemorySystem ────────────────────────────┐ │ 写链 (IngestPipeline) 读链 (Weaver 10区块) 检索 (RRF) │ │ │ ingest_dialogue │ tier1/tier2 │ BM25 ×2.5 │ │ │ dedup (语义合并) │ nudge/[历史结论] │ semantic ×0.5 │ │ │ 碎片 → default 分类 │ skill/mission/pref/pers │ temporal ×0.5 │ │ └ teach_skill (结构化) └ 树导航/[待审核提炼] └ │ ├──────────────────────────────────────────────────────────────────────┤ │ 提炼层 (distill) 审核层 (pending_store) 存储层 │ │ 碎片→候选卡(带证据) accepted→自动转正 SQLite FTS5 │ │ offset 窗口遍历历史 rejected→丢弃 ChromaDB (1024-dim) │ │ 只压缩不断言(防捏造) skill 保留人工 teach SawRingBuffer │ │ evidence 必须真实存在 (source_urls 铁律) TreeManager │ └──────────────────────────────────────────────────────────────────────┘

数据流(闭环)

对话 → Ingestor → [SQLite 对话库] + [ChromaDB 向量库] + [记忆树] │ ├── 碎片 (default 分类) ──→ distill ──→ pending 候选 │ │ │
│ [待审核提炼]提醒 ├─ accepted → 自动转正
│ │ │ ↓
│ │ └─ rejected → 丢弃 │ │ 结构化记忆 │ │ (skill/pref/pers/ │ │ mission/conclusion) └── 检索 (RRF k=60) ←──────────┘ ↓ ↓ Weaver 组装 10 区块注入 Agent 提示词 ←────────────────────┘

检索信号(RRF 融合)

| 信号 | 权重 | 来源 |
| BM25 全文 | 2.5 | SQLite FTS5,jieba 中文分词(中文主导) |
| 语义向量 | 0.5 | ChromaDB,bge-large-en-v1.5 (1024-dim)(英文主导) |
| 时间衰减 | 0.5 | weight × exp(-0.01 × hours) |

语言说明:检索是 RRF 融合——中文内容主要靠 BM25(jieba 对中文分词准确),英文内容主要靠语义向量(bge-large-en-v1.5 是英文专用模型)。两路互补:中文记忆靠 BM25 召回,英文记忆靠语义召回,均可在同库中检索。若需单模型统一中英语义检索,可替换为多语言嵌入模型(如 bge-m3,需重新嵌入历史记忆)。

15 个 MCP 工具

| 工具 | 用途 |
| memory_weave | 注入分层记忆上下文(含自动存取) |
| memory_search | 检索记忆(RRF 融合,碎片也可显式查) |
| memory_ingest | 存储对话 |
| memory_status | 健康检查 |
| memory_feedback | 反馈权重演化 |
| memory_classify | 分类对话(chat/skill/mission/pref/pers)——协议门控要求每轮调用 |
| memory_check_skill | 检查技能是否已掌握(known/partial/unknown) |
| memory_teach_skill | 教学写入(强制 source_urls 防捏造) |
| memory_update_skill | 更新技能 |
| memory_learning_queue | 查看学习队列(待学习/待拆解) |
| memory_learning_mark | 关闭学习队列条目 |
| memory_distill | 提炼对话碎片为候选卡(offset 遍历历史) |
| memory_pending | 查看待审核候选 |
| memory_pending_mark | 确认/拒绝候选(accepted 自动转正) |
| memory_conclusions | 查询结论条目 |

安装

依赖

| 依赖 | 用途 | 必需 |
| chromadb | 向量存储 | ✅ |
| numpy | 向量运算 | ✅ |
| jieba | 中文分词(BM25) | ✅ |
| mcp | MCP 服务器 | ✅(工具模式) |
| click | CLI | ✅ |
| pydantic / tenacity / openai / requests | LLM 调用 | ✅ |
| python-dotenv | 环境变量 | ✅ |
| onnxruntime + tokenizers | ONNX 嵌入 | ⚠️ 强烈建议(缺则 SHA-256 fallback —— 语义检索、去重合并、can_answer 学习判定、tier2/nudge 全部失效,仅剩 BM25 可用) |
| llama-cpp-python | 本地 LLM(查询改写/自动反馈) | ⚠️ 可选 |

基础安装
pip install -e . # 核心(含 mcp/jieba)
pip install -e ".[onnx]" # 加 ONNX 嵌入(推荐,检索精度关键)
pip install -e ".[full]" # 全部(ONNX + 本地 LLM)
或直接
pip install -r requirements.txt

下载嵌入模型

./download_model.sh # 下载 bge-large-en-v1.5 → models/

⚠️ 不下载模型 = 插件降级运行:无 ONNX 模型时插件静默使用 SHA-256 hash 嵌入,语义检索 / 记忆去重 / 学习能力判定 / tier2 上下文全部失效,仅中文 BM25 检索可用。
setup.sh 默认会自动下载模型(直连失败自动换 hf-mirror.com 镜像);网络受限时手动执行 HF_ENDPOINT=https://hf-mirror.com ./download_model.sh。
明确接受降级:./setup.sh --no-model 或环境变量 MEMORY_SKIP_MODEL=1。

配置环境变量

复制 .env.example 为 .env 并填入:

IMPORTANCE_API_KEY=sk-xxx # LLM 分类/合成用
MEMORY_SKILL_DB_PATH=memory.db # 数据库路径
MEMORY_MODEL_PATH=models/bge-large-en-v1.5

LLM 模型配置(默认 DeepSeek V4 Flash,可换任意 OpenAI 兼容模型)

系统通过 OpenAI 兼容接口调用 LLM(用于记忆分类/合成/学习)。默认指向 DeepSeek V4 Flash,但你可以用任何 OpenAI 兼容模型/服务——只需改 3 个环境变量:

IMPORTANCE_API_BASE=https://api.deepseek.com/v1 # API 地址(OpenAI 兼容)
IMPORTANCE_API_KEY=sk-xxx # 你的 key
IMPORTANCE_MODEL=deepseek-v4-flash # 模型名

示例:换 OpenAI
IMPORTANCE_API_BASE=https://api.openai.com/v1
IMPORTANCE_MODEL=gpt-4o-mini

示例:换本地 vLLM / Ollama
IMPORTANCE_API_BASE=http://127.0.0.1:8000/v1
IMPORTANCE_MODEL=qwen2.5-7b-instruct

兼容任何提供 /v1/chat/completions 的服务(OpenAI、Qwen、GLM、Moonshot、本地 vLLM 等)。默认值经过 DeepSeek V4 Flash 调优(如 max_tokens 预留),换模型后若分类/合成结果异常,可调整 IMPORTANCE_* 相关参数。

使用教程(从零到会用)

方式 A:让 AI 自己安装(最快,推荐)

把仓库 URL 直接交给你的 AI Agent,告诉它:

安装 https://github.com/baaai123/solo-memory 并接入我的 OpenCode。

步骤:
1. git clone https://github.com/baaai123/solo-memory
2. 运行 ./setup.sh(创建 venv + 安装依赖 + 配置嵌入模型)
3. 在 opencode.json 注册插件 opencode-auto-memory
4. 在 .env 里填我自己的 IMPORTANCE_API_KEY(用我自己的 LLM API key)

注:./setup.sh 一键完成环境搭建;opencode-auto-memory 插件会自动注入记忆上下文并自动存储对话,Agent 无需手动调用记忆工具。

AI 会自主完成 clone → 环境搭建 → 插件注册。你只需在 .env 里填你自己的 LLM API key(用于记忆分类/合成/学习,走你自己的 API 账号计费)。

为什么可行:setup.sh 已封装环境搭建;opencode-auto-memory 插件含首次运行自动引导(venv 缺失时自动创建)。唯一人肉步骤是提供 API key——任何记忆系统都无法替你保管私钥。

方式 B:手动安装(逐步)

下面以 OpenCode + 自动记忆插件 为例。其他 Agent(Claude Code / Cursor)流程相同,只是配置文件名不同。

第 1 步:下载并安装

git clone https://github.com/baaai123/solo-memory
cd solo-memory

一键环境搭建(创建 venv + 安装依赖 + 配置嵌入模型) ./setup.sh

或手动:
python3 -m venv venv && source venv/bin/activate && pip install -e ".[onnx]"
./download_model.sh # bge-large-en-v1.5 → models/

第 2 步:配置密钥

cp .env.example .env
编辑 .env,填入 LLM API Key(用于记忆分类/合成/学习)
IMPORTANCE_API_KEY=sk-xxx

第 3 步:把 SKILL.md 交给 Agent

SKILL.md 是 Agent 的记忆使用协议——把它放进你的 Agent 知识库,或在配置中引用:

- OpenCode: 放到项目根(Agent 自动读取 AGENTS.md/技能目录),或通过 prompt_append 注入协议
- Claude Code: 放入 CLAUDE.md 引用,或作为 skill 文件
- Cursor: 放入 .cursor/rules/ 或项目 rules

协议核心(SKILL.md 全文见仓库):

BEFORE responding: memory_weave(user_message) → 注入记忆上下文 AFTER 重要交互: memory_ingest(role, content) → 存入记忆需要更多时: memory_search(query) → 深度检索会话开始: memory_status → 健康检查

第 4 步:注册自动记忆插件

在 ~/.config/opencode/opencode.json 的 plugin 数组加入插件路径:

{
"plugin": [
"/abs/path/to/solo-memory/opencode-auto-memory"
]
}

插件会自动注入记忆上下文(chat.message hook)并自动存储对话(event hook)——Agent 无需手动调工具。

如需 MCP 工具方式(手动调用 memory_search 等),见下方 快速开始 → 方式 2。

第 5 步:重启 Agent 并验证

重启 Agent 会话,让 Agent 调用记忆工具:

Agent 应能看到并调用这些工具(15 个,核心 5 个): memory_search / memory_weave / memory_ingest / memory_status memory_feedback / memory_classify / memory_teach_skill / memory_distill

快速验证:让 Agent 说一句重要信息(如"我偏好用 Python 写后端"),重启会话后再问它——如果它还记得,说明记忆已生效。

快速开始

方式 1:透明代理(Agent 零改动)

DEEPSEEK_API_KEY=sk-xxx ./start.sh --port 8888

Agent 设置
export OPENAI_API_BASE=http://127.0.0.1:8888/v1

每次 chat 请求自动注入记忆、响应自动存回——Agent 完全不感知记忆系统。

方式 2:MCP 工具(OpenCode / Claude Code 等)

{
"mcp": {
"opencode-memory": {
"type": "local",json
"command": ["/abs/path/venv/bin/python", "-m", "memory_skill.mcp_server"],
"environment": {
"MEMORY_SKILL_DB_PATH": "/abs/path/opencode_memory.db",
"IMPORTANCE_API_KEY": "sk-xxx"
}
}
}
}

Hermes Agent:也支持 MCP——在 mcp_servers 配置段接入本 server 作为增强记忆(RRF 双信号检索 + 学习闭环)。配置见 docs/INTEGRATION.md。

方式 4:自动记忆插件(推荐,agent 零感知) json {
"plugin": ["/abs/path/to/solo-memory/opencode-auto-memory"]
}

chat.message 自动注入记忆、event 自动存储——agent 不需要记得调任何工具。详见 opencode-auto-memory/README.md。

详见 docs/INTEGRATION.md。

方式 3:Python API python from memory_skill import MemorySkill, MemorySkillConfig, DialogueTurn

skill = MemorySkill(MemorySkillConfig(db_path="memory.db"))

存储对话
skill.ingest(DialogueTurn(role="user", content="我推荐使用 FastAPI", ...))

注入记忆上下文
ctx = skill.weave("FastAPI 是什么?")
print(ctx.to_prompt_block())

主动检索
skill.expand("FastAPI")

提炼候选(对话碎片 → 待审核候选)
skill.distill() # 或 MCP: memory_distill

查看/审核候选
skill.pending() # 或 MCP: memory_pending / memory_pending_mark

提炼与审核(主动学习 v2)

08-11 重写后,记忆模块为纯存储+检索,所有学习决策由主 agent 完成(ADR-0002)。主动学习闭环变为:

对话碎片 ── memory_distill ──→ 候选卡 (topic/summary/evidence/suggested) │ evidence 必须引用真实对话 id(防捏造) │ 只压缩不断言,suggested 只是建议 ↓
pending_store (SQLite,不进检索库)
│
weave 注入 [待审核提炼] 提醒(每轮可见) ↓ 主 agent 审核 (memory_pending) │ ┌────────────────────┼────────────────────┐ ↓ ↓ ↓ accepted rejected skill 候选 (conclusion/pref/pers) → 丢弃 → 保留人工 teach
自动转正入库 (source_urls 铁律)

关键设计(防捏造防线):
- distill 只总结已有对话,绝不新增事实;每条 evidence 必须是真实存在的 dialogue id,否则候选被拒收
- 候选存独立 pending_store,不参与检索——审核前不会污染 weave
- skill 候选不自动转正:teach_skill 强制 source_urls 非空(ADR-0002 防止主 agent 凭训练数据捏造)
- memory_distill 支持 offset/limit 窗口遍历历史——旧记忆也能被提炼,不只是最新对话

文档

| 文档 | 内容 |
| SKILL.md | Agent 使用协议(分层 weave 注入 + 提炼闭环) |
| COMPREHENSIVE.md | 完整架构设计 |
| docs/INTEGRATION.md | OpenCode / Cursor / 代理接入指南 |
| docs/PROTOCOL.md | 记忆协议与工具规范 |
| CHANGELOG.md | 版本历史 |

性能

| 指标 | 数值 |
| 中文检索精度 | 93%(300 条记忆) |
| 检索延迟 | 35-100ms |
| 测试 | 115 快速/集成(25 network/slow 需真实 API key 时运行) |

License

Apache License 2.0
预览分享卡片长什么样 ↓baaai123/solo-memory
分享 · DeepSeek Harness Hub
baaai123/solo-memory

自动记住对话偏好与踩坑,检索时注入相关上下文

回到顶部