{
  "schemaVersion": "1.0",
  "item": {
    "slug": "vps-agent-migration",
    "name": "VPS Agent Migration",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/sparkingskin-tech/vps-agent-migration",
    "canonicalUrl": "https://clawhub.ai/sparkingskin-tech/vps-agent-migration",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/vps-agent-migration",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=vps-agent-migration",
    "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/vps-agent-migration"
    },
    "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/vps-agent-migration",
    "agentPageUrl": "https://openagent3.xyz/skills/vps-agent-migration/agent",
    "manifestUrl": "https://openagent3.xyz/skills/vps-agent-migration/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/vps-agent-migration/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": "VPS Agent Migration",
        "body": "将本地 OpenClaw Agent 迁移到 VPS 上运行。"
      },
      {
        "title": "前提条件",
        "body": "VPS 已安装 OpenClaw\n本地已配置好要迁移的 Agent（workspace、SOUL.md 等）\n需要迁移的 Agent 名称（如 creative, dev, qa 等）\nSSH 访问 VPS（sshpass 或配置 SSH key）"
      },
      {
        "title": "Step 1: 连接 VPS 并复制文件",
        "body": "# 连接 VPS\nsshpass -p 'VPS密码' ssh -o StrictHostKeyChecking=no root@VPS_IP\n\n# 复制 Agent 文件（排除 sessions、.DS_Store、memory.md）\nrsync -avz --exclude='sessions' --exclude='.DS_Store' --exclude='memory.md' \\\n  ~/.openclaw/agents/[agent名]/ root@VPS_IP:/root/.openclaw/agents/[agent名]/"
      },
      {
        "title": "Step 2: 获取本地 Discord Token",
        "body": "从本地 ~/.openclaw/openclaw.json 中查找对应 Agent 的 token：\n\ncat ~/.openclaw/openclaw.json | grep -A5 '\"[Discord_ID]\":'"
      },
      {
        "title": "Step 3: 在 VPS 上添加 Discord 账号",
        "body": "在 VPS 上使用 Python 更新配置：\n\nsshpass -p 'VPS密码' ssh -o StrictHostKeyChecking=no root@VPS_IP 'python3 -c \"\nimport json\nwith open(\\\"/root/.openclaw/openclaw.json\\\") as f:\n    data = json.load(f)\ndata[\\\"channels\\\"][\\\"discord\\\"][\\\"accounts\\\"][\\\"[Discord_ID]\\\"] = {\n    \\\"name\\\": \\\"[Agent名字]\\\",\n    \\\"enabled\\\": True,\n    \\\"token\\\": \\\"[Token]\\\",\n    \\\"groupPolicy\\\": \\\"allowlist\\\",\n    \\\"streaming\\\": \\\"off\\\"\n}\nwith open(\\\"/root/.openclaw/openclaw.json\\\", \\\"w\\\") as f:\n    json.dump(data, f, indent=2)\n\"'"
      },
      {
        "title": "Step 4: 更新 Bindings",
        "body": "sshpass -p 'VPS密码' ssh -o StrictHostKeyChecking=no root@VPS_IP 'openclaw config set bindings \\\"[{\\\\\\\"agentId\\\\\\\":\\\\\\\"[agentId]\\\\\\\",\\\\\\\"match\\\\\\\":{\\\\\\\"channel\\\\\\\":\\\\\\\"discord\\\\\\\",\\\\\\\"accountId\\\\\\\":\\\\\\\"[Discord_ID]\\\\\\\"}}]\\\"'"
      },
      {
        "title": "Step 5: 重启 VPS Gateway",
        "body": "sshpass -p 'VPS密码' ssh -o StrictHostKeyChecking=no root@VPS_IP \"openclaw gateway restart\""
      },
      {
        "title": "Step 6: 禁用本地账号",
        "body": "# 禁用本地账号\nopenclaw config patch --json '{\"channels\": {\"discord\": {\"accounts\": {\"[Discord_ID]\": {\"enabled\": false}}}}}'\n\n# 重启本地 Gateway\nopenclaw gateway restart"
      },
      {
        "title": "关键坑点",
        "body": "requireMention: 默认 true 会导致 Agent 不自动回复，需要在 guilds 中设为 false\n多账号配置: channels.discord.token 是默认账号，channels.discord.accounts[id].token 是多账号模式\nSSH 连接: 偶尔会断开，多试几次即可\nToken 获取: Discord Bot Token 在 openclaw.json 的 channels.discord.accounts[id].token 中"
      },
      {
        "title": "常见 Discord ID 格式",
        "body": "频道 ID: 18位数字（如 1475374006226915434）\n用户/Bot ID: 18位数字（如 1475676302215221278）"
      }
    ],
    "body": "VPS Agent Migration\n\n将本地 OpenClaw Agent 迁移到 VPS 上运行。\n\n前提条件\nVPS 已安装 OpenClaw\n本地已配置好要迁移的 Agent（workspace、SOUL.md 等）\n需要迁移的 Agent 名称（如 creative, dev, qa 等）\nSSH 访问 VPS（sshpass 或配置 SSH key）\n迁移步骤\nStep 1: 连接 VPS 并复制文件\n# 连接 VPS\nsshpass -p 'VPS密码' ssh -o StrictHostKeyChecking=no root@VPS_IP\n\n# 复制 Agent 文件（排除 sessions、.DS_Store、memory.md）\nrsync -avz --exclude='sessions' --exclude='.DS_Store' --exclude='memory.md' \\\n  ~/.openclaw/agents/[agent名]/ root@VPS_IP:/root/.openclaw/agents/[agent名]/\n\nStep 2: 获取本地 Discord Token\n\n从本地 ~/.openclaw/openclaw.json 中查找对应 Agent 的 token：\n\ncat ~/.openclaw/openclaw.json | grep -A5 '\"[Discord_ID]\":'\n\nStep 3: 在 VPS 上添加 Discord 账号\n\n在 VPS 上使用 Python 更新配置：\n\nsshpass -p 'VPS密码' ssh -o StrictHostKeyChecking=no root@VPS_IP 'python3 -c \"\nimport json\nwith open(\\\"/root/.openclaw/openclaw.json\\\") as f:\n    data = json.load(f)\ndata[\\\"channels\\\"][\\\"discord\\\"][\\\"accounts\\\"][\\\"[Discord_ID]\\\"] = {\n    \\\"name\\\": \\\"[Agent名字]\\\",\n    \\\"enabled\\\": True,\n    \\\"token\\\": \\\"[Token]\\\",\n    \\\"groupPolicy\\\": \\\"allowlist\\\",\n    \\\"streaming\\\": \\\"off\\\"\n}\nwith open(\\\"/root/.openclaw/openclaw.json\\\", \\\"w\\\") as f:\n    json.dump(data, f, indent=2)\n\"'\n\nStep 4: 更新 Bindings\nsshpass -p 'VPS密码' ssh -o StrictHostKeyChecking=no root@VPS_IP 'openclaw config set bindings \\\"[{\\\\\\\"agentId\\\\\\\":\\\\\\\"[agentId]\\\\\\\",\\\\\\\"match\\\\\\\":{\\\\\\\"channel\\\\\\\":\\\\\\\"discord\\\\\\\",\\\\\\\"accountId\\\\\\\":\\\\\\\"[Discord_ID]\\\\\\\"}}]\\\"'\n\nStep 5: 重启 VPS Gateway\nsshpass -p 'VPS密码' ssh -o StrictHostKeyChecking=no root@VPS_IP \"openclaw gateway restart\"\n\nStep 6: 禁用本地账号\n# 禁用本地账号\nopenclaw config patch --json '{\"channels\": {\"discord\": {\"accounts\": {\"[Discord_ID]\": {\"enabled\": false}}}}}'\n\n# 重启本地 Gateway\nopenclaw gateway restart\n\n关键坑点\nrequireMention: 默认 true 会导致 Agent 不自动回复，需要在 guilds 中设为 false\n多账号配置: channels.discord.token 是默认账号，channels.discord.accounts[id].token 是多账号模式\nSSH 连接: 偶尔会断开，多试几次即可\nToken 获取: Discord Bot Token 在 openclaw.json 的 channels.discord.accounts[id].token 中\n常见 Discord ID 格式\n频道 ID: 18位数字（如 1475374006226915434）\n用户/Bot ID: 18位数字（如 1475676302215221278）"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/sparkingskin-tech/vps-agent-migration",
    "publisherUrl": "https://clawhub.ai/sparkingskin-tech/vps-agent-migration",
    "owner": "sparkingskin-tech",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/vps-agent-migration",
    "downloadUrl": "https://openagent3.xyz/downloads/vps-agent-migration",
    "agentUrl": "https://openagent3.xyz/skills/vps-agent-migration/agent",
    "manifestUrl": "https://openagent3.xyz/skills/vps-agent-migration/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/vps-agent-migration/agent.md"
  }
}