{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-memory-skill",
    "name": "OpenClaw MongoDB Semantic Memory",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/mrlynn/openclaw-memory-skill",
    "canonicalUrl": "https://clawhub.ai/mrlynn/openclaw-memory-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-memory-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-memory-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/openclaw-memory-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/openclaw-memory-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-memory-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-memory-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-memory-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "OpenClaw Memory — Agent Skill",
        "body": "MongoDB-backed long-term memory with Voyage AI semantic search"
      },
      {
        "title": "When to Use",
        "body": "Use OpenClaw Memory when:\n\n✅ You need to recall prior conversations, decisions, or preferences\n✅ Building context across multiple sessions\n✅ Tracking facts, insights, or learnings over time\n✅ Searching for relevant information semantically (not just keywords)\n✅ Remembering user preferences, project details, or domain knowledge\n\nNOT for:\n\n❌ Immediate/short-term context (use conversation history instead)\n❌ Temporary scratch notes (use files in workspace)\n❌ Large document storage (use file system or database)"
      },
      {
        "title": "memory_search",
        "body": "Semantically search long-term memory. Use this to recall prior decisions, preferences, context, or facts.\n\nmemory_search({\n  query: \"What did we decide about the database schema?\",\n  maxResults: 6  // optional, default: 6\n})\n\nReturns: Array of memories with similarity scores, text, tags, and metadata.\n\nWhen to use:\n\nBefore answering questions about past work\nWhen user asks \"remember when...\" or \"what did we say about...\"\nTo check for existing context before making new decisions\nWhen solving similar problems to past ones\n\nExample output:\n\n{\n  \"results\": [\n    {\n      \"id\": \"507f1f77bcf86cd799439011\",\n      \"text\": \"Decided to use MongoDB for vector storage with Atlas Search\",\n      \"score\": 0.89,\n      \"tags\": [\"decision\", \"database\"],\n      \"createdAt\": \"2026-02-20T14:30:00Z\"\n    }\n  ]\n}"
      },
      {
        "title": "memory_remember",
        "body": "Store a fact, decision, preference, or important context in long-term memory.\n\nmemory_remember({\n  text: \"User prefers TypeScript over JavaScript for new projects\",\n  tags: [\"preference\", \"programming\"],  // optional\n  ttl: 2592000  // optional, 30 days default\n})\n\nReturns: Stored memory ID and confirmation.\n\nWhen to use:\n\nAfter important decisions are made\nWhen user states a preference (\"I prefer X over Y\")\nKey facts or insights discovered during work\nContext that should persist across sessions\nUser explicitly asks you to remember something\n\nBest practices:\n\nBe specific and concise (1-2 sentences ideal)\nInclude relevant tags for categorization\nDon't store temporary/ephemeral information\nUse structured format when possible (e.g., \"Key: value\")"
      },
      {
        "title": "memory_get",
        "body": "Read a specific memory file from the workspace. Use memory_search for semantic recall; use this for targeted file reads.\n\nmemory_get({\n  path: \"MEMORY.md\",\n  from: 1,      // optional, starting line\n  lines: 50     // optional, number of lines\n})\n\nReturns: File contents (text).\n\nWhen to use:\n\nAfter memory_search to get full context\nReading structured memory files (MEMORY.md, memory/YYYY-MM-DD.md)\nTargeted line-range reads for efficiency"
      },
      {
        "title": "memory_forget",
        "body": "Delete a specific memory by ID. Use memory_search first to find the memory ID.\n\nmemory_forget({\n  memoryId: \"507f1f77bcf86cd799439011\"\n})\n\nReturns: Confirmation or error.\n\nWhen to use:\n\nUser explicitly asks to delete/forget something\nCorrecting incorrect memories\nRemoving outdated information\nNever use proactively without user request"
      },
      {
        "title": "memory_list",
        "body": "Browse stored memories by recency or tag.\n\nmemory_list({\n  tags: \"decision,database\",  // optional, comma-separated\n  limit: 10,                  // optional, default: 10\n  sort: \"desc\"                // optional, \"desc\" or \"asc\"\n})\n\nReturns: Array of memories with metadata (no similarity scores).\n\nWhen to use:\n\nBrowsing recent memories\nFiltering by specific tags\nAudit/review of stored memories\nWhen user asks \"what have you remembered?\""
      },
      {
        "title": "memory_status",
        "body": "Check memory system health and stats.\n\nmemory_status()\n\nReturns: Daemon status, MongoDB connection, Voyage AI status, total memories, uptime.\n\nWhen to use:\n\nDebugging memory system issues\nUser asks about memory capacity or health\nBefore relying on memory for critical tasks\nRarely needed in normal operation"
      },
      {
        "title": "Configuration",
        "body": "Memory tools connect to a daemon at http://localhost:7654 by default. Configuration is set in ~/.openclaw/openclaw.json:\n\n{\n  plugins: {\n    entries: {\n      \"openclaw-memory\": {\n        enabled: true,\n        config: {\n          daemonUrl: \"http://localhost:7654\",\n          agentId: \"openclaw\",\n          maxResults: 6,\n          minScore: 0.5,\n          defaultTtl: 2592000  // 30 days\n        }\n      }\n    }\n  }\n}"
      },
      {
        "title": "Automatic Memory Capture",
        "body": "OpenClaw Memory includes lifecycle hooks that capture memories automatically:"
      },
      {
        "title": "auto-remember Hook",
        "body": "Fires after every agent response. Extracts facts, decisions, and preferences using pattern matching:\n\n\"I prefer...\" → stored as preference\n\"We decided...\" → stored as decision\n\"Remember that...\" → stored as fact\n\"Key: value\" patterns (structured data)\n\nLimits: Max 5 extractions per message, min 10 chars, deduplicates."
      },
      {
        "title": "session-to-memory Hook",
        "body": "Fires when starting a new session. Summarizes the ending session and stores it as a searchable memory."
      },
      {
        "title": "memory-bootstrap Hook",
        "body": "Fires on agent startup. Queries for relevant memories (preferences, recent decisions, pinned items) and injects them into context."
      },
      {
        "title": "memory-enriched-tools Hook",
        "body": "Fires before tool results are saved. Appends related memories as context annotations to Read/Grep/Glob/Bash outputs.\n\nTo disable hooks: Set hooksEnabled: false in plugin config."
      },
      {
        "title": "Example 1: Recall Prior Decision",
        "body": "User asks: \"What did we decide about the API authentication?\"\n\nAgent response:\n\nCall memory_search({ query: \"API authentication decision\" })\nReview results\nAnswer based on stored memory\nIf no results, say \"I don't have any memory of that decision\""
      },
      {
        "title": "Example 2: Store Preference",
        "body": "User says: \"I prefer Material UI over Tailwind for all React projects\"\n\nAgent response:\n\nAcknowledge the preference\nCall memory_remember({ text: \"User prefers Material UI over Tailwind for React projects\", tags: [\"preference\", \"ui\"] })\nConfirm it's stored: \"Got it, I'll remember that preference\""
      },
      {
        "title": "Example 3: Check Before Recommending",
        "body": "User asks: \"What CSS framework should we use?\"\n\nAgent response:\n\nCall memory_search({ query: \"CSS framework preference\" })\nIf match found: \"You previously preferred Material UI over Tailwind\"\nIf no match: Provide recommendation based on context"
      },
      {
        "title": "Example 4: Session Continuity",
        "body": "New session starts:\n\nmemory-bootstrap hook auto-runs\nLoads recent preferences, decisions, project context\nAgent has continuity without user repeating everything"
      },
      {
        "title": "Tips & Best Practices",
        "body": "Do:\n\n✅ Use memory_search before answering questions about past work\n✅ Store concise, specific facts (1-2 sentences)\n✅ Tag memories for easy filtering (preference, decision, fact, project-name)\n✅ Trust semantic search (it understands meaning, not just keywords)\n✅ Let hooks handle routine memory capture (preferences, decisions)\n\nDon't:\n\n❌ Store temporary/ephemeral information\n❌ Duplicate conversation history (that's already stored)\n❌ Store sensitive credentials (use secure storage instead)\n❌ Forget without user permission (use memory_forget sparingly)\n❌ Overwhelm with too many manual memory_remember calls (hooks handle most)\n\nSearch Tips:\n\nUse natural language: \"database preference\" > \"db pref\"\nBe specific when possible: \"TypeScript vs JavaScript decision\" > \"language\"\nResults are ranked by semantic similarity (0-1 score)\nDefault minScore: 0.5 filters low-relevance results\n\nTTL Guidelines:\n\n7 days: Temporary project context\n30 days (default): Most facts, decisions, preferences\n90 days: Important long-term context\n365 days: Critical knowledge that should persist long-term"
      },
      {
        "title": "Troubleshooting",
        "body": "\"Memory daemon not reachable\"\n\nCheck daemon is running: curl http://localhost:7654/health\nStart daemon: cd openclaw-memory && pnpm dev:daemon\nOr use Docker: docker compose up -d\n\n\"No memories found\"\n\nVerify memories exist: memory_list({ limit: 5 })\nCheck agentId matches (openclaw by default)\nTry broader search queries\nLower minScore threshold in config\n\n\"Memory search returns irrelevant results\"\n\nBe more specific in query\nIncrease minScore threshold (default: 0.5)\nCheck tags to filter results\nVerify Voyage AI embeddings are working (not mock mode)\n\n\"Tools not available\"\n\nVerify plugin is enabled in openclaw.json\nRestart OpenClaw gateway\nCheck plugin installation: openclaw plugins list"
      },
      {
        "title": "Web Dashboard",
        "body": "Full installation includes a web dashboard at http://localhost:3002:\n\nMemory browser with semantic search\nGraph visualizer (relationship mapping)\nConflict resolution (contradiction detection)\nTimeline and analytics"
      },
      {
        "title": "Reflection Pipeline",
        "body": "9-stage processing pipeline for:\n\nDuplicate detection (0.92 similarity threshold)\nContradiction detection (heuristic + LLM)\nConfidence scoring\nGraph relationship extraction\nEntity extraction\nTemporal decay\n\nTrigger reflection:\n\ncurl -X POST http://localhost:7654/reflect \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"agentId\":\"openclaw\"}'"
      },
      {
        "title": "Graph Relationships",
        "body": "Memories can be connected via edges:\n\nSUPPORTS — reinforces/supports another memory\nCONTRADICTS — conflicts with another memory\nDERIVES_FROM — built upon another memory\nCO_OCCURS — frequently appears together\nPRECEDES — temporal sequence\nMENTIONS_ENTITY — references an entity\n\nAccess via web dashboard at /graph."
      },
      {
        "title": "Requirements",
        "body": "MongoDB 8.0+ (local or Atlas)\nNode.js 18+\nOpenClaw CLI\nOptional: Voyage AI API key (mock mode available)"
      },
      {
        "title": "Installation",
        "body": "# Install plugin\nopenclaw plugins install openclaw-memory\n\n# Start daemon\ncd openclaw-memory\npnpm install && pnpm dev:daemon\n\n# Or use Docker\ndocker compose up -d"
      },
      {
        "title": "Summary",
        "body": "OpenClaw Memory gives agents persistent, searchable memory across sessions:\n\nSearch semantically with memory_search\nStore facts with memory_remember\nAutomatic capture via lifecycle hooks\nMongoDB-backed with Voyage AI embeddings\nWeb dashboard for visualization and management\n\nUse it to build agents that remember, learn, and improve over time. 🧠\n\nVersion: 0.2.1\nAuthor: Michael Lynn\nLicense: MIT\nRepository: https://github.com/mrlynn/openclaw-mongodb-memory"
      }
    ],
    "body": "OpenClaw Memory — Agent Skill\n\nMongoDB-backed long-term memory with Voyage AI semantic search\n\nWhen to Use\n\nUse OpenClaw Memory when:\n\n✅ You need to recall prior conversations, decisions, or preferences\n✅ Building context across multiple sessions\n✅ Tracking facts, insights, or learnings over time\n✅ Searching for relevant information semantically (not just keywords)\n✅ Remembering user preferences, project details, or domain knowledge\n\nNOT for:\n\n❌ Immediate/short-term context (use conversation history instead)\n❌ Temporary scratch notes (use files in workspace)\n❌ Large document storage (use file system or database)\nAvailable Tools\nmemory_search\n\nSemantically search long-term memory. Use this to recall prior decisions, preferences, context, or facts.\n\nmemory_search({\n  query: \"What did we decide about the database schema?\",\n  maxResults: 6  // optional, default: 6\n})\n\n\nReturns: Array of memories with similarity scores, text, tags, and metadata.\n\nWhen to use:\n\nBefore answering questions about past work\nWhen user asks \"remember when...\" or \"what did we say about...\"\nTo check for existing context before making new decisions\nWhen solving similar problems to past ones\n\nExample output:\n\n{\n  \"results\": [\n    {\n      \"id\": \"507f1f77bcf86cd799439011\",\n      \"text\": \"Decided to use MongoDB for vector storage with Atlas Search\",\n      \"score\": 0.89,\n      \"tags\": [\"decision\", \"database\"],\n      \"createdAt\": \"2026-02-20T14:30:00Z\"\n    }\n  ]\n}\n\nmemory_remember\n\nStore a fact, decision, preference, or important context in long-term memory.\n\nmemory_remember({\n  text: \"User prefers TypeScript over JavaScript for new projects\",\n  tags: [\"preference\", \"programming\"],  // optional\n  ttl: 2592000  // optional, 30 days default\n})\n\n\nReturns: Stored memory ID and confirmation.\n\nWhen to use:\n\nAfter important decisions are made\nWhen user states a preference (\"I prefer X over Y\")\nKey facts or insights discovered during work\nContext that should persist across sessions\nUser explicitly asks you to remember something\n\nBest practices:\n\nBe specific and concise (1-2 sentences ideal)\nInclude relevant tags for categorization\nDon't store temporary/ephemeral information\nUse structured format when possible (e.g., \"Key: value\")\nmemory_get\n\nRead a specific memory file from the workspace. Use memory_search for semantic recall; use this for targeted file reads.\n\nmemory_get({\n  path: \"MEMORY.md\",\n  from: 1,      // optional, starting line\n  lines: 50     // optional, number of lines\n})\n\n\nReturns: File contents (text).\n\nWhen to use:\n\nAfter memory_search to get full context\nReading structured memory files (MEMORY.md, memory/YYYY-MM-DD.md)\nTargeted line-range reads for efficiency\nmemory_forget\n\nDelete a specific memory by ID. Use memory_search first to find the memory ID.\n\nmemory_forget({\n  memoryId: \"507f1f77bcf86cd799439011\"\n})\n\n\nReturns: Confirmation or error.\n\nWhen to use:\n\nUser explicitly asks to delete/forget something\nCorrecting incorrect memories\nRemoving outdated information\nNever use proactively without user request\nmemory_list\n\nBrowse stored memories by recency or tag.\n\nmemory_list({\n  tags: \"decision,database\",  // optional, comma-separated\n  limit: 10,                  // optional, default: 10\n  sort: \"desc\"                // optional, \"desc\" or \"asc\"\n})\n\n\nReturns: Array of memories with metadata (no similarity scores).\n\nWhen to use:\n\nBrowsing recent memories\nFiltering by specific tags\nAudit/review of stored memories\nWhen user asks \"what have you remembered?\"\nmemory_status\n\nCheck memory system health and stats.\n\nmemory_status()\n\n\nReturns: Daemon status, MongoDB connection, Voyage AI status, total memories, uptime.\n\nWhen to use:\n\nDebugging memory system issues\nUser asks about memory capacity or health\nBefore relying on memory for critical tasks\nRarely needed in normal operation\nConfiguration\n\nMemory tools connect to a daemon at http://localhost:7654 by default. Configuration is set in ~/.openclaw/openclaw.json:\n\n{\n  plugins: {\n    entries: {\n      \"openclaw-memory\": {\n        enabled: true,\n        config: {\n          daemonUrl: \"http://localhost:7654\",\n          agentId: \"openclaw\",\n          maxResults: 6,\n          minScore: 0.5,\n          defaultTtl: 2592000  // 30 days\n        }\n      }\n    }\n  }\n}\n\nAutomatic Memory Capture\n\nOpenClaw Memory includes lifecycle hooks that capture memories automatically:\n\nauto-remember Hook\n\nFires after every agent response. Extracts facts, decisions, and preferences using pattern matching:\n\n\"I prefer...\" → stored as preference\n\"We decided...\" → stored as decision\n\"Remember that...\" → stored as fact\n\"Key: value\" patterns (structured data)\n\nLimits: Max 5 extractions per message, min 10 chars, deduplicates.\n\nsession-to-memory Hook\n\nFires when starting a new session. Summarizes the ending session and stores it as a searchable memory.\n\nmemory-bootstrap Hook\n\nFires on agent startup. Queries for relevant memories (preferences, recent decisions, pinned items) and injects them into context.\n\nmemory-enriched-tools Hook\n\nFires before tool results are saved. Appends related memories as context annotations to Read/Grep/Glob/Bash outputs.\n\nTo disable hooks: Set hooksEnabled: false in plugin config.\n\nWorkflow Examples\nExample 1: Recall Prior Decision\n\nUser asks: \"What did we decide about the API authentication?\"\n\nAgent response:\n\nCall memory_search({ query: \"API authentication decision\" })\nReview results\nAnswer based on stored memory\nIf no results, say \"I don't have any memory of that decision\"\nExample 2: Store Preference\n\nUser says: \"I prefer Material UI over Tailwind for all React projects\"\n\nAgent response:\n\nAcknowledge the preference\nCall memory_remember({ text: \"User prefers Material UI over Tailwind for React projects\", tags: [\"preference\", \"ui\"] })\nConfirm it's stored: \"Got it, I'll remember that preference\"\nExample 3: Check Before Recommending\n\nUser asks: \"What CSS framework should we use?\"\n\nAgent response:\n\nCall memory_search({ query: \"CSS framework preference\" })\nIf match found: \"You previously preferred Material UI over Tailwind\"\nIf no match: Provide recommendation based on context\nExample 4: Session Continuity\n\nNew session starts:\n\nmemory-bootstrap hook auto-runs\nLoads recent preferences, decisions, project context\nAgent has continuity without user repeating everything\nTips & Best Practices\n\nDo:\n\n✅ Use memory_search before answering questions about past work\n✅ Store concise, specific facts (1-2 sentences)\n✅ Tag memories for easy filtering (preference, decision, fact, project-name)\n✅ Trust semantic search (it understands meaning, not just keywords)\n✅ Let hooks handle routine memory capture (preferences, decisions)\n\nDon't:\n\n❌ Store temporary/ephemeral information\n❌ Duplicate conversation history (that's already stored)\n❌ Store sensitive credentials (use secure storage instead)\n❌ Forget without user permission (use memory_forget sparingly)\n❌ Overwhelm with too many manual memory_remember calls (hooks handle most)\n\nSearch Tips:\n\nUse natural language: \"database preference\" > \"db pref\"\nBe specific when possible: \"TypeScript vs JavaScript decision\" > \"language\"\nResults are ranked by semantic similarity (0-1 score)\nDefault minScore: 0.5 filters low-relevance results\n\nTTL Guidelines:\n\n7 days: Temporary project context\n30 days (default): Most facts, decisions, preferences\n90 days: Important long-term context\n365 days: Critical knowledge that should persist long-term\nTroubleshooting\n\n\"Memory daemon not reachable\"\n\nCheck daemon is running: curl http://localhost:7654/health\nStart daemon: cd openclaw-memory && pnpm dev:daemon\nOr use Docker: docker compose up -d\n\n\"No memories found\"\n\nVerify memories exist: memory_list({ limit: 5 })\nCheck agentId matches (openclaw by default)\nTry broader search queries\nLower minScore threshold in config\n\n\"Memory search returns irrelevant results\"\n\nBe more specific in query\nIncrease minScore threshold (default: 0.5)\nCheck tags to filter results\nVerify Voyage AI embeddings are working (not mock mode)\n\n\"Tools not available\"\n\nVerify plugin is enabled in openclaw.json\nRestart OpenClaw gateway\nCheck plugin installation: openclaw plugins list\nAdvanced Features\nWeb Dashboard\n\nFull installation includes a web dashboard at http://localhost:3002:\n\nMemory browser with semantic search\nGraph visualizer (relationship mapping)\nConflict resolution (contradiction detection)\nTimeline and analytics\nReflection Pipeline\n\n9-stage processing pipeline for:\n\nDuplicate detection (0.92 similarity threshold)\nContradiction detection (heuristic + LLM)\nConfidence scoring\nGraph relationship extraction\nEntity extraction\nTemporal decay\n\nTrigger reflection:\n\ncurl -X POST http://localhost:7654/reflect \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"agentId\":\"openclaw\"}'\n\nGraph Relationships\n\nMemories can be connected via edges:\n\nSUPPORTS — reinforces/supports another memory\nCONTRADICTS — conflicts with another memory\nDERIVES_FROM — built upon another memory\nCO_OCCURS — frequently appears together\nPRECEDES — temporal sequence\nMENTIONS_ENTITY — references an entity\n\nAccess via web dashboard at /graph.\n\nRequirements\nMongoDB 8.0+ (local or Atlas)\nNode.js 18+\nOpenClaw CLI\nOptional: Voyage AI API key (mock mode available)\nInstallation\n# Install plugin\nopenclaw plugins install openclaw-memory\n\n# Start daemon\ncd openclaw-memory\npnpm install && pnpm dev:daemon\n\n# Or use Docker\ndocker compose up -d\n\nSummary\n\nOpenClaw Memory gives agents persistent, searchable memory across sessions:\n\nSearch semantically with memory_search\nStore facts with memory_remember\nAutomatic capture via lifecycle hooks\nMongoDB-backed with Voyage AI embeddings\nWeb dashboard for visualization and management\n\nUse it to build agents that remember, learn, and improve over time. 🧠\n\nVersion: 0.2.1\nAuthor: Michael Lynn\nLicense: MIT\nRepository: https://github.com/mrlynn/openclaw-mongodb-memory"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/mrlynn/openclaw-memory-skill",
    "publisherUrl": "https://clawhub.ai/mrlynn/openclaw-memory-skill",
    "owner": "mrlynn",
    "version": "0.2.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-memory-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-memory-skill",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-memory-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-memory-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-memory-skill/agent.md"
  }
}