Sessions and memory
موتور حافظه داخلی
موتور داخلی، بکاند پیشفرض حافظه است. این موتور نمایهٔ حافظه را در یک پایگاه دادهٔ SQLite برای هر عامل ذخیره میکند و برای شروع به هیچ وابستگی اضافی نیاز ندارد.
امکانات
- جستوجوی کلیدواژهای از طریق نمایهسازی متن کامل FTS5 (امتیازدهی BM25).
- جستوجوی برداری از طریق تعبیهسازیهای هر ارائهدهندهٔ پشتیبانیشده.
- جستوجوی ترکیبی که برای دستیابی به بهترین نتایج، هر دو را ترکیب میکند.
- پشتیبانی از CJK از طریق توکنسازی سهحرفی برای زبانهای چینی، ژاپنی و کرهای.
- شتابدهی sqlite-vec برای پرسوجوهای برداری درون پایگاه داده (اختیاری).
شروع به کار
موتور داخلی بهطور پیشفرض از تعبیهسازیهای OpenAI استفاده میکند. اگر OPENAI_API_KEY یا
models.providers.openai.apiKey از قبل پیکربندی شده باشد، جستوجوی برداری
بدون پیکربندی اضافی حافظه کار میکند.
برای تعیین صریح یک ارائهدهنده:
{ memory: { search: { provider: "openai", }, },}بدون ارائهدهندهٔ تعبیهسازی، فقط جستوجوی کلیدواژهای در دسترس است.
برای اجبار به استفاده از تعبیهسازیهای محلی GGUF، Plugin رسمی ارائهدهندهٔ llama.cpp را
نصب کنید، سپس local.modelPath را به یک فایل GGUF ارجاع دهید:
openclaw plugins install @openclaw/llama-cpp-provider{ memory: { search: { provider: "local", fallback: "none", local: { modelPath: "~/.node-llama-cpp/models/embeddinggemma-300m-qat-Q8_0.gguf", }, }, },}ارائهدهندگان تعبیهسازی پشتیبانیشده
| ارائهدهنده | شناسه | توضیحات |
|---|---|---|
| Bedrock | bedrock |
از زنجیرهٔ اعتبارنامههای AWS استفاده میکند |
| DeepInfra | deepinfra |
پیشفرض: BAAI/bge-m3 |
| Gemini | gemini |
از چندوجهی (تصویر + صدا) پشتیبانی میکند |
| GitHub Copilot | github-copilot |
از اشتراک Copilot شما استفاده میکند |
| LM Studio | lmstudio |
محلی/خودمیزبان |
| محلی | local |
@openclaw/llama-cpp-provider |
| Mistral | mistral |
|
| Ollama | ollama |
محلی/خودمیزبان |
| OpenAI | openai |
پیشفرض: text-embedding-3-small |
| سازگار با OpenAI | openai-compatible |
نقطهٔ پایانی عمومی /v1/embeddings |
| Voyage | voyage |
برای تغییر از OpenAI، memory.search.provider را تنظیم کنید.
نحوهٔ کار نمایهسازی
OpenClaw، MEMORY.md و memory/*.md را به قطعهها (بهطور پیشفرض 400 توکن با
همپوشانی 80 توکنی) نمایهسازی کرده و آنها را در یک پایگاه دادهٔ SQLite برای هر عامل ذخیره میکند.
- محل نمایه: پایگاه دادهٔ عامل مالک در
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite - نگهداری فضای ذخیرهسازی: فایلهای جانبی WAL مربوط به SQLite با checkpointهای دورهای و هنگام خاموششدن محدود نگه داشته میشوند.
- پایش فایل: تغییرات فایلهای حافظه، نمایهسازی مجدد با تأخیر کنترلشده را فعال میکنند (پیشفرض 1.5 ثانیه).
- نمایهسازی مجدد خودکار: با تغییر ارائهدهندهٔ تعبیهسازی، مدل، پیکربندی قطعهبندی، منابع پیکربندیشده یا دامنه، نمایه بهطور خودکار بازسازی میشود.
- نمایهسازی مجدد در صورت درخواست:
openclaw memory index --force
موارد استفاده
موتور داخلی برای بیشتر کاربران انتخاب مناسبی است:
- بدون هیچ وابستگی اضافی، بلافاصله قابل استفاده است.
- جستوجوی کلیدواژهای و برداری را بهخوبی انجام میدهد.
- از همهٔ ارائهدهندگان تعبیهسازی پشتیبانی میکند.
- جستوجوی ترکیبی، بهترین ویژگیهای هر دو رویکرد بازیابی را ترکیب میکند.
اگر به رتبهبندی مجدد، گسترش پرسوجو یا نمایهسازی پوشههای خارج از فضای کاری نیاز دارید، استفاده از QMD را در نظر بگیرید.
اگر حافظهٔ بیننشستی با مدلسازی خودکار کاربر میخواهید، Honcho را در نظر بگیرید.
عیبیابی
جستوجوی حافظه غیرفعال است؟ openclaw memory status را بررسی کنید. اگر هیچ ارائهدهندهای
شناسایی نشد، یکی را صریحاً تنظیم کنید یا یک کلید API اضافه کنید.
ارائهدهندهٔ محلی شناسایی نمیشود؟ مطمئن شوید مسیر محلی وجود دارد و اجرا کنید:
openclaw memory status --deep --agent mainopenclaw memory index --force --agent mainهم فرمانهای مستقل CLI و هم Gateway از شناسهٔ ارائهدهندهٔ یکسان local استفاده میکنند.
هنگامی که تعبیهسازیهای محلی میخواهید، memory.search.provider: "local" را تنظیم کنید.
نتایج قدیمی هستند؟ برای بازسازی، openclaw memory index --force را اجرا کنید. پایشگر
ممکن است در موارد مرزی نادر، تغییرات را تشخیص ندهد.
sqlite-vec بارگذاری نمیشود؟ OpenClaw بهطور خودکار به شباهت کسینوسی
درونفرایندی بازمیگردد. openclaw memory status --deep مخزن برداری محلی را
جدا از ارائهدهندهٔ تعبیهسازی گزارش میکند؛ بنابراین Vector store: unavailable به بارگذاری sqlite-vec اشاره دارد، درحالیکه Embeddings: unavailable
به آمادگی ارائهدهنده/احراز هویت یا مدل اشاره میکند. برای خطای بارگذاری مشخص،
گزارشها را بررسی کنید.
پیکربندی
برای راهاندازی ارائهدهندهٔ تعبیهسازی، تنظیم جستوجوی ترکیبی (وزنها، MMR، زوال زمانی)، نمایهسازی دستهای، حافظهٔ چندوجهی، sqlite-vec، مسیرهای اضافی و همهٔ گزینههای پیکربندی دیگر، به مرجع پیکربندی حافظه مراجعه کنید.