[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74334":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},74334,"memory-lancedb-pro","CortexReach\u002Fmemory-lancedb-pro","CortexReach","Enhanced LanceDB memory plugin for OpenClaw — Hybrid Retrieval (Vector + BM25), Cross-Encoder Rerank, Multi-Scope Isolation, Management CLI","https:\u002F\u002Fyoutu.be\u002FbhuGrjuCM_g",null,"JavaScript",4421,728,14,40,0,13,28,94,39,30.59,false,"master",[25,26,27,28,29,30],"lancedb","memory","openclaw","openclaw-agent","openclaw-plugin","rag","2026-06-12 02:03:25","\u003Cdiv align=\"center\">\n\n# 🧠 memory-lancedb-pro · 🦞OpenClaw Plugin\n\n**AI Memory Assistant for [OpenClaw](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw) Agents**\n\n*Give your AI agent a brain that actually remembers — across sessions, across agents, across time.*\n\nA LanceDB-backed OpenClaw memory plugin that stores preferences, decisions, and project context, then auto-recalls them in future sessions.\n\n[![OpenClaw Plugin](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpenClaw-Plugin-blue)](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw)\n[![OpenClaw 2026.3+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpenClaw-2026.3%2B-brightgreen)](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw)\n[![npm version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fmemory-lancedb-pro)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fmemory-lancedb-pro)\n[![LanceDB](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLanceDB-Vectorstore-orange)](https:\u002F\u002Flancedb.com)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-green.svg)](LICENSE)\n\u003Ch2>⚡ \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCortexReach\u002Fmemory-lancedb-pro\u002Freleases\u002Ftag\u002Fv1.1.0-beta.10\">v1.1.0-beta.10 — OpenClaw 2026.3+ Hook Adaptation\u003C\u002Fa>\u003C\u002Fh2>\n\n\u003Cp>\n ✅ Fully adapted for OpenClaw 2026.3+ new plugin architecture\u003Cbr>\n 🔄 Uses \u003Ccode>before_prompt_build\u003C\u002Fcode> hooks (replacing deprecated \u003Ccode>before_agent_start\u003C\u002Fcode>)\u003Cbr>\n 🩺 Run \u003Ccode>openclaw doctor --fix\u003C\u002Fcode> after upgrading\n\u003C\u002Fp>\n\n\n[English](README.md) | [简体中文](README_CN.md) | [繁體中文](README_TW.md) | [日本語](README_JA.md) | [한국어](README_KO.md) | [Français](README_FR.md) | [Español](README_ES.md) | [Deutsch](README_DE.md) | [Italiano](README_IT.md) | [Русский](README_RU.md) | [Português (Brasil)](README_PT-BR.md)\n\n\u003C\u002Fdiv>\n\n---\n\n## Why memory-lancedb-pro?\n\nMost AI agents have amnesia. They forget everything the moment you start a new chat.\n\n**memory-lancedb-pro** is a production-grade long-term memory plugin for OpenClaw that turns your agent into an **AI Memory Assistant** — it automatically captures what matters, lets noise naturally fade, and retrieves the right memory at the right time. No manual tagging, no configuration headaches.\n\n### Your AI Memory Assistant in Action\n\n**Without memory — every session starts from zero:**\n\n> **You:** \"Use tabs for indentation, always add error handling.\"\n> *(next session)*\n> **You:** \"I already told you — tabs, not spaces!\" 😤\n> *(next session)*\n> **You:** \"...seriously, tabs. And error handling. Again.\"\n\n**With memory-lancedb-pro — your agent learns and remembers:**\n\n> **You:** \"Use tabs for indentation, always add error handling.\"\n> *(next session — agent auto-recalls your preferences)*\n> **Agent:** *(silently applies tabs + error handling)* ✅\n> **You:** \"Why did we pick PostgreSQL over MongoDB last month?\"\n> **Agent:** \"Based on our discussion on Feb 12, the main reasons were...\" ✅\n\nThat's the difference an **AI Memory Assistant** makes — it learns your style, recalls past decisions, and delivers personalized responses without you repeating yourself.\n\n### What else can it do?\n\n| | What you get |\n|---|---|\n| **Auto-Capture** | Your agent learns from every conversation — no manual `memory_store` needed |\n| **Smart Extraction** | LLM-powered 6-category classification: profiles, preferences, entities, events, cases, patterns |\n| **Intelligent Forgetting** | Weibull decay model — important memories stay, noise naturally fades away |\n| **Hybrid Retrieval** | Vector + BM25 full-text search, fused with cross-encoder reranking |\n| **Context Injection** | Relevant memories automatically surface before each reply |\n| **Multi-Scope Isolation** | Per-agent, per-user, per-project memory boundaries |\n| **Any Provider** | OpenAI, Jina, Gemini, Ollama, or any OpenAI-compatible API |\n| **Full Toolkit** | CLI, backup, migration, upgrade, export\u002Fimport — production-ready |\n\n---\n\n## Quick Start\n\n> **CPU Requirement:** Your CPU must support **AVX\u002FAVX2** instructions (Intel Sandy Bridge 2011+ \u002F AMD Bulldozer 2011+). LanceDB's native vector engine requires these — on unsupported CPUs the plugin will crash with `SIGILL` (Illegal Instruction). Check with: `grep -o 'avx[^ ]*' \u002Fproc\u002Fcpuinfo | head -1` (no output = not supported). See [#419](https:\u002F\u002Fgithub.com\u002FCortexReach\u002Fmemory-lancedb-pro\u002Fissues\u002F419) for details.\n\n### Option A: One-Click Install Script (Recommended)\n\nThe community-maintained **[setup script](https:\u002F\u002Fgithub.com\u002FCortexReach\u002Ftoolbox\u002Ftree\u002Fmain\u002Fmemory-lancedb-pro-setup)** handles install, upgrade, and repair in one command:\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FCortexReach\u002Ftoolbox\u002Fmain\u002Fmemory-lancedb-pro-setup\u002Fsetup-memory.sh -o setup-memory.sh\nbash setup-memory.sh\n```\n\n> See [Ecosystem](#ecosystem) below for the full list of scenarios the script covers and other community tools.\n\n### Option B: Manual Install\n\n**Via OpenClaw CLI (recommended):**\n```bash\nopenclaw plugins install memory-lancedb-pro@beta\n```\n\n**Or via npm:**\n```bash\nnpm i memory-lancedb-pro@beta\n```\n> If using npm, you will also need to add the plugin's install directory as an **absolute** path in `plugins.load.paths` in your `openclaw.json`. This is the most common setup issue.\n\nAdd to your `openclaw.json`:\n\n```json\n{\n  \"plugins\": {\n    \"slots\": { \"memory\": \"memory-lancedb-pro\" },\n    \"entries\": {\n      \"memory-lancedb-pro\": {\n        \"enabled\": true,\n        \"config\": {\n          \"embedding\": {\n            \"provider\": \"openai-compatible\",\n            \"apiKey\": \"${OPENAI_API_KEY}\",\n            \"model\": \"text-embedding-3-small\"\n          },\n          \"autoCapture\": true,\n          \"autoRecall\": true,\n          \"smartExtraction\": true,\n          \"extractMinMessages\": 2,\n          \"extractMaxChars\": 8000,\n          \"sessionMemory\": { \"enabled\": false }\n        }\n      }\n    }\n  }\n}\n```\n\n**Why these defaults?**\n- `autoCapture` + `smartExtraction` → your agent learns from every conversation automatically\n- `autoRecall` → relevant memories are injected before each reply\n- `extractMinMessages: 2` → extraction triggers in normal two-turn chats\n- `sessionMemory.enabled: false` → avoids polluting retrieval with session summaries on day one\n\n---\n\n## ⚠️ Dual-Memory Architecture (Important)\n\nWhen `memory-lancedb-pro` is active, your system has **two independent memory layers** that do **not** auto-sync:\n\n| Memory Layer | Storage | What it's for | Recallable? |\n|---|---|---|---|\n| **Plugin Memory** | LanceDB (vector store) | Semantic recall via `memory_recall` \u002F auto-recall | ✅ Yes |\n| **Markdown Memory** | `MEMORY.md`, `memory\u002FYYYY-MM-DD.md` | Startup context, human-readable journal | ❌ Not auto-recalled |\n\n**Key principle:**\n> A fact written into `memory\u002FYYYY-MM-DD.md` is visible in startup context, but `memory_recall` **will not find it** unless it was also written via `memory_store` (or auto-captured by the plugin).\n\n**What this means for you:**\n- Need semantic recall? → Use `memory_store` or let auto-capture do it\n- `memory\u002FYYYY-MM-DD.md` → treat as a **daily journal \u002F log**, not a recall source\n- `MEMORY.md` → curated human-readable reference, not a recall source\n- Plugin memory → **primary recall source** for `memory_recall` and auto-recall\n\nValidate & restart:\n\n```bash\nopenclaw config validate\nopenclaw gateway restart\nopenclaw logs --follow --plain | grep \"memory-lancedb-pro\"\n```\n\nYou should see:\n- `memory-lancedb-pro: smart extraction enabled`\n- `memory-lancedb-pro@...: plugin registered`\n\nDone! Your agent now has long-term memory.\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>More installation paths (existing users, upgrades)\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n**Already using OpenClaw?**\n\n1. Add the plugin with an **absolute** `plugins.load.paths` entry\n2. Bind the memory slot: `plugins.slots.memory = \"memory-lancedb-pro\"`\n3. Verify: `openclaw plugins info memory-lancedb-pro && openclaw memory-pro stats`\n\n**Upgrading from pre-v1.1.0?**\n\n```bash\n# 1) Backup\nopenclaw memory-pro export --scope global --output memories-backup.json\n# 2) Dry run\nopenclaw memory-pro upgrade --dry-run\n# 3) Run upgrade\nopenclaw memory-pro upgrade\n# 4) Verify\nopenclaw memory-pro stats\n```\n\nSee `CHANGELOG-v1.1.0.md` for behavior changes and upgrade rationale.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Telegram Bot Quick Import (click to expand)\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nIf you are using OpenClaw's Telegram integration, the easiest way is to send an import command directly to the main Bot instead of manually editing config.\n\nSend this message:\n\n```text\nHelp me connect this memory plugin with the most user-friendly configuration: https:\u002F\u002Fgithub.com\u002FCortexReach\u002Fmemory-lancedb-pro\n\nRequirements:\n1. Set it as the only active memory plugin\n2. Use Jina for embedding\n3. Use Jina for reranker\n4. Use gpt-4o-mini for the smart-extraction LLM\n5. Enable autoCapture, autoRecall, smartExtraction\n6. extractMinMessages=2\n7. sessionMemory.enabled=false\n8. captureAssistant=false\n9. retrieval mode=hybrid, vectorWeight=0.7, bm25Weight=0.3\n10. rerank=cross-encoder, candidatePoolSize=12, minScore=0.6, hardMinScore=0.62\n11. Generate the final openclaw.json config directly, not just an explanation\n```\n\n\u003C\u002Fdetails>\n\n---\n\n## Ecosystem\n\nmemory-lancedb-pro is the core plugin. The community has built tools around it to make setup and daily use even smoother:\n\n### Setup Script — One-Click Install, Upgrade & Repair\n\n> **[CortexReach\u002Ftoolbox\u002Fmemory-lancedb-pro-setup](https:\u002F\u002Fgithub.com\u002FCortexReach\u002Ftoolbox\u002Ftree\u002Fmain\u002Fmemory-lancedb-pro-setup)**\n\nNot just a simple installer — the script intelligently handles a wide range of real-world scenarios:\n\n| Your situation | What the script does |\n|---|---|\n| Never installed | Fresh download → install deps → pick config → write to openclaw.json → restart |\n| Installed via `git clone`, stuck on old commit | Auto `git fetch` + `checkout` to latest → reinstall deps → verify |\n| Config has invalid fields | Auto-detect via schema filter, remove unsupported fields |\n| Installed via `npm` | Skips git update, reminds you to run `npm update` yourself |\n| `openclaw` CLI broken due to invalid config | Fallback: read workspace path directly from `openclaw.json` file |\n| `extensions\u002F` instead of `plugins\u002F` | Auto-detect plugin location from config or filesystem |\n| Already up to date | Run health checks only, no changes |\n\n```bash\nbash setup-memory.sh                    # Install or upgrade\nbash setup-memory.sh --dry-run          # Preview only\nbash setup-memory.sh --beta             # Include pre-release versions\nbash setup-memory.sh --uninstall        # Revert config and remove plugin\n```\n\nBuilt-in provider presets: **Jina \u002F DashScope \u002F SiliconFlow \u002F OpenAI \u002F Ollama**, or bring your own OpenAI-compatible API. For full usage (including `--ref`, `--selfcheck-only`, and more), see the [setup script README](https:\u002F\u002Fgithub.com\u002FCortexReach\u002Ftoolbox\u002Ftree\u002Fmain\u002Fmemory-lancedb-pro-setup).\n\n### Claude Code \u002F OpenClaw Skill — AI-Guided Configuration\n\n> **[CortexReach\u002Fmemory-lancedb-pro-skill](https:\u002F\u002Fgithub.com\u002FCortexReach\u002Fmemory-lancedb-pro-skill)**\n\nInstall this skill and your AI agent (Claude Code or OpenClaw) gains deep knowledge of every feature in memory-lancedb-pro. Just say **\"help me enable the best config\"** and get:\n\n- **Guided 7-step configuration workflow** with 4 deployment plans:\n  - Full Power (Jina + OpenAI) \u002F Budget (free SiliconFlow reranker) \u002F Simple (OpenAI only) \u002F Fully Local (Ollama, zero API cost)\n- **All 9 MCP tools** used correctly: `memory_recall`, `memory_store`, `memory_forget`, `memory_update`, `memory_stats`, `memory_list`, `self_improvement_log`, `self_improvement_extract_skill`, `self_improvement_review` *(full toolset requires `enableManagementTools: true` — the default Quick Start config exposes the 4 core tools)*\n- **Common pitfall avoidance**: workspace plugin enablement, `autoRecall` default-false, jiti cache, env vars, scope isolation, and more\n\n**Install for Claude Code:**\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FCortexReach\u002Fmemory-lancedb-pro-skill.git ~\u002F.claude\u002Fskills\u002Fmemory-lancedb-pro\n```\n\n**Install for OpenClaw:**\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FCortexReach\u002Fmemory-lancedb-pro-skill.git ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fmemory-lancedb-pro-skill\n```\n\n---\n\n## Video Tutorial\n\n> Full walkthrough: installation, configuration, and hybrid retrieval internals.\n\n[![YouTube Video](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FYouTube-Watch%20Now-red?style=for-the-badge&logo=youtube)](https:\u002F\u002Fyoutu.be\u002FMtukF1C8epQ)\n**https:\u002F\u002Fyoutu.be\u002FMtukF1C8epQ**\n\n[![Bilibili Video](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBilibili-Watch%20Now-00A1D6?style=for-the-badge&logo=bilibili&logoColor=white)](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1zUf2BGEgn\u002F)\n**https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1zUf2BGEgn\u002F**\n\n---\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────┐\n│                   index.ts (Entry Point)                │\n│  Plugin Registration · Config Parsing · Lifecycle Hooks │\n└────────┬──────────┬──────────┬──────────┬───────────────┘\n         │          │          │          │\n    ┌────▼───┐ ┌────▼───┐ ┌───▼────┐ ┌──▼──────────┐\n    │ store  │ │embedder│ │retriever│ │   scopes    │\n    │ .ts    │ │ .ts    │ │ .ts    │ │    .ts      │\n    └────────┘ └────────┘ └────────┘ └─────────────┘\n         │                     │\n    ┌────▼───┐           ┌─────▼──────────┐\n    │migrate │           │noise-filter.ts │\n    │ .ts    │           │adaptive-       │\n    └────────┘           │retrieval.ts    │\n                         └────────────────┘\n    ┌─────────────┐   ┌──────────┐\n    │  tools.ts   │   │  cli.ts  │\n    │ (Agent API) │   │ (CLI)    │\n    └─────────────┘   └──────────┘\n```\n\n> For a deep-dive into the full architecture, see [docs\u002Fmemory_architecture_analysis.md](docs\u002Fmemory_architecture_analysis.md).\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>File Reference (click to expand)\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| File | Purpose |\n| --- | --- |\n| `index.ts` | Plugin entry point. Registers with OpenClaw Plugin API, parses config, mounts lifecycle hooks via `api.on()` and command hooks via `api.registerHook()` |\n| `openclaw.plugin.json` | Plugin metadata + full JSON Schema config declaration |\n| `cli.ts` | CLI commands: `memory-pro list\u002Fsearch\u002Fstats\u002Fdelete\u002Fdelete-bulk\u002Fexport\u002Fimport\u002Freembed\u002Fupgrade\u002Fmigrate` |\n| `src\u002Fstore.ts` | LanceDB storage layer. Table creation \u002F FTS indexing \u002F Vector search \u002F BM25 search \u002F CRUD |\n| `src\u002Fembedder.ts` | Embedding abstraction. Compatible with any OpenAI-compatible API provider |\n| `src\u002Fretriever.ts` | Hybrid retrieval engine. Vector + BM25 → Hybrid Fusion → Rerank → Lifecycle Decay → Filter |\n| `src\u002Fscopes.ts` | Multi-scope access control |\n| `src\u002Ftools.ts` | Agent tool definitions: `memory_recall`, `memory_store`, `memory_forget`, `memory_update` + management tools |\n| `src\u002Fnoise-filter.ts` | Filters out agent refusals, meta-questions, greetings, and low-quality content |\n| `src\u002Fadaptive-retrieval.ts` | Determines whether a query needs memory retrieval |\n| `src\u002Fmigrate.ts` | Migration from built-in `memory-lancedb` to Pro |\n| `src\u002Fsmart-extractor.ts` | LLM-powered 6-category extraction with L0\u002FL1\u002FL2 layered storage and two-stage dedup |\n| `src\u002Fdecay-engine.ts` | Weibull stretched-exponential decay model |\n| `src\u002Ftier-manager.ts` | Three-tier promotion\u002Fdemotion: Peripheral ↔ Working ↔ Core |\n\n\u003C\u002Fdetails>\n\n---\n\n## Core Features\n\n### Hybrid Retrieval\n\n```\nQuery → embedQuery() ─┐\n                       ├─→ Hybrid Fusion → Rerank → Lifecycle Decay Boost → Length Norm → Filter\nQuery → BM25 FTS ─────┘\n```\n\n- **Vector Search** — semantic similarity via LanceDB ANN (cosine distance)\n- **BM25 Full-Text Search** — exact keyword matching via LanceDB FTS index\n- **Hybrid Fusion** — vector score as base, BM25 hits receive a weighted boost (not standard RRF — tuned for real-world recall quality)\n- **Configurable Weights** — `vectorWeight`, `bm25Weight`, `minScore`\n\n### Cross-Encoder Reranking\n\n- Built-in adapters for **Jina**, **SiliconFlow**, **Voyage AI**, and **Pinecone**\n- Compatible with any Jina-compatible endpoint (e.g., Hugging Face TEI, DashScope)\n- Hybrid scoring: 60% cross-encoder + 40% original fused score\n- Graceful degradation: falls back to cosine similarity on API failure\n\n### Multi-Stage Scoring Pipeline\n\n| Stage | Effect |\n| --- | --- |\n| **Hybrid Fusion** | Combines semantic and exact-match recall |\n| **Cross-Encoder Rerank** | Promotes semantically precise hits |\n| **Lifecycle Decay Boost** | Weibull freshness + access frequency + importance × confidence |\n| **Length Normalization** | Prevents long entries from dominating (anchor: 500 chars) |\n| **Hard Min Score** | Removes irrelevant results (default: 0.35) |\n| **MMR Diversity** | Cosine similarity > 0.85 → demoted |\n\n### Smart Memory Extraction (v1.1.0)\n\n- **LLM-Powered 6-Category Extraction**: profile, preferences, entities, events, cases, patterns\n- **L0\u002FL1\u002FL2 Layered Storage**: L0 (one-sentence index) → L1 (structured summary) → L2 (full narrative)\n- **Two-Stage Dedup**: vector similarity pre-filter (≥0.7) → LLM semantic decision (CREATE\u002FMERGE\u002FSKIP)\n- **Category-Aware Merge**: `profile` always merges, `events`\u002F`cases` are append-only\n\n### Memory Lifecycle Management (v1.1.0)\n\n- **Weibull Decay Engine**: composite score = recency + frequency + intrinsic value\n- **Three-Tier Promotion**: `Peripheral ↔ Working ↔ Core` with configurable thresholds\n- **Access Reinforcement**: frequently recalled memories decay slower (spaced-repetition style)\n- **Importance-Modulated Half-Life**: important memories decay slower\n\n### Multi-Scope Isolation\n\n- Built-in scopes: `global`, `agent:\u003Cid>`, `custom:\u003Cname>`, `project:\u003Cid>`, `user:\u003Cid>`\n- Agent-level access control via `scopes.agentAccess`\n- Default: each agent accesses `global` + its own `agent:\u003Cid>` scope\n\n### Auto-Capture & Auto-Recall\n\n- **Auto-Capture** (`agent_end`): extracts preference\u002Ffact\u002Fdecision\u002Fentity from conversations, deduplicates, stores up to 3 per turn\n- **Auto-Recall** (`before_prompt_build`): injects `\u003Crelevant-memories>` context (up to 3 entries)\n\n> **Note (v1.1.0-beta.9+):** Auto-recall now uses the `before_prompt_build` hook instead of the deprecated `before_agent_start`. See [Hook Adaptation](#hook-adaptation-openclaw-20263) below for details.\n\n### Noise Filtering & Adaptive Retrieval\n\n- Filters low-quality content: agent refusals, meta-questions, greetings\n- Skips retrieval for greetings, slash commands, simple confirmations, emoji\n- Forces retrieval for memory keywords (\"remember\", \"previously\", \"last time\")\n- CJK-aware thresholds (Chinese: 6 chars vs English: 15 chars)\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Compared to Built-in \u003Ccode>memory-lancedb\u003C\u002Fcode> (click to expand)\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Built-in `memory-lancedb` | **memory-lancedb-pro** |\n| --- | :---: | :---: |\n| Vector search | Yes | Yes |\n| BM25 full-text search | - | Yes |\n| Hybrid fusion (Vector + BM25) | - | Yes |\n| Cross-encoder rerank (multi-provider) | - | Yes |\n| Recency boost & time decay | - | Yes |\n| Length normalization | - | Yes |\n| MMR diversity | - | Yes |\n| Multi-scope isolation | - | Yes |\n| Noise filtering | - | Yes |\n| Adaptive retrieval | - | Yes |\n| Management CLI | - | Yes |\n| Session memory | - | Yes |\n| Task-aware embeddings | - | Yes |\n| **LLM Smart Extraction (6-category)** | - | Yes (v1.1.0) |\n| **Weibull Decay + Tier Promotion** | - | Yes (v1.1.0) |\n| Any OpenAI-compatible embedding | Limited | Yes |\n\n\u003C\u002Fdetails>\n\n---\n\n## Configuration\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Full Configuration Example\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```json\n{\n  \"embedding\": {\n    \"apiKey\": \"${JINA_API_KEY}\",\n    \"model\": \"jina-embeddings-v5-text-small\",\n    \"baseURL\": \"https:\u002F\u002Fapi.jina.ai\u002Fv1\",\n    \"dimensions\": 1024,\n    \"taskQuery\": \"retrieval.query\",\n    \"taskPassage\": \"retrieval.passage\",\n    \"normalized\": true\n  },\n  \"dbPath\": \"~\u002F.openclaw\u002Fmemory\u002Flancedb-pro\",\n  \"autoCapture\": true,\n  \"autoRecall\": true,\n  \"retrieval\": {\n    \"mode\": \"hybrid\",\n    \"vectorWeight\": 0.7,\n    \"bm25Weight\": 0.3,\n    \"minScore\": 0.3,\n    \"rerank\": \"cross-encoder\",\n    \"rerankApiKey\": \"${JINA_API_KEY}\",\n    \"rerankModel\": \"jina-reranker-v3\",\n    \"rerankEndpoint\": \"https:\u002F\u002Fapi.jina.ai\u002Fv1\u002Frerank\",\n    \"rerankProvider\": \"jina\",\n    \"candidatePoolSize\": 20,\n    \"recencyHalfLifeDays\": 14,\n    \"recencyWeight\": 0.1,\n    \"filterNoise\": true,\n    \"lengthNormAnchor\": 500,\n    \"hardMinScore\": 0.35,\n    \"timeDecayHalfLifeDays\": 60,\n    \"reinforcementFactor\": 0.5,\n    \"maxHalfLifeMultiplier\": 3\n  },\n  \"enableManagementTools\": false,\n  \"scopes\": {\n    \"default\": \"global\",\n    \"definitions\": {\n      \"global\": { \"description\": \"Shared knowledge\" },\n      \"agent:discord-bot\": { \"description\": \"Discord bot private\" }\n    },\n    \"agentAccess\": {\n      \"discord-bot\": [\"global\", \"agent:discord-bot\"]\n    }\n  },\n  \"sessionStrategy\": \"none\",\n  \"sessionMemory\": {\n    \"enabled\": false,\n    \"messageCount\": 15\n  },\n  \"smartExtraction\": true,\n  \"llm\": {\n    \"apiKey\": \"${OPENAI_API_KEY}\",\n    \"model\": \"gpt-4o-mini\",\n    \"baseURL\": \"https:\u002F\u002Fapi.openai.com\u002Fv1\"\n  },\n  \"extractMinMessages\": 2,\n  \"extractMaxChars\": 8000\n}\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Embedding Providers\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nWorks with **any OpenAI-compatible embedding API**:\n\n| Provider | Model | Base URL | Dimensions |\n| --- | --- | --- | --- |\n| **Jina** (recommended) | `jina-embeddings-v5-text-small` | `https:\u002F\u002Fapi.jina.ai\u002Fv1` | 1024 |\n| **OpenAI** | `text-embedding-3-small` | `https:\u002F\u002Fapi.openai.com\u002Fv1` | 1536 |\n| **Voyage** | `voyage-4-lite` \u002F `voyage-4` | `https:\u002F\u002Fapi.voyageai.com\u002Fv1` | 1024 \u002F 1024 |\n| **Google Gemini** | `gemini-embedding-001` | `https:\u002F\u002Fgenerativelanguage.googleapis.com\u002Fv1beta\u002Fopenai\u002F` | 3072 |\n| **Ollama** (local) | `nomic-embed-text` | `http:\u002F\u002Flocalhost:11434\u002Fv1` | provider-specific |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Rerank Providers\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nCross-encoder reranking supports multiple providers via `rerankProvider`:\n\n| Provider | `rerankProvider` | Example Model |\n| --- | --- | --- |\n| **Jina** (default) | `jina` | `jina-reranker-v3` |\n| **SiliconFlow** (free tier available) | `siliconflow` | `BAAI\u002Fbge-reranker-v2-m3` |\n| **Voyage AI** | `voyage` | `rerank-2.5` |\n| **Pinecone** | `pinecone` | `bge-reranker-v2-m3` |\n\nAny Jina-compatible rerank endpoint also works — set `rerankProvider: \"jina\"` and point `rerankEndpoint` to your service (e.g., Hugging Face TEI, DashScope `qwen3-rerank`).\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Smart Extraction (LLM) — v1.1.0\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nWhen `smartExtraction` is enabled (default: `true`), the plugin uses an LLM to intelligently extract and classify memories instead of regex-based triggers.\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `smartExtraction` | boolean | `true` | Enable\u002Fdisable LLM-powered 6-category extraction |\n| `llm.auth` | string | `api-key` | `api-key` uses `llm.apiKey` \u002F `embedding.apiKey`; `oauth` uses a plugin-scoped OAuth token file by default |\n| `llm.apiKey` | string | *(falls back to `embedding.apiKey`)* | API key for the LLM provider |\n| `llm.model` | string | `openai\u002Fgpt-oss-120b` | LLM model name |\n| `llm.baseURL` | string | *(falls back to `embedding.baseURL`)* | LLM API endpoint |\n| `llm.oauthProvider` | string | `openai-codex` | OAuth provider id used when `llm.auth` is `oauth` |\n| `llm.oauthPath` | string | `~\u002F.openclaw\u002F.memory-lancedb-pro\u002Foauth.json` | OAuth token file used when `llm.auth` is `oauth` |\n| `llm.timeoutMs` | number | `30000` | LLM request timeout in milliseconds |\n| `extractMinMessages` | number | `2` | Minimum messages before extraction triggers |\n| `extractMaxChars` | number | `8000` | Maximum characters sent to the LLM |\n\n\nOAuth `llm` config (use existing Codex \u002F ChatGPT login cache for LLM calls):\n```json\n{\n  \"llm\": {\n    \"auth\": \"oauth\",\n    \"oauthProvider\": \"openai-codex\",\n    \"model\": \"gpt-5.4\",\n    \"oauthPath\": \"${HOME}\u002F.openclaw\u002F.memory-lancedb-pro\u002Foauth.json\",\n    \"timeoutMs\": 30000\n  }\n}\n```\n\nNotes for `llm.auth: \"oauth\"`:\n\n- `llm.oauthProvider` is currently `openai-codex`.\n- OAuth tokens default to `~\u002F.openclaw\u002F.memory-lancedb-pro\u002Foauth.json`.\n- You can set `llm.oauthPath` if you want to store that file somewhere else.\n- `auth login` snapshots the previous api-key `llm` config next to the OAuth file, and `auth logout` restores that snapshot when available.\n- Switching from `api-key` to `oauth` does not automatically carry over `llm.baseURL`. Set it manually in OAuth mode only when you intentionally want a custom ChatGPT\u002FCodex-compatible backend.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Lifecycle Configuration (Decay + Tier)\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Field | Default | Description |\n|-------|---------|-------------|\n| `decay.recencyHalfLifeDays` | `30` | Base half-life for Weibull recency decay |\n| `decay.frequencyWeight` | `0.3` | Weight of access frequency in composite score |\n| `decay.intrinsicWeight` | `0.3` | Weight of `importance × confidence` |\n| `decay.betaCore` | `0.8` | Weibull beta for `core` memories |\n| `decay.betaWorking` | `1.0` | Weibull beta for `working` memories |\n| `decay.betaPeripheral` | `1.3` | Weibull beta for `peripheral` memories |\n| `tier.coreAccessThreshold` | `10` | Min recall count before promoting to `core` |\n| `tier.peripheralAgeDays` | `60` | Age threshold for demoting stale memories |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Access Reinforcement\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nFrequently recalled memories decay more slowly (spaced-repetition style).\n\nConfig keys (under `retrieval`):\n- `reinforcementFactor` (0-2, default: `0.5`) — set `0` to disable\n- `maxHalfLifeMultiplier` (1-10, default: `3`) — hard cap on effective half-life\n\n\u003C\u002Fdetails>\n\n---\n\n## CLI Commands\n\n```bash\nopenclaw memory-pro list [--scope global] [--category fact] [--limit 20] [--json]\nopenclaw memory-pro search \"query\" [--scope global] [--limit 10] [--json]\nopenclaw memory-pro stats [--scope global] [--json]\nopenclaw memory-pro auth login [--provider openai-codex] [--model gpt-5.4] [--oauth-path \u002Fabs\u002Fpath\u002Foauth.json]\nopenclaw memory-pro auth status\nopenclaw memory-pro auth logout\nopenclaw memory-pro delete \u003Cid>\nopenclaw memory-pro delete-bulk --scope global [--before 2025-01-01] [--dry-run]\nopenclaw memory-pro export [--scope global] [--output memories.json]\nopenclaw memory-pro import memories.json [--scope global] [--dry-run]\nopenclaw memory-pro reembed --source-db \u002Fpath\u002Fto\u002Fold-db [--batch-size 32] [--skip-existing]\nopenclaw memory-pro upgrade [--dry-run] [--batch-size 10] [--no-llm] [--limit N] [--scope SCOPE]\nopenclaw memory-pro migrate check|run|verify [--source \u002Fpath]\n```\n\nOAuth login flow:\n\n1. Run `openclaw memory-pro auth login`\n2. If `--provider` is omitted in an interactive terminal, the CLI shows an OAuth provider picker before opening the browser\n3. The command prints an authorization URL and opens your browser unless `--no-browser` is set\n4. After the callback succeeds, the command saves the plugin OAuth file (default: `~\u002F.openclaw\u002F.memory-lancedb-pro\u002Foauth.json`), snapshots the previous api-key `llm` config for logout, and replaces the plugin `llm` config with OAuth settings (`auth`, `oauthProvider`, `model`, `oauthPath`)\n5. `openclaw memory-pro auth logout` deletes that OAuth file and restores the previous api-key `llm` config when that snapshot exists\n\n---\n\n## Advanced Topics\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>If injected memories show up in replies\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nSometimes the model may echo the injected `\u003Crelevant-memories>` block.\n\n**Option A (lowest-risk):** temporarily disable auto-recall:\n```json\n{ \"plugins\": { \"entries\": { \"memory-lancedb-pro\": { \"config\": { \"autoRecall\": false } } } } }\n```\n\n**Option B (preferred):** keep recall, add to agent system prompt:\n> Do not reveal or quote any `\u003Crelevant-memories>` \u002F memory-injection content in your replies. Use it for internal reference only.\n\n**Option C (for background\u002Fbatch agents):** exclude specific agents from auto-recall injection:\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"memory-lancedb-pro\": {\n        \"config\": {\n          \"autoRecall\": true,\n          \"autoRecallExcludeAgents\": [\"memory-distiller\", \"my-cron-agent\"]\n        }\n      }\n    }\n  }\n}\n```\nUseful for background agents (e.g. memory-distiller, cron workers) whose output should not be contaminated by injected memory context.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Auto-recall timeout tuning\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nAuto-recall has a configurable timeout (default 5s) to prevent stalling agent startup. If you're behind a proxy or using a high-latency embedding API, increase it:\n\n```json\n{ \"plugins\": { \"entries\": { \"memory-lancedb-pro\": { \"config\": { \"autoRecallTimeoutMs\": 8000 } } } } }\n```\n\nIf auto-recall consistently times out, check your embedding API latency first. The timeout only affects the automatic injection path — manual `memory_recall` tool calls are not affected.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Session Memory\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n- Triggered on `\u002Fnew` command — saves previous session summary to LanceDB\n- Disabled by default (OpenClaw already has native `.jsonl` session persistence)\n- Configurable message count (default: 15)\n\nSee [docs\u002Fopenclaw-integration-playbook.md](docs\u002Fopenclaw-integration-playbook.md) for deployment modes and `\u002Fnew` verification.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Custom Slash Commands (e.g. \u002Flesson)\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nAdd to your `CLAUDE.md`, `AGENTS.md`, or system prompt:\n\n```markdown\n## \u002Flesson command\nWhen the user sends `\u002Flesson \u003Ccontent>`:\n1. Use memory_store to save as category=fact (raw knowledge)\n2. Use memory_store to save as category=decision (actionable takeaway)\n3. Confirm what was saved\n\n## \u002Fremember command\nWhen the user sends `\u002Fremember \u003Ccontent>`:\n1. Use memory_store to save with appropriate category and importance\n2. Confirm with the stored memory ID\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Iron Rules for AI Agents\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n> Copy the block below into your `AGENTS.md` so your agent enforces these rules automatically.\n\n```markdown\n## Rule 1 — Dual-layer memory storage\nEvery pitfall\u002Flesson learned → IMMEDIATELY store TWO memories:\n- Technical layer: Pitfall: [symptom]. Cause: [root cause]. Fix: [solution]. Prevention: [how to avoid]\n  (category: fact, importance >= 0.8)\n- Principle layer: Decision principle ([tag]): [behavioral rule]. Trigger: [when]. Action: [what to do]\n  (category: decision, importance >= 0.85)\n\n## Rule 2 — LanceDB hygiene\nEntries must be short and atomic (\u003C 500 chars). No raw conversation summaries or duplicates.\n\n## Rule 3 — Recall before retry\nOn ANY tool failure, ALWAYS memory_recall with relevant keywords BEFORE retrying.\n\n## Rule 4 — Confirm target codebase\nConfirm you are editing memory-lancedb-pro vs built-in memory-lancedb before changes.\n\n## Rule 5 — Clear jiti cache after plugin code changes\nAfter modifying .ts files under plugins\u002F, MUST run rm -rf \u002Ftmp\u002Fjiti\u002F BEFORE openclaw gateway restart.\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Database Schema\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nLanceDB table `memories`:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | string (UUID) | Primary key |\n| `text` | string | Memory text (FTS indexed) |\n| `vector` | float[] | Embedding vector |\n| `category` | string | Storage category: `preference` \u002F `fact` \u002F `decision` \u002F `entity` \u002F `reflection` \u002F `other` |\n| `scope` | string | Scope identifier (e.g., `global`, `agent:main`) |\n| `importance` | float | Importance score 0-1 |\n| `timestamp` | int64 | Creation timestamp (ms) |\n| `metadata` | string (JSON) | Extended metadata |\n\nCommon `metadata` keys in v1.1.0: `l0_abstract`, `l1_overview`, `l2_content`, `memory_category`, `tier`, `access_count`, `confidence`, `last_accessed_at`\n\n> **Note on categories:** The top-level `category` field uses 6 storage categories. The 6-category semantic labels from Smart Extraction (`profile` \u002F `preferences` \u002F `entities` \u002F `events` \u002F `cases` \u002F `patterns`) are stored in `metadata.memory_category`.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Troubleshooting\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n### \"Cannot mix BigInt and other types\" (LanceDB \u002F Apache Arrow)\n\nOn LanceDB 0.26+, some numeric columns may be returned as `BigInt`. Upgrade to **memory-lancedb-pro >= 1.0.14** — this plugin now coerces values using `Number(...)` before arithmetic.\n\n\u003C\u002Fdetails>\n\n---\n\n## Hook Adaptation (OpenClaw 2026.3+)\n\nStarting with v1.1.0-beta.9, the plugin's lifecycle hooks have been updated for compatibility with the refactored OpenClaw plugin system.\n\n### What changed\n\n| Hook | Before | After | Why |\n|------|--------|-------|-----|\n| Auto-recall | `before_agent_start` | `before_prompt_build` (priority 10) | `before_agent_start` is deprecated; `before_prompt_build` is the recommended hook for prompt mutation |\n| Reflection invariants | `before_agent_start` | `before_prompt_build` (priority 12) | Same reason as above |\n| Reflection derived focus | `before_prompt_build` | `before_prompt_build` (priority 15) | Unchanged event, added explicit priority |\n| All other lifecycle hooks | unchanged | unchanged | `agent_end`, `after_tool_call`, `session_end`, `message_received`, `before_message_write` |\n\n### Hook API distinction\n\nOpenClaw exposes two hook registration methods. They write to **different registries**:\n\n| Method | Registry | Dispatch | Use for |\n|--------|----------|----------|---------|\n| `api.on(event, handler, opts)` | `registry.typedHooks` | Dispatched by the lifecycle hook runner | Lifecycle events: `before_prompt_build`, `agent_end`, `after_tool_call`, `session_end`, `message_received`, `before_message_write` |\n| `api.registerHook(event, handler, opts)` | `registry.hooks` | Dispatched by the internal hook system | Command\u002Fbootstrap events: `command:new`, `command:reset`, `agent:bootstrap` |\n\nUsing the wrong method causes hooks to register silently without firing. This plugin uses `api.on()` for all lifecycle hooks and `api.registerHook()` for command hooks.\n\n### Verifying hooks after install\n\n```bash\nopenclaw plugins info memory-lancedb-pro\n```\n\nYou should see:\n\n```\nLegacy before_agent_start: no\n\nTyped hooks:\n  agent_end\n  before_message_write\n  before_prompt_build (priority 10)\n  message_received\n\nCustom hooks:\n  memory-lancedb-pro-session-memory: command:new\n```\n\nIf `Legacy before_agent_start: yes` appears, you are running an older version of the plugin.\n\n### Migration from older versions\n\nIf you are upgrading from v1.1.0-beta.8 or earlier:\n\n1. Replace the plugin files (copy or `openclaw plugins install`)\n2. Clear the jiti cache: `rm -rf \u002Ftmp\u002Fjiti\u002F`\n3. Restart the gateway: `openclaw gateway restart`\n4. Verify: `openclaw plugins info memory-lancedb-pro` should show `Legacy before_agent_start: no`\n\nNo config changes or data migration required. All existing memories, scopes, and settings are preserved.\n\n### OpenClaw version requirements\n\n- **Minimum:** OpenClaw 2026.3.22\n- **Recommended:** OpenClaw latest (2026.3.23+)\n\nThis version uses `before_prompt_build` hooks (replacing the deprecated `before_agent_start`), which requires OpenClaw 2026.3.22 or later. Running `openclaw doctor --fix` after upgrading will automatically migrate plugin config (e.g. `minimax-portal-auth` → `minimax`, Brave search as a standalone plugin).\n\nTo upgrade OpenClaw:\n\n```bash\nnpm update -g openclaw\nopenclaw --version    # verify >= 2026.3.22\nopenclaw doctor --fix # resolve any stale config after upgrade\n```\n\n---\n\n## Documentation\n\n| Document | Description |\n| --- | --- |\n| [OpenClaw Integration Playbook](docs\u002Fopenclaw-integration-playbook.md) | Deployment modes, verification, regression matrix |\n| [Memory Architecture Analysis](docs\u002Fmemory_architecture_analysis.md) | Full architecture deep-dive |\n| [CHANGELOG v1.1.0](docs\u002FCHANGELOG-v1.1.0.md) | v1.1.0 behavior changes and upgrade rationale |\n| [Long-Context Chunking](docs\u002Flong-context-chunking.md) | Chunking strategy for long documents |\n\n---\n\n## Beta: Smart Memory v1.1.0\n\n> Status: Beta — available via `npm i memory-lancedb-pro@beta`. Stable users on `latest` are not affected.\n\n| Feature | Description |\n|---------|-------------|\n| **Smart Extraction** | LLM-powered 6-category extraction with L0\u002FL1\u002FL2 metadata. Falls back to regex when disabled. |\n| **Lifecycle Scoring** | Weibull decay integrated into retrieval — high-frequency and high-importance memories rank higher. |\n| **Tier Management** | Three-tier system (Core → Working → Peripheral) with automatic promotion\u002Fdemotion. |\n\nFeedback: [GitHub Issues](https:\u002F\u002Fgithub.com\u002FCortexReach\u002Fmemory-lancedb-pro\u002Fissues) · Revert: `npm i memory-lancedb-pro@latest`\n\n---\n\n## Dependencies\n\n| Package | Purpose |\n| --- | --- |\n| `@lancedb\u002Flancedb` ≥0.26.2 | Vector database (ANN + FTS) |\n| `openai` ≥6.21.0 | OpenAI-compatible Embedding API client |\n| `@sinclair\u002Ftypebox` 0.34.48 | JSON Schema type definitions |\n\n---\n\n## Contributors\n\n\u003Cp>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwin4r\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F42172631?v=4\" width=\"48\" height=\"48\" alt=\"@win4r\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkctony\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1731141?v=4\" width=\"48\" height=\"48\" alt=\"@kctony\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAkatsuki-Ryu\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F8062209?v=4\" width=\"48\" height=\"48\" alt=\"@Akatsuki-Ryu\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJasonSuz\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F612256?v=4\" width=\"48\" height=\"48\" alt=\"@JasonSuz\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMinidoracat\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F11269639?v=4\" width=\"48\" height=\"48\" alt=\"@Minidoracat\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffuredericca-lab\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F263020793?v=4\" width=\"48\" height=\"48\" alt=\"@furedericca-lab\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoe2643\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F19421931?v=4\" width=\"48\" height=\"48\" alt=\"@joe2643\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAliceLJY\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F136287420?v=4\" width=\"48\" height=\"48\" alt=\"@AliceLJY\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fchenjiyong\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F8199522?v=4\" width=\"48\" height=\"48\" alt=\"@chenjiyong\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\nFull list: [Contributors](https:\u002F\u002Fgithub.com\u002FCortexReach\u002Fmemory-lancedb-pro\u002Fgraphs\u002Fcontributors)\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#CortexReach\u002Fmemory-lancedb-pro&Date\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=CortexReach\u002Fmemory-lancedb-pro&type=Date&theme=dark&transparent=true\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=CortexReach\u002Fmemory-lancedb-pro&type=Date&transparent=true\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=CortexReach\u002Fmemory-lancedb-pro&type=Date&transparent=true\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n## License\n\nMIT\n\n---\n\n## My WeChat QR Code\n\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fwin4r\u002FAISuperDomain\u002Fassets\u002F42172631\u002F7568cf78-c8ba-4182-aa96-d524d903f2bc\" width=\"214.8\" height=\"291\">\n","memory-lancedb-pro 是一个增强的 LanceDB 内存插件，专为 OpenClaw 代理设计，旨在提供长期记忆功能。其核心功能包括混合检索（向量和 BM25）、交叉编码器重排序、多范围隔离以及管理命令行接口。通过这些技术特点，该插件能够自动捕获用户的偏好、决策和项目上下文，并在未来的会话中自动回忆这些信息。适用于需要持续学习和记忆能力的 AI 代理场景，如个人助手、客户服务机器人等，能够显著提升用户体验，减少重复输入的需求。",2,"2026-06-11 03:49:56","high_star"]