Bundled plugin guides
Пам’ять LanceDB
memory-lancedb — це офіційний зовнішній plugin памʼяті, який зберігає довгострокову памʼять у
LanceDB і використовує вбудовування для пригадування. Він може автоматично пригадувати релевантні
спогади перед ходом моделі та фіксувати важливі факти після відповіді.
Використовуйте його, коли потрібна локальна векторна база даних для памʼяті, потрібна OpenAI-сумісна кінцева точка вбудовувань або коли потрібно тримати базу даних памʼяті поза стандартним вбудованим сховищем памʼяті.
Встановлення
Установіть memory-lancedb перед налаштуванням plugins.slots.memory = "memory-lancedb":
openclaw plugins install @openclaw/memory-lancedbPlugin опубліковано в npm, і його не вбудовано в образ runtime OpenClaw. Інсталятор записує запис plugin і перемикає слот памʼяті, якщо ним не володіє інший plugin.
Швидкий старт
{ plugins: { slots: { memory: "memory-lancedb", }, entries: { "memory-lancedb": { enabled: true, config: { embedding: { provider: "openai", model: "text-embedding-3-small", }, autoRecall: true, autoCapture: false, }, }, }, },}Перезапустіть Gateway після зміни конфігурації plugin:
openclaw gateway restartПотім перевірте, що plugin завантажено:
openclaw plugins listВбудовування на базі постачальника
memory-lancedb може використовувати ті самі адаптери постачальників вбудовувань памʼяті, що й
memory-core. Задайте embedding.provider і не вказуйте embedding.apiKey, щоб використовувати
налаштований профіль автентифікації постачальника, змінну середовища або
models.providers.<provider>.apiKey.
{ plugins: { slots: { memory: "memory-lancedb", }, entries: { "memory-lancedb": { enabled: true, config: { embedding: { provider: "openai", model: "text-embedding-3-small", }, autoRecall: true, }, }, }, },}Цей шлях працює з профілями автентифікації постачальників, які надають облікові дані для вбудовувань. Наприклад, GitHub Copilot можна використовувати, коли профіль/план Copilot підтримує вбудовування:
{ plugins: { slots: { memory: "memory-lancedb", }, entries: { "memory-lancedb": { enabled: true, config: { embedding: { provider: "github-copilot", model: "text-embedding-3-small", }, }, }, }, },}OpenAI Codex / ChatGPT OAuth не є обліковими даними вбудовувань OpenAI Platform.
Для вбудовувань OpenAI використовуйте профіль автентифікації з API-ключем OpenAI,
OPENAI_API_KEY або models.providers.openai.apiKey. Користувачі лише з OAuth можуть використовувати
іншого постачальника з підтримкою вбудовувань, наприклад GitHub Copilot або Ollama.
Вбудовування Ollama
Для вбудовувань Ollama надавайте перевагу вбудованому постачальнику вбудовувань Ollama. Він використовує
нативну кінцеву точку Ollama /api/embed і дотримується тих самих правил автентифікації/base URL, що й
постачальник Ollama, описаний у Ollama.
{ plugins: { slots: { memory: "memory-lancedb", }, entries: { "memory-lancedb": { enabled: true, config: { embedding: { provider: "ollama", baseUrl: "http://127.0.0.1:11434", model: "mxbai-embed-large", dimensions: 1024, }, recallMaxChars: 400, autoRecall: true, autoCapture: false, }, }, }, },}Задайте dimensions для нестандартних моделей вбудовувань. OpenClaw знає
розмірності для text-embedding-3-small і text-embedding-3-large; для власних
моделей потрібно вказати це значення в конфігурації, щоб LanceDB могла створити векторний стовпець.
Для невеликих локальних моделей вбудовувань зменште recallMaxChars, якщо бачите помилки
довжини контексту від локального сервера.
OpenAI-сумісні постачальники
Деякі OpenAI-сумісні постачальники вбудовувань відхиляють параметр encoding_format,
а інші ігнорують його й завжди повертають вектори number[].
Тому memory-lancedb не вказує encoding_format у запитах вбудовувань і
приймає або відповіді з масивом чисел із рухомою комою, або base64-кодовані відповіді float32.
Якщо у вас є сира OpenAI-сумісна кінцева точка вбудовувань, для якої немає
вбудованого адаптера постачальника, не вказуйте embedding.provider (або залиште його як openai) і
задайте embedding.apiKey разом із embedding.baseUrl. Це зберігає прямий
шлях OpenAI-сумісного клієнта.
Задайте embedding.dimensions для постачальників, розмірності моделей яких не вбудовані.
Наприклад, ZhiPu embedding-3 використовує 2048 розмірності:
{ plugins: { entries: { "memory-lancedb": { enabled: true, config: { embedding: { apiKey: "${ZHIPU_API_KEY}", baseUrl: "https://open.bigmodel.cn/api/paas/v4", model: "embedding-3", dimensions: 2048, }, }, }, }, },}Обмеження пригадування та фіксації
memory-lancedb має два окремі обмеження тексту:
| Налаштування | Типове значення | Діапазон | Застосовується до |
|---|---|---|---|
recallMaxChars |
1000 |
100-10000 | тексту, надісланого до API вбудовувань для пригадування |
captureMaxChars |
500 |
100-10000 | довжини повідомлення, придатної для автоматичної фіксації |
customTriggers |
[] |
0-50 | буквальних фраз, які змушують автоматичну фіксацію розглядати повідомлення |
recallMaxChars керує автоматичним пригадуванням, інструментом memory_recall, шляхом запиту
memory_forget і openclaw ltm search. Автоматичне пригадування надає перевагу
останньому повідомленню користувача з ходу й повертається до повного prompt лише тоді, коли
повідомлення користувача недоступне. Це не допускає метадані каналу та великі блоки prompt
до запиту вбудовувань.
captureMaxChars керує тим, чи відповідь достатньо коротка, щоб її можна було розглядати
для автоматичної фіксації. Він не обмежує вбудовування запитів пригадування.
customTriggers дає змогу додавати буквальні фрази автоматичної фіксації без написання
регулярних виразів. Вбудовані тригери містять поширені фрази памʼяті англійською, чеською,
китайською, японською та корейською мовами.
Команди
Коли memory-lancedb є активним plugin памʼяті, він реєструє простір імен CLI
ltm:
openclaw ltm listopenclaw ltm search "project preferences"openclaw ltm statsПідкоманда query виконує невекторний запит безпосередньо до таблиці LanceDB:
openclaw ltm query --cols id,text,createdAt --limit 20openclaw ltm query --filter "category = 'preference'" --order-by createdAt:desc--cols <columns>: список дозволених стовпців, розділених комами (типовоid,text,importance,category,createdAt).--filter <condition>: SQL-подібна умова WHERE; обмежена 200 символами та дозволяє лише літери й цифри, оператори порівняння, лапки, дужки й невеликий набір безпечної пунктуації.--limit <n>: додатне ціле число; типово10.--order-by <column>:<asc|desc>: сортування в памʼяті, застосоване після фільтра; стовпець сортування автоматично додається до проєкції.
Агенти також отримують інструменти памʼяті LanceDB від активного plugin памʼяті:
memory_recallдля пригадування на базі LanceDBmemory_storeдля збереження важливих фактів, налаштувань, рішень і сутностейmemory_forgetдля видалення відповідних спогадів
Сховище
За замовчуванням дані LanceDB розміщуються в ~/.openclaw/memory/lancedb. Перевизначте
шлях за допомогою dbPath:
{ plugins: { entries: { "memory-lancedb": { enabled: true, config: { dbPath: "~/.openclaw/memory/lancedb", embedding: { apiKey: "${OPENAI_API_KEY}", model: "text-embedding-3-small", }, }, }, }, },}storageOptions приймає рядкові пари ключ/значення для бекендів сховища LanceDB і
підтримує розгортання ${ENV_VAR}:
{ plugins: { entries: { "memory-lancedb": { enabled: true, config: { dbPath: "s3://memory-bucket/openclaw", storageOptions: { access_key: "${AWS_ACCESS_KEY_ID}", secret_key: "${AWS_SECRET_ACCESS_KEY}", endpoint: "${AWS_ENDPOINT_URL}", }, embedding: { apiKey: "${OPENAI_API_KEY}", model: "text-embedding-3-small", }, }, }, }, },}Залежності runtime
memory-lancedb залежить від нативного пакета @lancedb/lancedb. У пакетованому
OpenClaw цей пакет вважається частиною пакета plugin. Запуск Gateway
не відновлює залежності plugin; якщо залежність відсутня, перевстановіть або
оновіть пакет plugin і перезапустіть Gateway.
Якщо старіше встановлення журналює помилку про відсутній dist/package.json або відсутній
@lancedb/lancedb під час завантаження plugin, оновіть OpenClaw і перезапустіть
Gateway.
Якщо plugin журналює, що LanceDB недоступна на darwin-x64, використовуйте стандартний
бекенд памʼяті на цій машині, перенесіть Gateway на підтримувану платформу або
вимкніть memory-lancedb.
Усунення несправностей
Довжина введення перевищує довжину контексту
Зазвичай це означає, що модель вбудовувань відхилила запит пригадування:
memory-lancedb: recall failed: Error: 400 the input length exceeds the context lengthЗадайте менше значення recallMaxChars, а потім перезапустіть Gateway:
{ plugins: { entries: { "memory-lancedb": { config: { recallMaxChars: 400, }, }, }, },}Для Ollama також перевірте, що сервер вбудовувань доступний із хоста Gateway:
curl http://127.0.0.1:11434/v1/embeddings \ -H "Content-Type: application/json" \ -d '{"model":"mxbai-embed-large","input":"hello"}'Непідтримувана модель вбудовувань
Без dimensions відомі лише вбудовані розмірності вбудовувань OpenAI.
Для локальних або власних моделей вбудовувань задайте embedding.dimensions як розмір вектора,
який повідомляє ця модель.
Plugin завантажується, але спогади не зʼявляються
Перевірте, що plugins.slots.memory вказує на memory-lancedb, а потім виконайте:
openclaw ltm statsopenclaw ltm search "recent preference"Якщо autoCapture вимкнено, plugin пригадуватиме наявні спогади, але
не зберігатиме нові автоматично. Використовуйте інструмент memory_store або ввімкніть
autoCapture, якщо потрібна автоматична фіксація.