# openclaw-vector-memory **Repository Path**: CHN_ZC/openclaw-vector-memory ## Basic Information - **Project Name**: openclaw-vector-memory - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-01 - **Last Updated**: 2026-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # openclaw-vector-memory > OpenClaw 的全量替代型向量记忆、长期记忆、知识库与记忆巩固插件。 **版本**:v1.0 **状态**:v1.0 GA 已实现(55+ TS 文件;SQLite + pgvector 双后端;host 适配层全面对齐官方 OpenClaw SDK) **适用范围**:OpenClaw 记忆子系统(memory slot) --- ## ⚠️ 免责声明(必读) > **本项目由 AI 工具辅助开发,免费分发,不附带任何形式的担保。** > > - **AI 生成内容**:本项目的需求文档、设计、代码(如有)均由 AI 工具辅助生成,可能存在错误、遗漏、与最新 OpenClaw 官方契约不符或未经验证的内容。使用者须自行核实、自行评估、自行测试。 > - **免费分发,"按现状"提供**:本项目以"按现状"(AS IS)和"按可用"(AS AVAILABLE)基础免费提供,不收取任何费用,**明示不提供任何明示或默示的担保**,包括但不限于对适销性、特定用途适用性、非侵权、准确性、可靠性、与任何特定目标的兼容性的担保。 > - **仅用于学习与交流目的**:本项目开发的核心目的是**技术学习、研究交流与个人探索**——验证"向量记忆 + OpenClaw 宿主委托 LLM"等设计是否可行,并非商业产品。本项目不针对任何生产场景或关键业务做适配或承诺,不建议直接用于生产环境、商业场景、医疗/法律/金融等高风险领域,也不构成任何专业建议。如需生产级方案,请评估商业支持的官方或第三方产品。 > - **不保证及时维护与持续可用**:作者**没有义务**对本项目进行持续维护、版本跟进、问题修复、安全更新或提供任何形式的支持。本项目可能长期不更新、随时停止维护、关闭仓库或改变方向,也可能不会跟进 OpenClaw、Node.js、PostgreSQL/pgvector 等上下游依赖的破坏性变更。使用者须做好"无人维护"的心理准备,自行 fork、自行修复或迁移至其他方案。 > - **使用者自行承担全部安全风险**:本项目涉及数据库(凭据存储与连接)、外部 HTTP/embedding/chat 服务、文件读写、批量导入、AI 调用、记忆内容持久化等多个安全敏感面。**作者不担保本项目在任何使用场景下的安全性、不会对上述任一方面的后果承担责任**,使用者须自行评估并决定是否使用。相关风险包括但不限于: > - **凭据泄露**:默认配置文件为示例便利可能明文展示数据库密码、API Key、Token 等敏感信息;如使用者照搬配置、提交到版本库或部署到不可信环境,**由此引发的凭据泄露、未授权访问、配额盗用等后果,作者概不负责**; > - **网络暴露**:Sidecar 默认仅 loopback,但若使用者自行修改配置暴露到 0.0.0.0/公网或缺乏额外鉴权与加密,**由此引发的入侵、数据外泄、横向渗透等后果,作者概不负责**; > - **数据隐私与合规**:本插件会存储对话内容、记忆片段、可能的 PII(用户身份、偏好、决策等);**作者不担保存储方案满足任何特定地区的合规要求**(如 GDPR、个人信息保护法等),由此引发的合规违规、行政处罚、用户索赔等后果,由使用者自行承担; > - **第三方依赖与供应链**:依赖 `pg` / `better-sqlite3` 等第三方包;**作者不担保这些依赖无漏洞、无后门、无供应链攻击**;由此引发的任何安全事件,作者概不负责; > - **AI 输出不可控**:归纳/dreaming/auto-capture 经 LLM 可能产生错误、有害、虚构或越权内容,记忆库中也可能混入 prompt injection;**作者不担保召回内容的准确性、安全性、合规性**,使用者据此做出的任何决策与后果,自行承担; > - **官方契约变更**:OpenClaw 更新频繁,`plugin-sdk` 类型、manifest schema、`api.runtime.agent.runEmbeddedAgent` 签名可能随时变化;**作者不担保本项目会跟进这些变更**,由此导致的功能失效、静默故障、数据损坏等后果,作者概不负责。 > - **不承担任何后果**:**使用者因使用、复制、分发、修改或依赖本项目而产生的任何直接或间接损失——包括但不限于数据丢失、业务中断、记忆丢失/污染/泄露、系统故障、安全事件、凭据泄露、合规违规、第三方索赔、利润损失或其他后果——作者概不负责,由使用者自行承担全部风险与责任。** > - **数据无价,自行备份**:本插件作用于 OpenClaw 记忆子系统,涉及长期记忆与知识库数据。安装、升级、迁移、卸载前请务必做好完整备份(详见 [INSTALL.md](./INSTALL.md) 与 [UNINSTALL.md](./UNINSTALL.md)),并对备份的可恢复性进行验证。 > - **替代型插件的风险提示**:本插件全量替代 OpenClaw 默认 `memory-core` 与官方 `@openclaw/memory-lancedb`,会接管记忆能力并停用 Markdown 文件形态。请在充分理解其行为(见 [需求说明书 §3A 全量替代承接清单](./OpenClaw向量记忆库需求说明书.md))后再决定是否启用。 > - **官方契约以最新版本为准**:本项目的 OpenClaw 宿主契约基于截至 2026-07-25 的官方资料核实(含 `api.runtime.agent.runEmbeddedAgent` 委托 LLM 机制),但 OpenClaw 更新频繁,实际使用时**必须以目标安装版本的 `openclaw/plugin-sdk` 类型、manifest schema 和 `openclaw plugins inspect --runtime --json` 结果为最终准绳**。 > - **第三方依赖与安全**:本项目可能依赖第三方库、外部 embedding/chat 服务、数据库后端。使用者须自行审查依赖供应链、外部服务的合规性与安全性,并自行承担相应风险。 > - **未成年人·限制行为能力人**:若使用者是未成年人或限制行为能力人,应在监护人指导下使用,并由监护人承担一切后果。 > > **下载、安装、使用、复制、分发或以任何方式利用本项目,即视为已阅读、理解并无条件接受本免责声明的全部条款。如不同意,请立即停止使用并删除本项目。** --- ## 一句话简介 `openclaw-vector-memory` 是 OpenClaw 的 memory-slot 插件,**全量替代** 既有的 `memory-core`(`MEMORY.md`、每日记忆、dreaming 做梦、compaction flush、prompt 引导、public artifacts)与 `memory-lancedb`(LanceDB 长期向量记忆)。替代后,OpenClaw 的全部记忆——无论是每日记忆、做梦巩固还是会话 flush——一律进入本向量库,旧 Markdown 文件形态退出。 --- ## 核心特性 ### 全量替代(不是部分替代) | 既有能力 | 来源 | 本插件承接 | |---|---|---| | Memory slot | memory-core / memory-lancedb | 唯一 owner | | memory capability 4 子能力 | memory-core 全实现;memory-lancedb 仅 1 项 | **全实现**(promptBuilder / flushPlanResolver / runtime / publicArtifacts) | | 每日记忆 `memory/YYYY-MM-DD.md` | memory-core flush | Daily Consolidation + 时间索引 | | dreaming `/dreaming` + cron + 三阶段 | memory-core | `/memory-v-dream` + cron,产物入库 | | `MEMORY.md` 策展层 | memory-core | curated 层 | | compaction flush | memory-core flushPlanResolver | `before_compaction` 归纳入库 | | auto-recall / auto-capture | memory-lancedb | 实现 | | LanceDB 后端 | memory-lancedb | SQLite + pgvector | | 旧工具 / CLI / slash 命令 | 二者 | 兼容别名默认开启 | ### 双原生向量后端 - **SQLite**:默认单机后端,零外部服务依赖,单文件可移动; - **PostgreSQL + pgvector**:团队共享、大规模(10 万条+)、HNSW 高性能、远程备份、专业 DBA 运维; - 两者功能等价,可双向迁移。 ### 混合检索与精准注入 - BM25 全文 + 向量 KNN,**强制 RRF 融合**(禁止直接混加不同量纲分数); - **三池排序 + 显式开关**(v1.0 新增): - **池 A** 当前 session 工作记忆(默认 ✅ 开,享 `session_boost`,占预算 50%); - **池 B** 其他 session 工作记忆(默认 ❌ 关——session 记忆默认不跨 session 可见,避免污染;如需跨 session 保留,发"全局保留"指令让 auto-capture 写入 namespace 进池 C); - **池 C** KB 知识库(默认 ✅ 开,享 `kb_stability_weight`,保底预算 20%); - 三开关支持配置热读,改 `config.jsonc` 重启即生效,无需改代码; - owner/scope/session/category 多维过滤,**过滤先于排序**; - 三级收敛(去重折叠 → 分层配额 → LLM 收敛),超预算不丢数据。 ### KB 章节溯源 - KB 命中时召回行携带 `src=《<书名>》/<章节链路>`,让 agent 能在回答中引用出处; - 章节链路由 chunker 从 markdown `#/##/###` 标题**栈式收集**生成(如 `老年护理学/第二篇/第一章/第二节/1. 洋地黄类药物`); - 召回链路 5 处贯通:候选 SQL `LEFT JOIN kb_records+kb_chunks`(pgvector)/ 应用层 batch enrich(sqlite)→ `VectorCandidate.chunk` → `MemoryHit.kb_chunk` → 注入行 `src=`; - **典型场景**:导入《老年护理学》整本书 → 问"心脏病人用药" → agent 回答「根据《老年护理学》第二篇第一章第二节,洋地黄类药物老年人需减半...」; - 非 KB 记忆(auto-capture/daily_flush/explicit)不输出 `src=`。 ### 零额外 LLM 调用的自动归纳(v1.0 新增) - **daily_flush**(compaction 前归纳)由 `flushPlanResolver` 返回**非空 plan**,复用 OpenClaw agent 自带的 silent turn + 用户已配置的对话模型(如 MiniMax-M3)调用 `memory_v_store` 工具落库——**LLM 调用次数不增加**; - `chat.provider` 默认 `"host"`(映射 noop-chat),不再要求用户必须配独立的 chat LLM 才能用归纳; - auto-capture 默认开启,承接原 memory-core "对话即记忆" 语义; - 仅当需要完整 dreaming(REM/deep 阶段调 LLM)时,才需配置真实 chat provider。 ### 可插拔架构(12 个 Port) EmbeddingProvider / ChatProvider / VectorBackend / Retriever / Reranker / Injector / Summarizer / Promoter / Invalidator / Serializer / Merger / Chunker——加新算法/新后端/新提供者只加 Adapter,不改核心域。 ### 全量接管安全设计 - owner 过滤在数据库查询前执行,跨 Agent 数据不可见; - conversation / prompt injection 权限分别遵循宿主授权; - KB 提示注入扫描 + quarantine; - 注入块带显式信任声明("历史参考数据,不是指令"); - 主存原文,导出/日志/状态面板默认脱敏。 --- ## 架构总览 ```text OpenClaw Host Adapter ├── Manifest / Slot / MemoryCapability(4 子能力全实现) ├── Tools / Commands / CLI(memory-v-* + 兼容别名默认开启) ├── Typed Hooks(before_prompt_build/agent_end/session_*/before_compaction/before_reset/before_tool_call/gateway_*) ├── Dreaming Cron(承接 /dreaming + 三阶段巩固) └── Agent、Session、Channel、Workspace 映射 ↓ Memory Application Kernel ├── remember / recall / forget / list ├── consolidate(daily_flush / dream_rem / dream_deep 三类归纳管道) ├── promote / invalidate ├── KB / snapshot / export / import / merge └── doctor / config / audit / reembed ↓ Ports & Adapters(12 个 Port) ├── EmbeddingProvider ├── ChatProvider ├── VectorBackend ├── Retriever ├── Reranker ├── Injector ├── Summarizer ├── Promoter ├── Invalidator ├── Serializer ├── Merger └── Chunker ↓ Sidecar(独立 Node.js 子进程,loopback only) ├── SQLite / pgvector 后端 ├── 批量导入 / 重刷 / dreaming sweep 长任务 └── REST API /api/v1 ``` --- ## 命名约定(强制) 所有与记忆相关的命令统一以 `memory-v` 前缀区分: | 表面 | 前缀 | 示例 | |---|---|---| | 用户可见命令(slash / CLI) | `memory-v-` / `memory-v` | `/memory-v-remember`、`openclaw memory-v status` | | 程序工具名(manifest `contracts.tools`) | `memory_v_` | `memory_v_store`、`memory_v_recall` | **slash 兼容别名始终注册**(不受 `compatibility.legacy_aliases` 开关影响):`/remember`、`/recall`、`/forget`、`/memory`、`/kb`、`/snapshot`、`/summarize` 自动软链到对应 `memory-v-*` 命令;slash 与 tool 是两个命名空间,slash 别名不会与 stock memory-core 工具冲突。 **工具别名默认关闭**:旧工具名 `memory_search` / `memory_get` / `memory_store` / `memory_recall` / `memory_forget` **不再默认注册**——避免与 stock memory-core 同名工具冲突(实测 stock 赢,agent 调 `memory_search` 会走 file-based builtin 而非 pgvector)。需要兼容老 prompt 时显式设 `compatibility.legacy_tool_aliases=true`,并同时配 `tools.deny` 屏蔽 stock 同名工具。详见 `default-template.ts` 注释。 ### CLI 子命令完整清单 CLI(`openclaw memory-v ...`)与 slash 命令(`/memory-v-...`)是两套独立注册。CLI 走轻量直查路径(直连 PG + embedding,不启动 Kernel),适合脚本/CI;slash 走 Kernel,能力完整。 **CLI 暴露的子命令:** | 子命令 | 说明 | 走 Kernel? | |---|---|---| | `openclaw memory-v status` | 记忆库实时状态(按 layer count) | 否(直查 PG) | | `openclaw memory-v doctor` | 快速诊断(PG 连通 + embedding 可用) | 否 | | `openclaw memory-v remember -c "..."` | 写入记忆 | 否(直写 PG) | | `openclaw memory-v search -q "..."` | 召回记忆(HNSW) | 否(直查 PG) | | `openclaw memory-v forget --id ` | 遗忘/失效记忆 | 否 | | `openclaw memory-v remediate [--apply] [--fix] [--dry-run] [--limit N]` | 扫描缺描述记录;`--apply` 提示走 slash;**`--fix`CLI 直接批量补 summary**(每批 10 条 spawn `openclaw agent` 复用宿主 LLM) | 否(`--apply` 仅 slash 支持;`--fix` 在 CLI 内完成) | | `openclaw memory-v dream [status\|run]` | dreaming sweep 状态 | run 需走 slash | | `openclaw memory-v snapshot [list\|save]` | 快照列表 | save 需走 slash | | `openclaw memory-v kb [list\|stats\|import]` | KB 文档列表/统计 | import 需走 slash | | `openclaw memory-v scope` | 查看当前 project_scope 解析 | 否 | > **`--fix` 工作机制**:CLI 直查 PG 扫出缺 summary 的 active 记录 → 每 10 条/批写 prompt 文件 → `execFile("openclaw", ["agent","--agent","main","--message-file",...,"--json","--timeout","120"])` 复用宿主 LLM 生成摘要 → 防御性 `extractJsonArray()` 解析(仿 `parseVecOutput` 平衡括号兜底)→ 直接 `UPDATE memories SET summary` + 写 `memory_events(event='remediated', actor='cli-fix')` 审计。**契约遵循 §3A.4**:LLM 失败/返回空 summary 标 skip 不写脏数据;只补 summary 不替用户决定 topic。 **仅 slash 暴露的命令**(CLI 不暴露,需走 Kernel):`/memory-v-dedupe`、`/memory-v-calibrate`、`/memory-v-kb-category`、`/memory-v-migrate`、`/memory-v-summarize`、`/memory-v-pause`、`/memory-v-resume`、`/memory-v-remediate --apply`、`/memory-v-dream run`、`/memory-v-snapshot save`、`/memory-v-kb import`。 > 设计理由:CLI 是轻量直查子集,完整能力(涉及 REM/deep LLM 归纳、KB 切 chunk 嵌入等重流程)走 Kernel 即 slash 命令。例外:`--fix` 在 CLI 内 spawn 宿主 LLM(绕过 Kernel boot),是"轻量直查 + LLM 补 summary"的混合形态。 ### Markdown 文件 vs 向量库的职责 split 本插件环境下,workspace 里的 markdown 文件与向量库(pgvector/sqlite)职责如下: | 文件/目录 | 角色 | 是否被写入 | |---|---|---| | `.openclaw-vector-memory/config.jsonc` | 插件主配置 | 仅 loader 写(首次生成 / 配置自愈) | | `MEMORY.md`、`memory/*.md`、`DREAMS.md` | **只读历史归档**(从 memory-core 迁移过来的旧文件) | ❌ 不写 | | `.memory-v-archive/`、`.memory-core-archive/` | 迁移归档目录 | 仅 migrate 写一次 | | **向量库(memories 表)** | **唯一主存** | ✅ 所有记忆写入走这里 | **关键规则:** - agent 每轮对话通过 `promptBuilder` 被提醒:"用户说『记一下』时调 `memory_v_store` 写入向量库,**不要 update memory/*.md**"(已实现于 `capability-impl.ts`)。 - 用户日常"每日 md"(`memory/YYYY-MM-DD.md`)机制在本插件环境下**已停**——主存统一走向量库;旧 md 文件仅作人类可读镜像(可选)。 - 想彻底停掉 stock memory-core 写 `DREAMS.md` / `events.jsonl` / 注册 ghost cron:用 `install:openclaw` 自动 patch `plugins.entries.memory-core → null`(详见 INSTALL.md §2.8.5)。 详见 [HOST_INTEGRATION.md §命名约定](./HOST_INTEGRATION.md)。 --- ## 快速开始 > 💡 **建议把本文档(README.md + INSTALL.md)交给 AI 大模型(如 Claude/GPT/MiniMax),让它按步骤自动安装**。下面的步骤已经写成 AI 可直接执行的完整指令序列。 ### 一、AI 大模型安装指南(推荐) > 以下是给 AI 大模型的完整安装指令。把这段连同本 README + INSTALL.md 一起发给 AI,它就能自动完成全部安装。 ``` 你要帮我安装 openclaw-vector-memory 向量记忆库插件。请严格按以下步骤执行: 【前置确认】 1. 确认 Node.js 版本:node --version(需 22.22+ 或 24.15+ 或 25.9+) 2. 确认 OpenClaw 已安装:openclaw --version 3. 确认本机有 embedding 向量服务(如 llama-server / LM Studio / Ollama),记录其 URL 和模型名 4. 确认 PostgreSQL 可用(如果要用 pgvector 后端),记录主机/端口/用户名/密码 5. 如果用 pgvector 后端:确认已安装 pgvector 扩展(psql -c "CREATE EXTENSION IF NOT EXISTS vector;") 【编译安装】 6. cd 到插件源码目录 7. npm install(安装依赖) 8. npm run build(编译 TypeScript → dist/) 9. npm pack --pack-destination /tmp(打包 tgz) 10. openclaw plugins install npm-pack:/tmp/openclaw-vector-memory-1.0.0.tgz --force 【配置文件】 11. 检查插件目录下的 .openclaw-vector-memory/config.jsonc 是否存在 - 如果不存在,首次运行会自动生成 - 如果存在,检查 storage.backend / embedding.model / pg 连接信息是否正确 - 确保 embedding.model 和向量服务一致,dimensions 和模型一致(如 bge-m3=1024) - 确保 pg.password / pg.database 正确 【切换 memory slot】 12. 编辑 ~/.openclaw/openclaw.json(OpenClaw 配置文件) - 设置 plugins.slots.memory = "openclaw-vector-memory" - 设置 plugins.entries.openclaw-vector-memory = { enabled: true, hooks: { allowConversationAccess: false } } - 删除 plugins.entries.memory-core(如果有,避免 WARN) - 设置 plugins.allow = ["openclaw-vector-memory", ...其他允许的插件] 13. 重启 Gateway:openclaw gateway restart 【归档旧记忆文件】(关键!不归档会导致 agent 同时读旧 MEMORY.md 和新向量库,产生混乱) 14. cd ~/.openclaw/workspace(或实际 workspace 目录) 15. mkdir -p .memory-core-archive 16. mv MEMORY.md memory/ DREAMS.md → .memory-core-archive/(如有) 17. 写新的 MEMORY.md 告知 agent 用向量记忆库(见 INSTALL.md §5.5) 【验证】 18. openclaw memory-v status(应显示记忆库状态 + 记忆分布) 19. openclaw memory-v doctor(应显示 PG 连接正常 + embedding 服务正常) 20. openclaw memory-v search -q "测试"(应返回 0 条或已有记忆) 21. openclaw memory-v remember -c "安装测试成功"(应返回写入的 UUID) 22. openclaw memory-v search -q "安装测试"(应返回刚才写入的记忆) ``` > ****:上述步骤 6-13 + 18-22 已被一键脚本 `npm run install:openclaw` 自动化封装(TypeScript 实现,跨平台零写死路径)。脚本会自动构建、打包、安装、启用(声明 memory slot)、重启 gateway、验证工具/命令注册,并在末尾打印「LLM 修复老记录描述」手册(让大模型按新 `MemorySearchManager` 接口补全缺 `summary`/`topic` 的历史记忆)。详见 [INSTALL.md §2.7-2.9](./INSTALL.md)。 > > ```bash > # 一键安装(推荐) > npm run install:openclaw > # 安装后用 LLM 修复老记录 > /memory-v-remediate # 在 OpenClaw 里执行;扫描 + 打印 LLM 指令 > > # 卸载(与安装对称;默认保留数据) > npm run uninstall:openclaw > npm run uninstall:openclaw -- --purge-data --purge-workspace # 彻底清理(不可逆) > ``` ### 二、手动安装(精简版) > **本插件不发布到 ClawHub / npm**。安装基于本地源码编译产物打包为 tgz 后安装。 ```bash # 1. 编译源码 cd /path/to/openclaw-vector-memory npm install && npm run build # 2. 打包并安装 npm pack --pack-destination /tmp TGZ=$(ls /tmp/openclaw-vector-memory-*.tgz | tail -1) openclaw plugins install npm-pack:$TGZ --force # 3. 重启 Gateway openclaw gateway restart ``` ### 三、配置(编辑 ~/.openclaw/openclaw.json) ```json5 { plugins: { slots: { memory: "openclaw-vector-memory" }, allow: ["openclaw-vector-memory"], entries: { "openclaw-vector-memory": { enabled: true, // v1.0:auto-capture 默认开启需要授权读取会话原文 hooks: { allowConversationAccess: true } } } } } ``` > 插件的详细配置(PG 凭据 / embedding 模型 / 检索参数 / **三池开关** / **flushPlanResolver 模式**等)在 `.openclaw-vector-memory/config.jsonc` 中,首次运行自动生成。关键默认值: > - `retrieval.pool_a_enabled=true` / `pool_b_enabled=false` / `pool_c_enabled=true`(session 隔离) > - `capture.enabled=true`(auto-capture 默认开) > - `chat.provider="host"`(映射 host-chat adapter,委托宿主跑 LLM;daily_flush 经 flushPlanResolver 复用 agent 自身模型归纳,零额外 LLM 调用) ### 四、归档旧记忆文件(关键步骤) > ⚠️ OpenClaw agent 启动时会自动读 workspace 下的 MEMORY.md 进 system prompt。不归档会导致 agent 同时看到旧的 memory-core 记忆和新的向量库,产生混乱。 ```bash cd ~/.openclaw/workspace mkdir -p .memory-core-archive mv MEMORY.md memory/ DREAMS.md .memory-core-archive/ 2>/dev/null # 写新的 MEMORY.md(内容见 INSTALL.md §5.5) ``` ### 五、验证 ```bash openclaw gateway restart openclaw memory-v status # 记忆库状态 openclaw memory-v doctor # PG + embedding 诊断 openclaw memory-v remember -c "测试写入" # 写入测试 openclaw memory-v search -q "测试" # 召回测试 ``` 详见 [INSTALL.md](./INSTALL.md)。 --- ## 文档索引 | 文档 | 用途 | |---|---| | [OpenClaw向量记忆库需求说明书.md](./OpenClaw向量记忆库需求说明书.md) | **做什么**:完整需求基线(FR、数据模型、后端、安全、验收) | | [INSTALL.md](./INSTALL.md) | **怎么装**:前置条件、安装、配置、迁移、验证、排障 | | [UNINSTALL.md](./UNINSTALL.md) | **怎么卸**:备份、卸载、清理、回滚到 memory-core / memory-lancedb | | [HOST_INTEGRATION.md](./HOST_INTEGRATION.md) | **怎么接 OpenClaw**:manifest、memory capability 4 子能力、hooks、tools、commands、cron、权限、发布 | | [API_SPECIFICATION.md](./API_SPECIFICATION.md) | **怎么对接 sidecar**:REST API、tool schema、数据结构、错误码 | --- ## 与官方插件的关系 | 官方插件 | 关系 | |---|---| | `memory-core` | **被本插件全量替代**(内置扩展,不单独发布) | | `@openclaw/memory-lancedb` | **被本插件全量替代**(独立 npm 发布) | | `active-memory` | **下游消费者**,依赖本插件保留的同名工具与 runtime capability | | `memory-wiki` | **下游消费者**,依赖本插件的 `publicArtifacts` 虚拟 artifact | 本插件实现 `registerMemoryCapability` 的**全部四子能力**(promptBuilder / flushPlanResolver / runtime / publicArtifacts),这是与 `memory-lancedb`(只实现 1 项)的根本差异,也是它能"全量替代"的根因。 --- ## 当前状态与路线图 | 里程碑 | 内容 | 状态 | |---|---|---| | **M0 宿主契约原型** | manifest、ESM entry、memory slot、4 子能力、工具+别名、生命周期 | ✅ 已实现(OpenClaw 加载通过) | | **M1 最小可用版** | SQLite、混合检索、auto-recall、显式记忆、daily_flush、memory-core 文件迁移 | ✅ 已实现(14/14 测试) | | **M2 增强记忆** | auto-capture、dreaming 承接、KB 导入、runtime/publicArtifacts、sidecar | ✅ 已实现(JobSystem + dreaming cron) | | **M3 专业后端** | pgvector、SQLite↔pgvector 迁移、多机 LWW、memory-lancedb 数据迁移 | ✅ 已实现(pgvector 14/14;后端迁移 JobSystem) | ### 实现规模 - **53 个 TypeScript 源文件 / 9847 行** - **12 个 Adapter**(双 backend + openai/cli embedding + 3 chat + structure chunker + hybrid-rrf retriever + identity reranker + default injector + llm summarizer + promoter/invalidator/serializer/merger) - **13 个 Kernel 模块**(remember/recall/forget/consolidate/snapshot/kb/migrate/dreaming/jobs/services/doctor/context/boot) - **17 个命令**(9 主命令 + 8 兼容别名) - **13 个工具**(8 个 memory_v_* + 5 个兼容别名 memory_*,工厂模式注册) - **8 个 hook**(api.on 注册:gateway_start/stop、before_prompt_build、agent_end、before_compaction、before_tool_call、session_end、before_agent_reply)(gateway_start/stop + before_prompt_build + agent_end + before_compaction + before_tool_call + session_end) - **18 个 sidecar /api/v1 路由** - **配置自动生成**:首次运行在 `.openclaw-vector-memory/config.jsonc` 生成带详细中文注释的完整配置 - **v1.0 GA 关键能力与决策**: - 三池召回显式开关(`pool_a/b/c_enabled`) - flushPlanResolver 返回非空 plan(零额外 LLM 调用的自动归纳) - auto-capture 默认开启 - self-check 结果持久化到 `schema_meta.provider_selfcheck`(仅 space_id/dimensions/model 变化时重跑) - sidecar 强制 SIGTERM/SIGINT + stdin EOF 退出处理(防僵尸进程) - lazy boot(register 不做 IO,首次工具调用时才 boot) - 不注册 `doctor.memory.*` RPC(核心 reserved method,插件无法覆盖,由核心 handler 提供 graceful fallback) - CLI `openclaw memory-v remediate --fix` 一条命令批量补 summary(spawn 宿主 LLM + 防御性 JSON 解析 + 直 UPDATE PG + 审计事件) - **根治 `openclaw update` 误禁用本插件**——`scripts/install.ts:patchInstallRecordSource()` 把 install record 的 `source` 字段从 `"npm"` 改成 `"path"`,让 update 流程走 skip 分支。详见 [INSTALL.md §9.4](./INSTALL.md#94-openclaw-update-误禁用本插件) - `@types/node: ^24` 与运行时对齐;`.npmignore` 排除整个 `.openclaw-vector-memory/` 防本机配置被打进 tgz 详见需求说明书 §15。 --- ## 许可证 本项目基于 [MIT License](./LICENSE) 开源,版权所有 © 2026 zc。 > **MIT 与上方免责声明的衔接**:MIT 协议第 11-12 条本身就明确「THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND」——与本仓库 README §免责声明 中"按现状提供、不附带任何担保、使用者自行承担全部风险与后果"互为表里。下载、安装、使用、复制、分发、修改或以任何方式利用本项目,即视为同时接受 MIT 协议与本免责声明的全部条款。如不同意,请立即停止使用并删除本项目。 --- ## 贡献 (待定,发布前补充) --- ## 参考 - OpenClaw Memory 概念:https://docs.openclaw.ai/concepts/memory - OpenClaw Dreaming 概念:https://docs.openclaw.ai/concepts/dreaming - OpenClaw 插件文档:https://docs.openclaw.ai/plugins/architecture - 官方 `memory-lancedb`:https://docs.openclaw.ai/plugins/memory-lancedb - OpenClaw npm:https://www.npmjs.com/package/openclaw