Get started
Если вы настраиваете агента впервые, сначала установите Youka CLI, затем установите навык Youka karaoke:Prompt your agent
После установки CLI и навыка вы можете дать агенту прямую задачу, например так:Operating rules
Always use --json
В CLI всегда передавайте
--json. В API всегда устанавливайте Accept: application/json. Никогда не парсите человекочитаемый вывод.Always send an idempotency key
Каждая операция записи должна содержать стабильный ключ идемпотентности, чтобы повтор после таймаута возвращал исходный результат вместо дублирования работы.
Re-read durable state
Не доверяйте устаревшим ответам на мутации. После завершения задачи перечитайте проект или экспорт, чтобы получить финальное состояние.
Poll with backoff
Начинайте с интервала 2–3 секунды. Экспоненциально увеличивайте интервал для длительных задач.
Учитывайте ответы 429.
Output contract
Каждая команда CLI в режиме--json пишет ровно один конверт в stdout.
Успех:
End-to-end workflow
Канонический рабочий процесс агента: создать проект, дождаться, экспортировать, скачать результат. Ниже — полный шаблон с реализациями и для CLI, и для SDK.Polling guidance
Большинство операций записи в SDK возвращают дескрипторы операций. Предпочитайтеclient.projects.wait(...) и client.exports.wait(...) и опускайтесь до client.tasks.* только когда вам явно нужен низкоуровневый доступ к задачам.
В CLI флаг
--wait делает polling за вас. В SDK wait-хелперы по умолчанию используют интервал 2 s и принимают pollIntervalMs.
Idempotency keys
Каждая операция создания и обновления поддерживает ключ идемпотентности. Правила:- Используйте стабильный, уникальный, детерминированный ключ на одну логическую мутацию. Хорошо:
create-song-${sourceHash}. Плохо: новый UUID на каждый повтор. - При повторах используйте тот же самый ключ. Сервер распознаёт повтор и возвращает исходный результат.
- Ключи действуют в рамках одного аккаунта и истекают через 24 часа.
- Если сервер возвращает
IDEMPOTENT_REPLAY_IN_PROGRESS(HTTP 202), исходный запрос всё ещё выполняется. Подождите и повторите с тем же ключом.
Error recovery
Ветвитесь поerror.code и error.retryable. Частые случаи:
Discovering mutable fields
Перед изменением пресетов запросите схему пресета, чтобы модель знала допустимые поля и типы значений:youka project settings <id> --body ....
Запрашивайте один раз на сессию агента и кэшируйте результат.
Parallel agents
Когда несколько агентов работают параллельно в рамках одного аккаунта:- Делайте idempotency keys привязанными и к идентичности агента, и к логической мутации:
agent-${agentId}-create-${sourceHash}. Это предотвращает коллизию повтора одного агента с новым запросом другого. - Оставляйте чтения неограниченными —
GET-запросы дешёвые и не имеют побочных эффектов. - Используйте одну очередь для
POST /projects/{projectId}/exportsна проект, если вам нужна упорядоченная история экспортов. Иначе экспорты могут приходить не по порядку.
What’s next
- CLI global options — все флаги, доступные агентам
- SDK errors — полный справочник классов ошибок
- API async jobs — контракт polling
- API idempotency — контракт идемпотентности
