{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-universal-memory",
    "name": "OpenClaw Universal Memory",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/marcosathanasoulis/openclaw-universal-memory",
    "canonicalUrl": "https://clawhub.ai/marcosathanasoulis/openclaw-universal-memory",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-universal-memory",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-universal-memory",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/run_memory.py",
      "setup.json"
    ],
    "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-universal-memory"
    },
    "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-universal-memory",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-universal-memory/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-universal-memory/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-universal-memory/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 Universal Memory",
        "body": "This skill provides a generic memory layer for heterogeneous data:\n\ncanonical entity/chunk schema,\nconnector-style ingestion with cursors,\nsearchable memory in Postgres."
      },
      {
        "title": "Use Cases",
        "body": "Normalize records from multiple systems into one schema.\nKeep incremental sync history (cursor per connector/account).\nBuild RAG-ready chunk storage in pgvector."
      },
      {
        "title": "Prerequisites",
        "body": "Postgres with vector extension.\nLocal package installed: pip install -e ..\nPython dependency for DB I/O:\n\npip install \"psycopg[binary]>=3.2\"\n\n\nDSN provided via environment variable (DATABASE_DSN by default)."
      },
      {
        "title": "Security Boundaries",
        "body": "Do not pass raw passwords/tokens in command-line arguments.\nPrefer OS secret store or process environment injection for DSN.\nThis skill only reads/writes your configured Postgres database; it does not call external APIs directly.\nUse least-privilege DB credentials (SELECT/INSERT/UPDATE/DELETE on um_* tables only).\nReview and trust any custom connector before running it."
      },
      {
        "title": "Responsible Use Caveat",
        "body": "Use this only for accounts/data you legitimately control or are authorized to process.\nYou are responsible for privacy, retention, and regulatory compliance.\nThis project is provided under Apache 2.0 without operational warranty.\nThis implementation is mostly AI-generated code with experienced engineer oversight; validate before production use."
      },
      {
        "title": "Commands",
        "body": "Store DB credentials once (recommended):\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action configure-dsn\n\nInitialize schema:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action init-schema \\\n  --dsn-env DATABASE_DSN\n\nIngest JSON/NDJSON:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action ingest-json \\\n  --dsn-env DATABASE_DSN \\\n  --source gmail \\\n  --account marcos@athanasoulis.net \\\n  --entity-type email \\\n  --input /path/to/records.ndjson\n\nIngest from built-in connectors:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action ingest-connector \\\n  --connector google \\\n  --account you@example.com \\\n  --dsn-env DATABASE_DSN \\\n  --limit 300\n\nValidate connector auth/config before ingest:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action validate-connector \\\n  --connector google \\\n  --account you@example.com \\\n  --dsn-env DATABASE_DSN \\\n  --limit 1\n\nSearch:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action search \\\n  --dsn-env DATABASE_DSN \\\n  --query \"Deryk\" \\\n  --limit 20\n\nRecent ingest history:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action events \\\n  --dsn-env DATABASE_DSN \\\n  --limit 20\n\nDoctor check:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action doctor\n\nScheduling reference:\n\ndocs/SCHEDULING.md (cron examples, 15-minute default, connector toggles)"
      },
      {
        "title": "Connector Contract (for custom adapters)",
        "body": "A connector returns normalized records + next cursor:\n\nexternal_id\nentity_type\ntitle\nbody_text\nraw_json\nmeta_json\nnext_cursor\n\nThis keeps ingestion generic and supports arbitrary source systems.\n\nStarter connector templates:\n\nsrc/openclaw_memory/connectors/templates.py\n\nStep-by-step setup guide (Gmail/Slack/Asana/iMessage):\n\ndocs/CONNECTOR_SETUP_WALKTHROUGH.md"
      },
      {
        "title": "Community",
        "body": "We welcome connector contributions via PR.\nSee docs/CONNECTOR_CONTRIBUTING.md for required contract, tests, and setup instructions."
      }
    ],
    "body": "OpenClaw Universal Memory\n\nThis skill provides a generic memory layer for heterogeneous data:\n\ncanonical entity/chunk schema,\nconnector-style ingestion with cursors,\nsearchable memory in Postgres.\nUse Cases\nNormalize records from multiple systems into one schema.\nKeep incremental sync history (cursor per connector/account).\nBuild RAG-ready chunk storage in pgvector.\nPrerequisites\nPostgres with vector extension.\nLocal package installed: pip install -e ..\nPython dependency for DB I/O:\npip install \"psycopg[binary]>=3.2\"\nDSN provided via environment variable (DATABASE_DSN by default).\nSecurity Boundaries\nDo not pass raw passwords/tokens in command-line arguments.\nPrefer OS secret store or process environment injection for DSN.\nThis skill only reads/writes your configured Postgres database; it does not call external APIs directly.\nUse least-privilege DB credentials (SELECT/INSERT/UPDATE/DELETE on um_* tables only).\nReview and trust any custom connector before running it.\nResponsible Use Caveat\nUse this only for accounts/data you legitimately control or are authorized to process.\nYou are responsible for privacy, retention, and regulatory compliance.\nThis project is provided under Apache 2.0 without operational warranty.\nThis implementation is mostly AI-generated code with experienced engineer oversight; validate before production use.\nCommands\n\nStore DB credentials once (recommended):\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action configure-dsn\n\n\nInitialize schema:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action init-schema \\\n  --dsn-env DATABASE_DSN\n\n\nIngest JSON/NDJSON:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action ingest-json \\\n  --dsn-env DATABASE_DSN \\\n  --source gmail \\\n  --account marcos@athanasoulis.net \\\n  --entity-type email \\\n  --input /path/to/records.ndjson\n\n\nIngest from built-in connectors:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action ingest-connector \\\n  --connector google \\\n  --account you@example.com \\\n  --dsn-env DATABASE_DSN \\\n  --limit 300\n\n\nValidate connector auth/config before ingest:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action validate-connector \\\n  --connector google \\\n  --account you@example.com \\\n  --dsn-env DATABASE_DSN \\\n  --limit 1\n\n\nSearch:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action search \\\n  --dsn-env DATABASE_DSN \\\n  --query \"Deryk\" \\\n  --limit 20\n\n\nRecent ingest history:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action events \\\n  --dsn-env DATABASE_DSN \\\n  --limit 20\n\n\nDoctor check:\n\npython skills/openclaw-universal-memory/scripts/run_memory.py \\\n  --action doctor\n\n\nScheduling reference:\n\ndocs/SCHEDULING.md (cron examples, 15-minute default, connector toggles)\nConnector Contract (for custom adapters)\n\nA connector returns normalized records + next cursor:\n\nexternal_id\nentity_type\ntitle\nbody_text\nraw_json\nmeta_json\nnext_cursor\n\nThis keeps ingestion generic and supports arbitrary source systems.\n\nStarter connector templates:\n\nsrc/openclaw_memory/connectors/templates.py\n\nStep-by-step setup guide (Gmail/Slack/Asana/iMessage):\n\ndocs/CONNECTOR_SETUP_WALKTHROUGH.md\nCommunity\n\nWe welcome connector contributions via PR. See docs/CONNECTOR_CONTRIBUTING.md for required contract, tests, and setup instructions."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/marcosathanasoulis/openclaw-universal-memory",
    "publisherUrl": "https://clawhub.ai/marcosathanasoulis/openclaw-universal-memory",
    "owner": "marcosathanasoulis",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-universal-memory",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-universal-memory",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-universal-memory/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-universal-memory/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-universal-memory/agent.md"
  }
}