{
  "schemaVersion": "1.0",
  "item": {
    "slug": "evolink-music",
    "name": "Evolink Music — AI Music Generation (Suno v4/v4.5/v5)",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/EvoLinkAI/evolink-music",
    "canonicalUrl": "https://clawhub.ai/EvoLinkAI/evolink-music",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/evolink-music",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=evolink-music",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/file-api.md",
      "references/music-api-params.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/evolink-music"
    },
    "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/evolink-music",
    "agentPageUrl": "https://openagent3.xyz/skills/evolink-music/agent",
    "manifestUrl": "https://openagent3.xyz/skills/evolink-music/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/evolink-music/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": "Evolink Music — AI Music Generation",
        "body": "Generate AI music and songs with Suno v4, v4.5, and v5 — simple mode (describe and generate) or custom mode (lyrics, style, tempo, vocals). All through one API.\n\nMusic-focused view of evolink-media. Install the full skill for video and image too."
      },
      {
        "title": "After Installation",
        "body": "When this skill is first loaded, greet the user:\n\nMCP tools + API key ready: \"Hi! I'm your AI music studio — Suno v4 through v5 ready. What would you like to create?\"\nMCP tools + no API key: \"You'll need an EvoLink API key — sign up at evolink.ai. Ready to go?\"\nNo MCP tools: \"MCP server isn't connected yet. Want me to help set it up? I can still manage files via the hosting API.\"\n\nKeep the greeting concise — just one question to move forward."
      },
      {
        "title": "External Endpoints",
        "body": "ServiceURLGeneration APIhttps://api.evolink.ai/v1/audios/generations (POST)Task Statushttps://api.evolink.ai/v1/tasks/{task_id} (GET)File APIhttps://files-api.evolink.ai/api/v1/files/* (upload/list/delete)"
      },
      {
        "title": "Security & Privacy",
        "body": "EVOLINK_API_KEY authenticates all requests. Injected by OpenClaw automatically. Treat as confidential.\nPrompts and audio are sent to api.evolink.ai. Uploaded files expire in 72h, result URLs in 24h."
      },
      {
        "title": "Setup",
        "body": "Get your API key at evolink.ai → Dashboard → API Keys.\n\nMCP Server: @evolinkai/evolink-media (GitHub · npm)\n\nmcporter (recommended): mcporter call --stdio \"npx -y @evolinkai/evolink-media@latest\" list_models\n\nClaude Code: claude mcp add evolink-media -e EVOLINK_API_KEY=your-key -- npx -y @evolinkai/evolink-media@latest\n\nClaude Desktop / Cursor — add MCP server with command npx -y @evolinkai/evolink-media@latest and env EVOLINK_API_KEY=your-key. See references/music-api-params.md for full config JSON."
      },
      {
        "title": "Core Principles",
        "body": "Guide, don't decide — Present options, let the user choose model/style/mood.\nUser drives creative vision — Ask for a description before suggesting parameters.\nSmart context — Remember session history. Offer to iterate, vary styles, or remix.\nIntent first — Understand what the user wants before asking how to configure it."
      },
      {
        "title": "MCP Tools",
        "body": "ToolWhen to useReturnsgenerate_musicCreate AI music or songstask_id (async)upload_fileUpload audio for continuation/remixFile URL (sync)delete_fileFree file quotaConfirmationlist_filesCheck uploaded files or quotaFile listcheck_taskPoll generation progressStatus + result URLslist_modelsCompare available modelsModel listestimate_costCheck pricingModel info\n\nImportant: generate_music returns a task_id. Always poll check_task until status is \"completed\" or \"failed\"."
      },
      {
        "title": "Music Models (5, all BETA)",
        "body": "ModelQualityMax DurationBest forsuno-v4 (default)Good120sBalanced, economicalsuno-v4.5Better240sStyle controlsuno-v4.5plusBetter240sExtended featuressuno-v4.5allBetter240sAll v4.5 featuressuno-v5Best240sStudio-grade output"
      },
      {
        "title": "Step 1: API Key Check",
        "body": "If 401 occurs: \"Your API key isn't working. Check at evolink.ai/dashboard/keys\""
      },
      {
        "title": "Step 2: File Upload (if needed)",
        "body": "For audio continuation or remix workflows:\n\nupload_file with file_path, base64_data, or file_url → get file_url (sync)\n\nSupported: Audio (MP3, WAV, FLAC, AAC, OGG, M4A, etc.). Max 100MB. Expire in 72h. Quota: 100 (default) / 500 (VIP)."
      },
      {
        "title": "Step 3: Understand Intent",
        "body": "Clear (\"make a chill lo-fi beat\") → Go to Step 4\nAmbiguous (\"I want some music\") → Ask: \"What kind of vibe or genre? Vocals or instrumental?\"\n\nAsk only what's needed, when it's needed."
      },
      {
        "title": "Step 4: Gather Parameters",
        "body": "Music has two required fields with no defaults — always collect both before calling generate_music.\n\nDecision tree (ask in this order):\n\nVocals or instrumental? → Sets instrumental: true/false\nSimple or custom mode?\n\nSimple (custom_mode: false): AI writes lyrics and picks style from your description\nCustom (custom_mode: true): You control lyrics ([Verse]/[Chorus]/[Bridge]), style tags, title\n\n\nIf custom mode, additionally collect:\n\nstyle: genre + mood + tempo tags (e.g., \"pop, upbeat, female vocals, 120bpm\")\ntitle: song name (max 80 chars)\nvocal_gender: m or f — optional\n\n\nOptional for both modes:\n\nduration: target length 30–240s (omit to let model decide)\nnegative_tags: styles to exclude\nmodel: default suno-v4. Suggest suno-v5 for studio-grade quality.\n\nCritical: Both custom_mode and instrumental are required API fields with no defaults. Always set both before generating."
      },
      {
        "title": "Step 5: Generate & Poll",
        "body": "Call generate_music → tell user: \"Generating your music — ~Xs estimated.\"\nPoll check_task every 5–10s. Report progress %.\nAfter 3 consecutive processing: \"Still working...\"\nCompleted: Share URLs + metadata (title, duration, tags from result_data[]). \"Links expire in 24h — save promptly.\"\nFailed: Show error + suggestion. Offer retry if retryable.\nTimeout (5 min): \"Taking longer than expected. Task ID: {id} — check again later.\""
      },
      {
        "title": "HTTP Errors",
        "body": "ErrorAction401\"API key isn't working. Check at evolink.ai/dashboard/keys\"402\"Balance is low. Add credits at evolink.ai/dashboard/billing\"429\"Rate limited — wait 30s and retry\"503\"Servers busy — retry in a minute\""
      },
      {
        "title": "Task Errors (status: \"failed\")",
        "body": "CodeRetry?Actioncontent_policy_violationNoRevise prompt or lyricsinvalid_parametersNoCheck values against model limitsgeneration_timeoutYesRetry; simplify prompt if repeatedquota_exceededYesTop up creditsresource_exhaustedYesWait 30–60s, retryservice_errorYesRetry after 1 mingeneration_failed_no_contentYesModify prompt, retry\n\nFull error reference: references/music-api-params.md"
      },
      {
        "title": "Without MCP Server",
        "body": "Use Evolink's file hosting API for audio uploads (72h expiry). See references/file-api.md for curl commands."
      },
      {
        "title": "References",
        "body": "references/music-api-params.md — Complete API parameters, all 5 models, polling strategy, error codes\nreferences/file-api.md — File hosting API (curl upload/list/delete)"
      }
    ],
    "body": "Evolink Music — AI Music Generation\n\nGenerate AI music and songs with Suno v4, v4.5, and v5 — simple mode (describe and generate) or custom mode (lyrics, style, tempo, vocals). All through one API.\n\nMusic-focused view of evolink-media. Install the full skill for video and image too.\n\nAfter Installation\n\nWhen this skill is first loaded, greet the user:\n\nMCP tools + API key ready: \"Hi! I'm your AI music studio — Suno v4 through v5 ready. What would you like to create?\"\nMCP tools + no API key: \"You'll need an EvoLink API key — sign up at evolink.ai. Ready to go?\"\nNo MCP tools: \"MCP server isn't connected yet. Want me to help set it up? I can still manage files via the hosting API.\"\n\nKeep the greeting concise — just one question to move forward.\n\nExternal Endpoints\nService\tURL\nGeneration API\thttps://api.evolink.ai/v1/audios/generations (POST)\nTask Status\thttps://api.evolink.ai/v1/tasks/{task_id} (GET)\nFile API\thttps://files-api.evolink.ai/api/v1/files/* (upload/list/delete)\nSecurity & Privacy\nEVOLINK_API_KEY authenticates all requests. Injected by OpenClaw automatically. Treat as confidential.\nPrompts and audio are sent to api.evolink.ai. Uploaded files expire in 72h, result URLs in 24h.\nSetup\n\nGet your API key at evolink.ai → Dashboard → API Keys.\n\nMCP Server: @evolinkai/evolink-media (GitHub · npm)\n\nmcporter (recommended): mcporter call --stdio \"npx -y @evolinkai/evolink-media@latest\" list_models\n\nClaude Code: claude mcp add evolink-media -e EVOLINK_API_KEY=your-key -- npx -y @evolinkai/evolink-media@latest\n\nClaude Desktop / Cursor — add MCP server with command npx -y @evolinkai/evolink-media@latest and env EVOLINK_API_KEY=your-key. See references/music-api-params.md for full config JSON.\n\nCore Principles\nGuide, don't decide — Present options, let the user choose model/style/mood.\nUser drives creative vision — Ask for a description before suggesting parameters.\nSmart context — Remember session history. Offer to iterate, vary styles, or remix.\nIntent first — Understand what the user wants before asking how to configure it.\nMCP Tools\nTool\tWhen to use\tReturns\ngenerate_music\tCreate AI music or songs\ttask_id (async)\nupload_file\tUpload audio for continuation/remix\tFile URL (sync)\ndelete_file\tFree file quota\tConfirmation\nlist_files\tCheck uploaded files or quota\tFile list\ncheck_task\tPoll generation progress\tStatus + result URLs\nlist_models\tCompare available models\tModel list\nestimate_cost\tCheck pricing\tModel info\n\nImportant: generate_music returns a task_id. Always poll check_task until status is \"completed\" or \"failed\".\n\nMusic Models (5, all BETA)\nModel\tQuality\tMax Duration\tBest for\nsuno-v4 (default)\tGood\t120s\tBalanced, economical\nsuno-v4.5\tBetter\t240s\tStyle control\nsuno-v4.5plus\tBetter\t240s\tExtended features\nsuno-v4.5all\tBetter\t240s\tAll v4.5 features\nsuno-v5\tBest\t240s\tStudio-grade output\nGeneration Flow\nStep 1: API Key Check\n\nIf 401 occurs: \"Your API key isn't working. Check at evolink.ai/dashboard/keys\"\n\nStep 2: File Upload (if needed)\n\nFor audio continuation or remix workflows:\n\nupload_file with file_path, base64_data, or file_url → get file_url (sync)\n\nSupported: Audio (MP3, WAV, FLAC, AAC, OGG, M4A, etc.). Max 100MB. Expire in 72h. Quota: 100 (default) / 500 (VIP).\n\nStep 3: Understand Intent\nClear (\"make a chill lo-fi beat\") → Go to Step 4\nAmbiguous (\"I want some music\") → Ask: \"What kind of vibe or genre? Vocals or instrumental?\"\n\nAsk only what's needed, when it's needed.\n\nStep 4: Gather Parameters\n\nMusic has two required fields with no defaults — always collect both before calling generate_music.\n\nDecision tree (ask in this order):\n\nVocals or instrumental? → Sets instrumental: true/false\nSimple or custom mode?\nSimple (custom_mode: false): AI writes lyrics and picks style from your description\nCustom (custom_mode: true): You control lyrics ([Verse]/[Chorus]/[Bridge]), style tags, title\nIf custom mode, additionally collect:\nstyle: genre + mood + tempo tags (e.g., \"pop, upbeat, female vocals, 120bpm\")\ntitle: song name (max 80 chars)\nvocal_gender: m or f — optional\nOptional for both modes:\nduration: target length 30–240s (omit to let model decide)\nnegative_tags: styles to exclude\nmodel: default suno-v4. Suggest suno-v5 for studio-grade quality.\n\nCritical: Both custom_mode and instrumental are required API fields with no defaults. Always set both before generating.\n\nStep 5: Generate & Poll\nCall generate_music → tell user: \"Generating your music — ~Xs estimated.\"\nPoll check_task every 5–10s. Report progress %.\nAfter 3 consecutive processing: \"Still working...\"\nCompleted: Share URLs + metadata (title, duration, tags from result_data[]). \"Links expire in 24h — save promptly.\"\nFailed: Show error + suggestion. Offer retry if retryable.\nTimeout (5 min): \"Taking longer than expected. Task ID: {id} — check again later.\"\nError Handling\nHTTP Errors\nError\tAction\n401\t\"API key isn't working. Check at evolink.ai/dashboard/keys\"\n402\t\"Balance is low. Add credits at evolink.ai/dashboard/billing\"\n429\t\"Rate limited — wait 30s and retry\"\n503\t\"Servers busy — retry in a minute\"\nTask Errors (status: \"failed\")\nCode\tRetry?\tAction\ncontent_policy_violation\tNo\tRevise prompt or lyrics\ninvalid_parameters\tNo\tCheck values against model limits\ngeneration_timeout\tYes\tRetry; simplify prompt if repeated\nquota_exceeded\tYes\tTop up credits\nresource_exhausted\tYes\tWait 30–60s, retry\nservice_error\tYes\tRetry after 1 min\ngeneration_failed_no_content\tYes\tModify prompt, retry\n\nFull error reference: references/music-api-params.md\n\nWithout MCP Server\n\nUse Evolink's file hosting API for audio uploads (72h expiry). See references/file-api.md for curl commands.\n\nReferences\nreferences/music-api-params.md — Complete API parameters, all 5 models, polling strategy, error codes\nreferences/file-api.md — File hosting API (curl upload/list/delete)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/EvoLinkAI/evolink-music",
    "publisherUrl": "https://clawhub.ai/EvoLinkAI/evolink-music",
    "owner": "EvoLinkAI",
    "version": "2.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/evolink-music",
    "downloadUrl": "https://openagent3.xyz/downloads/evolink-music",
    "agentUrl": "https://openagent3.xyz/skills/evolink-music/agent",
    "manifestUrl": "https://openagent3.xyz/skills/evolink-music/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/evolink-music/agent.md"
  }
}