memory-lancedb-pro by win4r/memory-lancedb-pro-skill
npx skills add https://github.com/win4r/memory-lancedb-pro-skill --skill memory-lancedb-promemory-lancedb-pro 是 OpenClaw 的一个增强型长期记忆插件。它取代了内置的 memory-lancedb 插件,提供了高级检索能力、多范围内存隔离和管理 CLI。
仓库 : https://github.com/win4r/memory-lancedb-pro 许可证 : MIT | 语言 : TypeScript (ESM) | 运行时 : 通过 OpenClaw Gateway 的 Node.js
┌─────────────────────────────────────────────────────────┐
│ index.ts (入口点) │
│ 插件注册 · 配置解析 · 生命周期钩子 │
└────────┬──────────┬──────────┬──────────┬───────────────┘
│ │ │ │
┌────▼───┐ ┌────▼───┐ ┌───▼────┐ ┌──▼──────────┐
│ store │ │embedder│ │retriever│ │ scopes │
│ .ts │ │ .ts │ │ .ts │ │ .ts │
└────────┘ └────────┘ └────────┘ └─────────────┘
│ │
┌────▼───┐ ┌─────▼──────────┐
│migrate │ │noise-filter.ts │
│ .ts │ │adaptive- │
└────────┘ │retrieval.ts │
└────────────────┘
┌─────────────┐ ┌──────────┐
│ tools.ts │ │ cli.ts │
│ (Agent API) │ │ (CLI) │
└─────────────┘ └──────────┘
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 文件 | 用途 | 关键导出 |
|---|---|---|
index.ts | 插件入口点。向 OpenClaw Plugin API 注册,解析配置,挂载生命周期钩子 | memoryLanceDBProPlugin (默认), shouldCapture, detectCategory |
openclaw.plugin.json | 插件元数据 + 包含 uiHints 的完整 JSON Schema 配置 | — |
package.json | NPM 包。依赖: @lancedb/lancedb, openai, @sinclair/typebox | — |
cli.ts | CLI: memory-pro list/search/stats/delete/delete-bulk/export/import/reembed/migrate | createMemoryCLI, registerMemoryCLI |
src/store.ts | LanceDB 存储层。表创建,FTS 索引,CRUD,向量/BM25 搜索 | MemoryStore, MemoryEntry, loadLanceDB |
src/embedder.ts | 嵌入抽象层。OpenAI 兼容 API,任务感知,LRU 缓存 | Embedder, createEmbedder, getVectorDimensions |
src/retriever.ts | 混合检索引擎。完整的评分流水线 | MemoryRetriever, createRetriever, DEFAULT_RETRIEVAL_CONFIG |
src/scopes.ts | 多范围访问控制 | MemoryScopeManager, createScopeManager |
src/tools.ts | Agent 工具定义: memory_recall/store/forget/update/stats/list | registerAllMemoryTools |
src/noise-filter.ts | 低质量内容噪音过滤器 | isNoise, filterNoise |
src/adaptive-retrieval.ts | 对问候语、命令、表情符号跳过检索 | shouldSkipRetrieval |
src/migrate.ts | 从旧版 memory-lancedb 迁移 | MemoryMigrator, createMigrator |
scripts/jsonl_distill.py | JSONL 会话蒸馏脚本 (Python) | — |
关于每个子系统的详细深入说明,请阅读相应的参考文件:
src/embedder.ts 中的 EMBEDDING_DIMENSIONS 映射中,则添加它task 和 normalized 的特殊请求字段,请在 src/embedder.ts 中扩展 buildPayload()embedder.test() 方法进行测试src/retriever.ts 中的 RerankProvider 类型buildRerankRequest() 中添加请求格式(标头 + 正文)的 caseparseRerankResponse() 中添加响应解析的 caseopenclaw.plugin.json 中的 rerankProvider 枚举MemoryRetriever 中创建一个 private apply<阶段名称>(results: RetrievalResult[]): RetrievalResult[] 方法RetrievalConfig 接口添加相应的配置字段hybridRetrieval() 和 vectorOnlyRetrieval() 的流水线序列中插入该阶段DEFAULT_RETRIEVAL_CONFIGopenclaw.plugin.jsonsrc/tools.ts 中创建 registerMemory<工具名称>Tool()@sinclair/typebox 的 Type.Object() 定义参数openclaw/plugin-sdk 中的 stringEnum()context.scopeManager 验证范围访问权限registerAllMemoryTools() 中注册——决定是核心工具(始终)还是管理工具(可选){ content: [{ type: "text", text }], details: {...} }cli.ts 的 registerMemoryCLI() 中添加命令memory.command("名称 <参数>").description("...").option("--标志", "...").action(async (args, opts) => { ... })--json 标志以输出机器可读格式process.exit(1)index.ts 中的 api.registerCli() 注册index.ts 中的 shouldCapture(text) 控制自动捕获的内容MEMORY_TRIGGERS 正则表达式数组定义触发模式(支持 EN/CJK)detectCategory(text) 将捕获内容分类为偏好/事实/决策/实体/其他agent_end 钩子中运行,每轮限制为 3 条before_agent_start 钩子(默认关闭)src/adaptive-retrieval.ts 中的 shouldSkipRetrieval() 控制是否进行检索<relevant-memories> XML 块形式注入,并带有 UNTRUSTED DATA 警告sanitizeForContext() 会去除 HTML、换行符,并将每条记忆限制在 300 个字符以内1 / (1 + exp(-score/5))${VAR} 语法在配置解析时解析;网关服务可能不继承 shell 环境变量node test/cli-smoke.mjsopenclaw plugins doctor, openclaw memory-pro statsembedder.test() 返回 { success, dimensions, error? }retriever.test() 返回 { success, mode, hasFtsSupport, error? }每周安装次数
452
仓库
GitHub 星标数
37
首次出现
2026年2月28日
安全审计
安装于
opencode446
cursor446
kimi-cli445
amp445
github-copilot445
codex445
memory-lancedb-pro is an enhanced long-term memory plugin for OpenClaw. It replaces the built-in memory-lancedb plugin with advanced retrieval capabilities, multi-scope memory isolation, and a management CLI.
Repository : https://github.com/win4r/memory-lancedb-pro License : MIT | Language : TypeScript (ESM) | Runtime : Node.js via OpenClaw Gateway
┌─────────────────────────────────────────────────────────┐
│ index.ts (Entry Point) │
│ Plugin Registration · Config Parsing · Lifecycle Hooks │
└────────┬──────────┬──────────┬──────────┬───────────────┘
│ │ │ │
┌────▼───┐ ┌────▼───┐ ┌───▼────┐ ┌──▼──────────┐
│ store │ │embedder│ │retriever│ │ scopes │
│ .ts │ │ .ts │ │ .ts │ │ .ts │
└────────┘ └────────┘ └────────┘ └─────────────┘
│ │
┌────▼───┐ ┌─────▼──────────┐
│migrate │ │noise-filter.ts │
│ .ts │ │adaptive- │
└────────┘ │retrieval.ts │
└────────────────┘
┌─────────────┐ ┌──────────┐
│ tools.ts │ │ cli.ts │
│ (Agent API) │ │ (CLI) │
└─────────────┘ └──────────┘
| File | Purpose | Key Exports |
|---|---|---|
index.ts | Plugin entry point. Registers with OpenClaw Plugin API, parses config, mounts lifecycle hooks | memoryLanceDBProPlugin (default), shouldCapture, detectCategory |
openclaw.plugin.json | Plugin metadata + full JSON Schema config with uiHints | — |
package.json |
For detailed deep-dives into each subsystem, read the appropriate reference file:
EMBEDDING_DIMENSIONS map in src/embedder.ts, add ittask and normalized, extend buildPayload() in src/embedder.tsembedder.test() methodRerankProvider type in src/retriever.tsbuildRerankRequest() for request format (headers + body)parseRerankResponse() for response parsingrerankProvider enum in openclaw.plugin.jsonprivate apply<StageName>(results: RetrievalResult[]): RetrievalResult[] method in MemoryRetrieverRetrievalConfig interfacehybridRetrieval() and vectorOnlyRetrieval()DEFAULT_RETRIEVAL_CONFIGopenclaw.plugin.jsonregisterMemory<ToolName>Tool() in src/tools.tsType.Object() from @sinclair/typeboxstringEnum() from openclaw/plugin-sdk for enum paramscontext.scopeManagerregisterAllMemoryTools() — decide if core (always) or management (optional){ content: [{ type: "text", text }], details: {...} }registerMemoryCLI() in cli.tsmemory.command("name <args>").description("...").option("--flag", "...").action(async (args, opts) => { ... })--json flag for machine-readable outputprocess.exit(1) for error casesapi.registerCli() in index.tsshouldCapture(text) in index.ts controls what gets auto-capturedMEMORY_TRIGGERS regex array defines trigger patterns (supports EN/CJK)detectCategory(text) classifies captures as preference/fact/decision/entity/otheragent_end hook, limited to 3 per turnbefore_agent_start hook (OFF by default)shouldSkipRetrieval() from src/adaptive-retrieval.ts gates retrieval<relevant-memories> XML block with UNTRUSTED DATA warningsanitizeForContext() strips HTML, newlines, limits to 300 chars per memory1 / (1 + exp(-score/5))${VAR} syntax resolved at config parse time; gateway service may not inherit shell envnode test/cli-smoke.mjsopenclaw plugins doctor, openclaw memory-pro statsembedder.test() returns { success, dimensions, error? }retriever.test() returns { success, mode, hasFtsSupport, error? }Weekly Installs
452
Repository
GitHub Stars
37
First Seen
Feb 28, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode446
cursor446
kimi-cli445
amp445
github-copilot445
codex445
AI Elements:基于shadcn/ui的AI原生应用组件库,快速构建对话界面
54,900 周安装
Rust调用关系图生成器 - 可视化函数调用层次结构,提升代码分析效率
539 周安装
parallel-web-extract:并行网页内容提取工具,高效抓取网页数据
595 周安装
腾讯云CloudBase AI模型Web技能:前端调用混元/DeepSeek模型,实现流式文本生成
560 周安装
Apollo Connectors 模式助手:GraphQL API 连接器开发与集成指南
565 周安装
GitHub Trending 趋势分析工具:实时发现热门项目、技术洞察与开源机会
556 周安装
GSAP React 集成教程:useGSAP Hook 动画库与 React 组件开发指南
546 周安装
NPM package. Deps: @lancedb/lancedb, openai, @sinclair/typebox |
| — |
cli.ts | CLI: memory-pro list/search/stats/delete/delete-bulk/export/import/reembed/migrate | createMemoryCLI, registerMemoryCLI |
src/store.ts | LanceDB storage layer. Table creation, FTS indexing, CRUD, vector/BM25 search | MemoryStore, MemoryEntry, loadLanceDB |
src/embedder.ts | Embedding abstraction. OpenAI-compatible API, task-aware, LRU cache | Embedder, createEmbedder, getVectorDimensions |
src/retriever.ts | Hybrid retrieval engine. Full scoring pipeline | MemoryRetriever, createRetriever, DEFAULT_RETRIEVAL_CONFIG |
src/scopes.ts | Multi-scope access control | MemoryScopeManager, createScopeManager |
src/tools.ts | Agent tool definitions: memory_recall/store/forget/update/stats/list | registerAllMemoryTools |
src/noise-filter.ts | Noise filter for low-quality content | isNoise, filterNoise |
src/adaptive-retrieval.ts | Skip retrieval for greetings, commands, emoji | shouldSkipRetrieval |
src/migrate.ts | Migration from legacy memory-lancedb | MemoryMigrator, createMigrator |
scripts/jsonl_distill.py | JSONL session distillation script (Python) | — |