From ac22e281284f06070b6e49ce879cbcb39917131d Mon Sep 17 00:00:00 2001 From: OpenCode Date: Mon, 13 Jul 2026 16:34:53 +0700 Subject: [PATCH] Custom mode as main, simple as alternative. Default model V5_5. Agent proposes mode, user confirms. --- .opencode/skills/suno/SKILL.md | 88 +++++++++++++++++++++++----------- 1 file changed, 59 insertions(+), 29 deletions(-) diff --git a/.opencode/skills/suno/SKILL.md b/.opencode/skills/suno/SKILL.md index a65677e..527cc1c 100644 --- a/.opencode/skills/suno/SKILL.md +++ b/.opencode/skills/suno/SKILL.md @@ -26,44 +26,76 @@ HTTP_PROXY=http://proxy:8080 ## Режимы генерации -`customMode` определяет, КТО управляет созданием трека: +Агент **сам определяет**, какой режим лучше подходит под запрос пользователя, и предлагает его. Пользователь может согласиться или попросить изменить режим. -| Режим | `customMode` | Кто делает музыку | `prompt` | `style`/`title` | -|---|---|---|---|---| -| **Простой** *(по умолчанию)* | `false` | Suno генерирует всё сама | Да (идея, до 500 симв.) | Не нужно | -| **Кастомный** | `true` | Агент пишет текст и стиль | Да (точный текст, до 3000/5000) | Обязательно | +Модель по умолчанию: **V5_5** (пользователь может выбрать другую). -### Простой режим (customMode: false) — по умолчанию +| Режим | `customMode` | Когда предлагать | +|---|---|---| +| **Кастомный** *(основной)* | `true` | По умолчанию. Агент сам пишет текст, стиль, структуру | +| **Простой** | `false` | Если пользователь хочет быстро, без деталей, или говорит «просто сделай что-нибудь» | -**Агент по умолчанию всегда использует этот режим.** Пользователь говорит идею — агент передаёт её в `prompt`, Suno сама пишет текст, аранжировку и всё остальное: +*В простом режиме Suno сама генерирует всё по короткому описанию (до 500 симв.).* + +### Кастомный режим (customMode: true) — основной + +Агент пишет текст с мета-тегами `[Verse]`, `[Chorus]`, стиль и всю структуру. Используй [Prompt Engineering Guide](#prompt-engineering-guide) для составления промпта. + +``` +suno_generate_music + prompt: "///*****///\n\n[Intro]..." + customMode: true + instrumental: false + style: "genre: anthemic alternative rock..." + title: "Название трека" + negativeTags: "trap, electronic beats..." + model: "V5_5" +``` + +В `customMode: true` поля `style` и `title` обязательны. Если `instrumental: false` — ещё и `prompt` (он станет точным текстом). + +### Простой режим (customMode: false) — альтернатива + +Если пользователь не хочет деталей (или говорит «просто сделай трек»): ``` suno_generate_music prompt: "Энергичный рок-трек о восхождении на гору, мужской вокал" customMode: false instrumental: false - model: "V4_5ALL" + model: "V5_5" ``` -Плюсы: быстро, дёшево, Suno отлично справляется сама. До 500 символов в `prompt`. - -### Кастомный режим (customMode: true) — когда нужен точный контроль - -Агент сам пишет текст с мета-тегами `[Verse]`, `[Chorus]` и описывает стиль. Используй ТОЛЬКО когда пользователь просит конкретный текст или определённые детали. Подробнее в [Prompt Engineering Guide](#prompt-engineering-guide). +Suno сама напишет текст и аранжировку. До 500 символов в `prompt`. ## Основные сценарии -### 1. Сгенерировать песню (простой режим, по умолчанию) +### 1. Сгенерировать песню (кастомный режим, основной) + +Агент предлагает написать текст и стиль. Если пользователь согласен — использует Prompt Engineering Guide, формирует три блока (Lyrics, Style, Negative Prompt) и вызывает: ``` suno_generate_music - prompt: "Мелодичный инди-фолк с акустической гитарой, мягким вокалом, ностальгическое настроение" - customMode: false + prompt: "///*****///\n\n[Verse]..." + customMode: true instrumental: false - model: "V4_5ALL" + style: "genre: synthwave, 80s..." + title: "Название" + negativeTags: "trap, male vocals..." + model: "V5_5" ``` -Вернёт `taskId`. Затем `suno_get_task_status` для получения результата: 2 трека с `audio_url`, `title`, `tags`, `duration`. +Вернёт `taskId`. Затем `suno_get_task_status` для результата: 2 трека с `audio_url`, `title`, `tags`, `duration`. + +### 2. Сгенерировать песню (простой режим, если спешка) + +``` +suno_generate_music + prompt: "Мелодичный инди-фолк с акустической гитарой, мягким вокалом" + customMode: false + instrumental: false + model: "V5_5" +``` ### 3. Получить текст песни @@ -174,9 +206,7 @@ suno_get_task_status ## Prompt Engineering Guide -Этот раздел — **только для `customMode: true`**, когда пользователю нужен точный контроль над текстом и стилем трека. По умолчанию используй [простой режим](#простой-режим-custommode-false--по-умолчанию) с `customMode: false`. - -Когда пользователь просит создать песню, агент должен вести себя как **Suno AI Master Assistant**: профессионально, дружелюбно, на русском языке. Перед генерацией анализируй историю чата и учитывай ранее выбранные жанры и стили. +Когда пользователь просит создать песню, агент ведёт себя как **Suno AI Master Master Assistant**: профессионально, дружелюбно, на русском языке. Агент предлагает пользователю вариант (режим, модель V5_5, текст, стиль) — пользователь может согласиться, попросить правки или отказаться в пользу простого режима. Перед генерацией анализируй историю чата и учитывай ранее выбранные жанры и стили. ### Три обязательных блока промпта @@ -332,7 +362,7 @@ suno_generate_music style: "genre: anthemic alternative rock..." title: "Восхождение" negativeTags: "trap, electronic beats, female vocals, jazz chords, muddiness, weak drums" - model: "V4_5ALL" + model: "V5_5" ``` ### Память и предпочтения @@ -341,19 +371,19 @@ suno_generate_music ### Проверка перед отправкой -**Простой режим (`customMode: false`, по умолчанию):** -- [ ] `customMode: false`, `instrumental`, `model` указаны -- [ ] `prompt` — хорошее описание идеи (до 500 символов) -- [ ] `style` и `title` оставлены пустыми (не нужны) - -**Кастомный режим (`customMode: true`, только по запросу):** -- [ ] `customMode: true`, `instrumental`, `model` указаны +**Кастомный режим (`customMode: true`, основной):** +- [ ] `customMode: true`, `instrumental`, `model: "V5_5"` (если пользователь не выбрал другую) - [ ] `style` и `title` заполнены - [ ] Для вокального трека (`instrumental: false`) заполнен `prompt` с текстом - [ ] `style` не превышает лимит символов для выбранной модели - [ ] `negativeTags` — список через запятые, без `no` - [ ] Ударения **не** размечены заглавными буквами +**Простой режим (`customMode: false`, альтернативный):** +- [ ] `customMode: false`, `instrumental`, `model` указаны +- [ ] `prompt` — хорошее описание идеи (до 500 символов) +- [ ] `style` и `title` оставлены пустыми (не нужны) + ## Обработка ошибок | Код | Причина |