{"_id":"@agent-ltm/openclaw-memory-plugin","_rev":"7-bf8a3cff63753efbdece3ba091058981","name":"@agent-ltm/openclaw-memory-plugin","dist-tags":{"latest":"0.4.0"},"versions":{"0.3.0":{"name":"@agent-ltm/openclaw-memory-plugin","version":"0.3.0","keywords":["openclaw","openclaw-plugin","agent-memory","ai","memory","llm"],"license":"MIT","_id":"@agent-ltm/openclaw-memory-plugin@0.3.0","maintainers":[{"name":"x7bodhi","email":"x7bodhi@gmail.com"}],"dist":{"shasum":"220b8ffb1d9efb609fddc39b05b70bc89d115380","tarball":"https://registry.npmjs.org/@agent-ltm/openclaw-memory-plugin/-/openclaw-memory-plugin-0.3.0.tgz","fileCount":69,"integrity":"sha512-7d6SVKfGlBxOjCSFDvuSZxtCGrBbLeegmp7UQD9S9jqhj3nBtPORJm2v2egeHHftnPE5M7QXd+NeqLmqnIYg9A==","signatures":[{"sig":"MEYCIQCmcxEoNZHF+C8rw+xLi00Sgj+RP4Wdl/PtdEzsD+j3LAIhAOH8WLTf7Lwikr+G3A5Q1V+KPOUWJ5KkYIPff4Ds+6ud","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291841},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b3dc330459339b9ce4a7f3e8ce01c78c33d9fe87","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","release":"node scripts/release.mjs"},"_npmUser":{"name":"x7bodhi","email":"x7bodhi@gmail.com"},"openclaw":{"extensions":["./dist/index.js"]},"_npmVersion":"11.6.2","description":"OpenClaw plugin — persistent cross-session memory for AI agents","directories":{},"_nodeVersion":"25.0.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.46.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-memory-plugin_0.3.0_1773487188517_0.8379663825746402","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@agent-ltm/openclaw-memory-plugin","version":"0.4.0","description":"OpenClaw plugin — persistent cross-session memory for AI agents","type":"module","main":"dist/index.js","types":"dist/index.d.ts","openclaw":{"extensions":["./dist/index.js"]},"scripts":{"build":"tsc","test":"vitest run","lint":"tsc --noEmit","release":"node scripts/release.mjs"},"keywords":["openclaw","openclaw-plugin","agent-memory","ai","memory","llm"],"engines":{"node":">=18.0.0"},"license":"MIT","devDependencies":{"@types/node":"^22.0.0","terser":"^5.46.0","typescript":"^5.7.0","vitest":"^3.0.0"},"gitHead":"9cc2f2fef322f2c185850d7e19b7cb2ad0a31159","_id":"@agent-ltm/openclaw-memory-plugin@0.4.0","_nodeVersion":"25.0.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-VCEM9dPwJCzzhokOGp/e9Id3xZj5Gcm7rxxE+UoFA/+3l7KcqvHNgp7dDnG6XeGOA/DE410Z1sW7Q78Nfd2OIw==","shasum":"2f9f8b0acb54ab4829e79232ed0014512174bf2d","tarball":"https://registry.npmjs.org/@agent-ltm/openclaw-memory-plugin/-/openclaw-memory-plugin-0.4.0.tgz","fileCount":69,"unpackedSize":297171,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDJP+SJ47+nsnklBRFG4WZCq+/A0ssLqjCZ3VGcqPgv2AiAcO5G75gqMyW05+DsAXgrTzPL2rqkgKLPqUT8n5wvJLQ=="}]},"_npmUser":{"name":"x7bodhi","email":"x7bodhi@gmail.com"},"directories":{},"maintainers":[{"name":"x7bodhi","email":"x7bodhi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-memory-plugin_0.4.0_1773496656276_0.3354980731496653"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-14T10:53:27.850Z","modified":"2026-03-14T13:57:36.549Z","0.1.0":"2026-03-14T10:53:28.092Z","0.2.0":"2026-03-14T11:12:45.667Z","0.3.0":"2026-03-14T11:19:48.671Z","0.4.0":"2026-03-14T13:57:36.413Z"},"license":"MIT","keywords":["openclaw","openclaw-plugin","agent-memory","ai","memory","llm"],"description":"OpenClaw plugin — persistent cross-session memory for AI agents","maintainers":[{"name":"x7bodhi","email":"x7bodhi@gmail.com"}],"readme":"# @agent-ltm/openclaw-memory-plugin\n\nOpenClaw plugin that gives your AI agent persistent, cross-session memory.\nAutomatically captures facts, preferences, decisions, and insights during\nconversations and recalls them when relevant.\n\n## Installation\n\n```bash\n# From npm registry\nopenclaw plugins install @agent-ltm/openclaw-memory-plugin\n\n# From local directory (for development)\nopenclaw plugins install -l ./packages/openclaw-plugin\n```\n\n## Configuration\n\nAdd to your `openclaw.json`:\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"agent-memory\": {\n        \"enabled\": true,\n        \"config\": {\n          \"userId\": \"alice\"\n        }\n      }\n    }\n  }\n}\n```\n\n### Zero Configuration (Default)\n\nWorks out of the box with no config. Uses:\n- **Storage**: `~/.openclaw/memory` (local filesystem)\n- **LLM**: Mock provider (keyword-based classification, no API calls)\n- **Embeddings**: Mock provider (n-gram hash embeddings, no API calls)\n- **User**: `default`\n\n### With OpenAI (Production Quality)\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"agent-memory\": {\n        \"enabled\": true,\n        \"config\": {\n          \"userId\": \"alice\",\n          \"llmProvider\": \"openai\",\n          \"embeddingProvider\": \"openai\",\n          \"openaiApiKey\": \"sk-...\"\n        }\n      }\n    }\n  }\n}\n```\n\n### With Ollama (Fully Local)\n\n```bash\n# Ensure Ollama is running\nollama pull llama3.2\nollama pull nomic-embed-text\n```\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"agent-memory\": {\n        \"enabled\": true,\n        \"config\": {\n          \"userId\": \"alice\",\n          \"llmProvider\": \"ollama\",\n          \"embeddingProvider\": \"ollama\"\n        }\n      }\n    }\n  }\n}\n```\n\n### With S3 Storage\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"agent-memory\": {\n        \"enabled\": true,\n        \"config\": {\n          \"llmProvider\": \"openai\",\n          \"embeddingProvider\": \"openai\",\n          \"openaiApiKey\": \"sk-...\",\n          \"s3Bucket\": \"my-agent-memory\",\n          \"s3Region\": \"us-east-1\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Config Reference\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `dataDir` | string | `~/.openclaw/memory` | Local storage directory |\n| `userId` | string | `default` | User namespace for memory isolation |\n| `llmProvider` | string | `mock` | `mock`, `openai`, or `ollama` |\n| `embeddingProvider` | string | `mock` | `mock`, `openai`, or `ollama` |\n| `openaiApiKey` | string | — | Required when provider is `openai` |\n| `ollamaBaseUrl` | string | `http://localhost:11434` | Ollama API URL |\n| `s3Bucket` | string | — | S3 bucket for cloud storage |\n| `s3Region` | string | — | AWS region |\n| `s3Endpoint` | string | — | Custom S3 endpoint (MinIO, R2) |\n| `s3ForcePathStyle` | boolean | `false` | Path-style S3 URLs |\n\n## Registered Agent Tools\n\nThe plugin registers 20 agent tools that the LLM can call:\n\n| Tool | Description |\n|------|-------------|\n| `memory_capture` | Store a memory (auto-classifies type, generates summary) |\n| `memory_recall` | Retrieve relevant memories with progressive L0/L1/L2 loading |\n| `memory_search` | Advanced search with type/importance/tag filters |\n| `memory_get` | Get a specific memory by ID |\n| `memory_forget` | Delete a specific memory |\n| `memory_forget_all` | Delete all memories for the user |\n| `memory_grep` | Exact text search across memories |\n| `memory_status` | Memory count and breakdown |\n| `memory_ingest` | Extract memories from a conversation |\n| `memory_consolidate` | Deduplicate and merge similar memories |\n| `memory_start_session` | Start a working memory session |\n| `memory_end_session` | End a session and manage its memories (promote/discard/auto) |\n| `memory_get_session_memories` | Get all memories from a specific session |\n| `memory_export` | Export all memories to portable JSON format |\n| `memory_import` | Import memories from previously exported JSON |\n| `memory_check_drift` | Check embedding model version drift |\n| `memory_rebuild` | Rebuild L0 index and optionally re-embed vectors |\n| `memory_get_brief` | Get unified memory brief (background awareness for conversation start) |\n| `memory_refresh_brief` | Force regeneration of the memory brief |\n| `memory_set_brief` | Manually set brief content (cold-start / user correction) |\n\nAll tools automatically use the `userId` from plugin config — the agent\ndoesn't need to specify it per-call.\n\n## Bundled Skill\n\nThis plugin ships an OpenClaw skill that teaches the agent:\n- Automatic recall at conversation start\n- Proactive capture during conversations\n- Conversation ingestion at session end\n- Slash commands (`/memory-status`, `/memory-capture`, etc.)\n\nThe skill is loaded automatically when the plugin is enabled.\n\n## How It Works\n\n```\n┌──────────────────────────────────────────────────────┐\n│                    OpenClaw Agent                      │\n│                                                       │\n│  \"What framework should I use?\"                       │\n│         │                                             │\n│         ▼                                             │\n│  ┌─────────────────────┐   ┌──────────────────────┐  │\n│  │ memory_recall tool  │──▶│ agent-memory library  │  │\n│  │ (injected by plugin)│   │ (L0→L1→L2 loading)   │  │\n│  └─────────────────────┘   └──────────────────────┘  │\n│         │                                             │\n│         ▼                                             │\n│  \"You previously decided on React + TypeScript...\"    │\n└──────────────────────────────────────────────────────┘\n```\n\n## Development\n\n```bash\n# From monorepo root\nnpm install\nnpm run build --workspace=packages/core\nnpm run build --workspace=packages/openclaw-plugin\nnpm test --workspace=packages/openclaw-plugin\n\n# Install locally in OpenClaw for development\nopenclaw plugins install -l ./packages/openclaw-plugin\n```\n","readmeFilename":"README.md"}