spicyapiДокументация
Агенты и CLI
Основное содержимое

Agent Skill

Готовый регламент для ИИ-ассистентов, которые пишут код. Установите его один раз, и ваш ассистент будет строить интеграции со SpicyAPI безопасно и правильно. Что это такое, что он меняет, как его установить и как проверить, что он работает.

Если вы пользуетесь ИИ-ассистентом для программирования, например Claude Code, Codex или Cursor, Skill SpicyAPI научит его правильно работать со SpicyAPI. Устанавливается он один раз. После этого можно сказать «добавь в моё приложение генерацию изображений через SpicyAPI», и ассистент будет следовать правилам SpicyAPI, а не действовать наугад.

Чтобы пройти по этой странице, не нужно быть разработчиком. Если вы умеете вставить команду в терминал, вы сможете установить Skill.

Коротко

  1. Выполните в терминале npx skills add spicyapi-ai/spicy-skill и выберите своего ассистента.
  2. Закройте ассистента и откройте новый сеанс.
  3. Попросите о чём-нибудь, где упоминается SpicyAPI, например: «Добавь в мой бэкенд эндпоинт для генерации изображений через SpicyAPI».

Что такое Skill

Skill — это папка с инструкциями, написанными не для людей, а для ИИ-ассистента. Представьте регламент, который вручают новому коллеге: сам он работу не делает, но подсказывает тому, кто её делает, какие шаги выполнять, в каком порядке и чего не делать никогда.

ИИ-ассистенты много знают о программировании в целом, но надёжных знаний о конкретных правилах SpicyAPI у них нет. Действуя наугад, ассистент может:

  • придумать ID модели или поле входных данных, которых не существует;
  • вставить ваш API-ключ прямо в код;
  • после сбоя сети отправить один и тот же платный запрос дважды и дважды за него заплатить;
  • выдать вам ссылку на результат, которая через несколько дней перестанет работать.

С установленным Skill ассистент читает правила SpicyAPI до того, как возьмётся за работу. На практике это выглядит так:

  1. Папка Skill лежит там, куда ваш ассистент заглядывает при запуске сеанса.
  2. Ассистент читает краткое описание Skill в один абзац. Когда ваш запрос касается SpicyAPI, он открывает полные инструкции. Называть Skill по имени не нужно.
  3. Пока ассистент пишет для вас код или выполняет команды, он следует этим инструкциям.

Три факта, которые стоит знать заранее:

  • Это только текст. Файлы Markdown и YAML: никаких программ, никаких скриптов, ничего, что запускается при установке. Любой файл можно открыть в текстовом редакторе; см. Что внутри.
  • В нём нет API-ключа, и сам он ничего не вызывает. Сам по себе он не может ни добраться до вашего аккаунта, ни потратить деньги.
  • Он бесплатный и с открытым исходным кодом. Распространяется по лицензии MIT, опубликован в npm как @spicyapi/skill и разрабатывается открыто по адресу github.com/spicyapi-ai/spicy-skill.

Skill, MCP, SDK и CLI

У SpicyAPI четыре официальных инструмента. Они решают разные задачи и задуманы так, чтобы работать вместе.

ИнструментЧто этоЕго роль простыми словами
Skill (эта страница)Инструкции для вашего ИИ-ассистентаРегламент: как делать всё правильно
MCP-серверКоннектор, который работает на вашем компьютере и даёт ассистенту действия SpicyAPI: просматривать модели, узнавать цену, создавать задачу, получать результатРуки: позволяет ассистенту действовать в вашем аккаунте
SDKБиблиотека TypeScript, которую подключает ваше собственное приложение. Официальные SDK есть также для Python, Go, PHP и JavaТо, через что код вашего приложения общается со SpicyAPI
CLIКоманда терминала spicyapiВыполняет операции SpicyAPI из терминала или скрипта

Skill не заменяет ни один из них. Он объясняет ассистенту, как ими пользоваться: инструментами MCP, когда они подключены; CLI для разовых операций; SDK для вашего языка — для кода, который войдёт в ваше приложение.

  • Только Skill. Ассистент пишет для вашего проекта правильный код интеграции, но не может ничего посмотреть в вашем аккаунте или запустить задачи за вас.
  • Только MCP. Ассистент может действовать в вашем аккаунте, но каждый раз вынужден сам выяснять правильный порядок шагов.
  • И то и другое. Ассистент может пробовать за вас и делает это так, как описано в документации. Если хотите, чтобы ассистент запускал настоящие задачи, установите оба инструмента. Они не конфликтуют.

С чем он помогает

В левом столбце то, о чём вы просите. В правом то, что Skill заставляет ассистента делать, пока он выполняет просьбу.

Вы просите ассистента…Skill следит, чтобы ассистент…
Выбрать модель и составить запросБрал текущие поля входных данных этой модели из актуального каталога (live catalog), а не угадывал. Он никогда не выдумывает ID модели, цену или поле.
Добавить в приложение генерацию изображений или видеоСначала получал точную цену, показывал вам ориентировочную стоимость и максимальную сумму списания и ждал вашего согласия перед любым платным вызовом.
Сделать интеграцию устойчивой к сетевым сбоямИспользовал один ключ идемпотентности на одну генерацию и после тайм-аута отправлял его повторно, чтобы повтор не создал (и не оплатил) вторую задачу. См. Идемпотентность.
Дождаться результатаПользовался проверенным вебхуком или ожиданием с крайним сроком, а затем проверял итоговое значение state задачи. О пригодном результате он сообщает только тогда, когда готова ссылка на результат.
Получать результаты через вебхукПроверял подпись по исходному запросу, прежде чем ему доверять, и отбрасывал повторные доставки по request_id. См. Webhook.
Сохранить сгенерированные файлыСразу брал файл по готовой ссылке на результат, а затем сохранял копию в хранилище, которым управляете вы: ссылки на результаты временные, а сами результаты хранятся около 14 дней.
Использовать файл с вашего компьютера как входные данныеСначала загружал файл и передавал полученный адрес spicy://. Содержимое файла он никогда не вставляет в запрос. См. Загрузка медиа и результатов.
Обрабатывать ошибкиНе отправлял отклонённый запрос повторно вслепую: исправлял входные данные, при нехватке баланса направлял вас в консоль и ждал столько, сколько указано в Retry-After. См. Ошибки и повторы.
Защитить ваш API-ключЧитал SPICY_API_KEY из переменной окружения или менеджера секретов и никогда не записывал ключ в исходный код, аргументы команд, промпты, логи или конфигурацию, которая попадает в репозиторий.
Запустить много генерацийУчитывал, что пакетного эндпоинта нет: ограничивал число одновременных запусков, давал каждому элементу собственный ключ идемпотентности и собственную цену и никогда не отправлял заново всю пачку из-за тайм-аута одного элемента.
Хранить содержимое меньше или удалить егоТолько сокращал срок хранения, но никогда его не продлевал. Перед уничтожением содержимого задачи спрашивал вас и прямо говорил, что это не возврат денег и запись в биллинге останется. См. Хранение и удаление данных.
Отчитаться о сделанномНазывал вам ID модели, ID задачи, ID запроса и ключ идемпотентности, чтобы вы могли потом всё найти или сообщить их поддержке.

Чего он делать не будет

  • Тратить деньги по своей инициативе. Skill — это текст, и вызвать он ничего не может. Если у вашего ассистента вдобавок есть MCP-сервер или CLI и API-ключ, он может создавать платные задачи. Skill велит ему сначала показать вам цену и получить ваше явное подтверждение, если только ваш запрос уже однозначно не разрешил именно этот платный запуск. С MCP-сервером каждое платное действие дополнительно останавливается на подтверждении, которое ассистент пропустить не может.
  • Выдумывать возможности. Он не станет писать вызовы того, чего публичный API не предлагает: отмены задачи, удаления записи о задаче или повторной отправки вебхука.
  • Трогать настройки аккаунта. Регистрация, вход, платежи, пополнения, участники команды, запросы о персональных данных и закрытие аккаунта остаются в консоли SpicyAPI. Ассистент не будет пытаться их автоматизировать.
  • Подделывать тесты. Если вы просите настоящий тест, он делает настоящий запрос (возможно, платный, и только после вашего подтверждения) и сообщает, что произошло на самом деле. Пройденная проверка на заглушках (моках) никогда не выдаётся за «проверено».
  • Добавлять настройку контента. В SpicyAPI нет флага режима контента и нет проверки содержимого каждого запроса, и Skill ничего подобного не выдумывает. Что можно делать, определяет выбранная вами модель.

Перед началом

Вам понадобятся четыре вещи. Для установки достаточно первых трёх.

  1. ИИ-ассистент для программирования, который поддерживает Agent Skills. Их поддерживают Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, Windsurf и многие другие. Skill использует переносимый формат папок Agent Skills, поэтому работает с любым ассистентом, который читает этот формат. Если не уверены насчёт своего, поищите в его документации слово «skills».

  2. Node.js 22 или новее: он даёт команду npx. Проверьте так:

    node --version

    Установщику skills сейчас нужен Node.js 22.20 или новее, а собственному установщику пакета нужна версия 22.13 или новее. Если команда не найдена или версия ниже, установите LTS-версию с nodejs.org и откройте новый терминал.

  3. Терминал. На macOS это приложение «Терминал», на Windows — PowerShell. Если нужна установка только для одного проекта, запускайте команды из папки этого проекта.

  4. API-ключ SpicyAPI, когда начнёте вызывать API. Для установки Skill он не нужен. Создайте ключ в консоли; он начинается с sk-spicy- и показывается только один раз. Храните его в переменной окружения SPICY_API_KEY и никогда не вставляйте сам ключ в чат с ассистентом. См. Аутентификация.

Установка

Установить Skill можно двумя способами. Оба раскладывают одни и те же файлы. Выбирайте первый, если нет причин поступить иначе.

skills — бесплатный установщик, общий для многих ассистентов. Он знает, где каждый ассистент ищет Skills, так что вам этого знать не нужно.

Выполните команду

npx skills add spicyapi-ai/spicy-skill

Имя владельца пишется точно так: spicyapi-ai. В октябре 2026 года репозиторий переехал сюда; под старыми именами Spicy-API и SpicyAPI установщик Skill больше не найдёт. Это публичный репозиторий SpicyAPI на GitHub, поэтому вы всегда получаете актуальную версию Skill.

При первом запуске npx может предложить скачать инструмент skills: ответьте y. Дальше появятся «Cloning repository…» и «Found 1 skill» — это всё.

Выберите ассистентов

Установщик покажет список ассистентов. Отметьте те, которыми пользуетесь, клавишей «Пробел», затем нажмите Enter.

Выберите, где Skill будет действовать

  • Project (проект): установка в папку, из которой вы запустили команду, поэтому Skill действует, только когда ассистент работает в этом проекте. Файлы можно закоммитить вместе с проектом, и тогда Skill появится и у коллег. Это безопасно: секретов в Skill нет.
  • Global (глобально): установка в домашнюю папку, поэтому Skill действует во всех проектах.

Выберите способ установки

Symlink (символическая ссылка, рекомендуемый вариант) хранит одну копию и направляет на неё каждого ассистента. Copy (копирование) даёт каждому ассистенту собственную копию. Работают оба варианта.

Начните новый сеанс

Ассистенты загружают Skills при запуске сеанса. Закройте ассистента, откройте его снова, а затем проверьте, что всё работает.

Чтобы обойтись без вопросов, укажите ассистента (--agent), добавьте -g для глобальной установки и -y, чтобы принять значения по умолчанию:

# Claude Code, только этот проект
npx skills add spicyapi-ai/spicy-skill --agent claude-code

# Codex, все проекты
npx skills add spicyapi-ai/spicy-skill --agent codex -g

# Claude Code и Codex, все проекты, без вопросов
npx skills add spicyapi-ai/spicy-skill --agent claude-code codex -g -y

По завершении установщик выводит точные папки, в которые записал файлы. Типичные результаты:

Что вы выбралиКуда попадают файлы
Project, только Claude Code.claude/skills/spicyapi внутри проекта
Project, несколько ассистентовОдна копия в .agents/skills/spicyapi внутри проекта, а папки остальных ассистентов указывают на неё
Global, Claude Code и Codex~/.agents/skills/spicyapi и указывающая на неё папка ~/.claude/skills/spicyapi

~ означает вашу домашнюю папку: /Users/your-name на macOS, C:\Users\your-name на Windows. Папки, имена которых начинаются с точки, по умолчанию скрыты; чтобы увидеть их на macOS, нажмите в Finder Cmd + Shift + . (точку).

Можно попросить ассистента установить Skill за вас

Выполнение команды можно поручить ассистенту. Когда установщик видит, что его запустил ассистент, он не задаёт вопросов, поэтому скажите точно, чего хотите, например: «Выполни npx skills add spicyapi-ai/spicy-skill --agent claude-code -g».

Проверьте, что всё работает

Убедитесь, что файлы на месте

npx skills list      # Skills, установленные в текущем проекте
npx skills list -g   # Skills, установленные для всех проектов

Найдите в выводе spicyapi. Можно также открыть папку установки и проверить, что в ней есть SKILL.md.

Спросите ассистента

Откройте в своём проекте новый сеанс и спросите:

Тебе доступен Skill SpicyAPI? Кратко перескажи, что он велит сделать перед созданием платной задачи в SpicyAPI.

Хороший ответ упоминает то, что взято из Skill: получить точный расчёт стоимости и показать вам ориентировочную стоимость и максимальную сумму списания, дождаться вашего подтверждения, использовать для этой попытки один ключ идемпотентности, прочитать актуальную схему входных данных модели и хранить SPICY_API_KEY в переменной окружения.

Если ответ расплывчатый или общий, ассистент не загрузил Skill. См. Устранение неполадок.

При желании назовите его по имени

Ассистенты подхватывают Skill автоматически, когда в запросе упоминается SpicyAPI. Чтобы сказать об этом явно, назовите Skill в запросе: «Используй Skill spicyapi, чтобы…». В Codex можно также ввести $spicyapi.

Примеры запросов

Вставьте любой из этих запросов в ассистента и поправьте детали. Упоминайте в запросе SpicyAPI, чтобы ассистент понял, что здесь применим Skill.

Если вы уже знаете, какая модель вам нужна, скопируйте её точный ID со вкладки API на странице модели или из аутентифицированного актуального каталога (live catalog, GET /api/v1/models) и вставьте его в запрос. В примерах на месте этого ID написано MODEL_ID_FROM_CATALOG: это заполнитель, а не настоящий ID. Если ID у вас нет, попросите ассистента выбрать модель из актуального каталога. См. Модели и эндпоинты.

Эндпоинт для изображений в приложении на Next.js

Добавь в моё приложение на Next.js серверный API-маршрут, который принимает текстовый промпт, генерирует изображение через SpicyAPI моделью MODEL_ID_FROM_CATALOG, дожидается результата и возвращает ссылку на изображение. API-ключ читай из SPICY_API_KEY.

За чем Skill велит ассистенту следить:

  • Ключ остаётся на вашем сервере в SPICY_API_KEY. Ваша веб-страница обращается к вашему маршруту и никогда не вызывает SpicyAPI с ключом сама.
  • Прежде чем составлять запрос, ассистент читает из актуального каталога текущие поля входных данных этой модели.
  • Сначала он получает точный расчёт стоимости и показывает вам ориентировочную стоимость и максимальную сумму списания. Платный запрос отправляется вместе с этим подтверждённым расчётом.
  • Он создаёт один ключ идемпотентности на генерацию и отправляет его повторно, если время ожидания запроса истекло.
  • Он ждёт с крайним сроком, а затем проверяет state задачи: закончившееся ожидание ещё не означает успешную генерацию.

Приём результатов через вебхук в Express

Добавь в мой сервер на Express эндпоинт вебхука, который принимает результаты задач SpicyAPI, проверяет подпись с помощью SPICY_WEBHOOK_SECRET и сохраняет ссылку на результат в мою базу данных.

  • Ассистент проверяет подпись по точному исходному телу запроса до того, как разбирать его как JSON.
  • Он использует request_id доставки, чтобы отбрасывать дубликаты: одно и то же событие может прийти больше одного раза.
  • Результат он берёт прямо из полного проверенного вебхука, не делая лишнего запроса.

Копирование готовых видео в собственное хранилище

Когда видеозадача SpicyAPI завершается успешно, скачай видео, загрузи его в мой бакет S3 и сохраняй мою собственную ссылку вместо ссылки SpicyAPI.

  • Ссылки на результаты временные, а сгенерированные файлы хранятся около 14 дней, поэтому ассистент сохраняет долговечную копию под вашим контролем.
  • При скачивании по ссылке на результат он не отправляет ваш API-ключ.
  • Если срок действия ссылки истёк, он снова запрашивает у SpicyAPI ту же задачу, чтобы получить свежую ссылку. Новую задачу только ради ссылки он никогда не создаёт.

Видео из фотографии пользователя

Дай пользователям загружать фото в моём приложении и превращать его в короткое видео через SpicyAPI.

  • Ассистент сначала загружает файл в SpicyAPI и подставляет в запрос полученный адрес spicy://, а не вставляет файл в виде base64.
  • Он соблюдает ограничения на загрузку: 10 MiB для изображений, 90 MiB для видео MP4 или WebM и аудио MP3 или WAV.
  • Фото, которое уже доступно по публичной ссылке HTTPS, можно передать напрямую, без загрузки.

Повторы и нехватка баланса

Сделай так, чтобы моя интеграция со SpicyAPI справлялась со сбоями: повторяла запросы после сетевых тайм-аутов, не платя дважды, показывала понятное сообщение, когда на балансе аккаунта не хватает денег, и сбавляла темп, когда я упираюсь в лимит запросов.

  • После тайм-аута ассистент повторяет запрос с тем же ключом идемпотентности, чтобы повтор не создал вторую платную задачу.
  • Ошибку «недостаточно средств» (код 40201) он не повторяет: ваш пользователь видит понятное сообщение, а вы пополняете баланс в консоли.
  • Перед новой попыткой он ждёт столько, сколько указано в Retry-After.
  • Если срок действия расчёта истёк или цена изменилась (код 40901), он получает новый расчёт стоимости и снова спрашивает вас, а не отказывается от проверки цены.
  • Он знает, что повтор завершившейся ошибкой задачи создаёт новую задачу, за которую могут снова списать деньги, поэтому делает это, только когда вам нужна новая попытка.

Пакетная генерация

Сгенерируй через SpicyAPI фотографии товаров для 20 позиций из products.csv, не больше 3 одновременно, и запиши в лог ID каждой задачи.

  • В SpicyAPI нет пакетного эндпоинта, поэтому ассистент одновременно запускает только ограниченное число запросов.
  • У каждого элемента свой ключ идемпотентности и своя цена.
  • ID каждой задачи он записывает сразу, как только задача принята.
  • Если время ожидания истекло для одного элемента, он восстанавливает только этот элемент и никогда не отправляет заново всю пачку.

Если установлен ещё и MCP-сервер

Ассистента можно также попросить работать прямо с вашим аккаунтом, например: «Через SpicyAPI выведи список моделей для изображений, которые я могу вызывать, и сколько стоит каждая. Задачи не создавай». Просмотр моделей и цен ничего не стоит. См. MCP-сервер.

Что внутри

Установленная папка выглядит так:

spicyapi/
├── SKILL.md
├── references/
│   ├── api-workflows.md
│   └── safety.md
└── agents/
    └── openai.yaml
ФайлДля чего он
SKILL.mdГлавная страница. В её заголовке указаны имя Skill (spicyapi) и описание в один абзац, по которому ассистент решает, когда Skill применим. В основной части перечислено обязательное поведение: актуальные схемы, расчёт стоимости и подтверждение, ключи идемпотентности, загрузки, ссылки на результаты, хранение, обращение с ключами и то, о чём отчитаться в конце.
references/api-workflows.mdПодробное руководство, которое ассистент читает, прежде чем составлять шаги для API, CLI или MCP: переменные окружения, таблица, где каждому действию сопоставлены команда CLI, инструмент MCP и маршрут API, порядок генерации, пакеты, хранение и уничтожение содержимого, загрузка локальных файлов, повторы после неопределённого ответа, набросок кода на SDK, проверка подписи вебхуков и восстановление истории задач. В его примерах команд ID модели записан как заполнитель MODEL_ID_FROM_CATALOG, а входные данные передаются через --input-json, поэтому ассистент берёт настоящий ID из актуального каталога, а не копирует его из примера.
references/safety.mdПравила, которые ассистент читает перед платными вызовами, настоящими тестами, обработкой вебхуков и всем, что касается ключей: как не раскрывать ключи и содержимое клиентов, контрольный список подтверждения для платных вызовов, как провести настоящий интеграционный тест, честная уборка после тестов, ограничения локального MCP-сервера и какие действия с аккаунтом остаются в консоли. Об уборке там сказано то же, что в api-workflows.md: уничтожение содержимого удаляет у одной завершённой задачи сгенерированные медиа, данные результата, промпт и прочий текст входных данных, а запись в биллинге остаётся; API для отмены задачи или удаления её записи нет.
agents/openai.yamlОтображаемое имя, краткое описание и промпт по умолчанию для ассистентов, которые читают этот файл, например Codex. allow_implicit_invocation: true позволяет ассистенту пользоваться Skill, даже если вы его не назвали.

Два справочных файла ассистент открывает, только когда они нужны для задачи: так в его рабочей памяти остаётся место для вашего проекта. Чтобы прочитать файлы до установки, выполните npx @spicyapi/skill path: команда выведет папку, где пакет их хранит.

Skill велит ассистенту настраивать ваш код и инструменты через эти переменные окружения. Сам Skill ни одну из них не читает.

Свойство

Тип

Обновление и удаление

Обновление

Skill меняется, когда меняется рекомендуемый порядок работы со SpicyAPI, а установленные копии сами не обновляются. В установленной папке нет номера версии, поэтому переустановка — самый простой способ убедиться, что у вас актуальная версия.

  • Если устанавливали через npx skills add: выполните ту же команду ещё раз, с той же областью действия и теми же ассистентами. Она заменит установленные файлы текущим содержимым репозитория, поэтому обновление доступно сразу после публикации — ждать ничего не нужно.

  • Если устанавливали установщиком пакета: запустите его снова с --force и тем же --target. Если добавить @latest, npx скачает самый новый пакет, а не возьмёт закэшированный:

    npx @spicyapi/skill@latest install --target ~/.claude/skills/spicyapi --force

--force заменяет папку целиком

Всё, что вы добавили или изменили внутри папки spicyapi, будет удалено. Свои заметки храните в другом месте.

Удаление

Удаление Skill не затрагивает ваш аккаунт SpicyAPI, ваши API-ключи и код, который ассистент уже написал.

  • Если устанавливали через npx skills add: выполните эту команду из той же папки проекта, а если установка была глобальной, добавьте -g. Затем убедитесь, что папки spicyapi больше нет.

    npx skills remove spicyapi
  • Если устанавливали установщиком пакета: удалите папку spicyapi в Finder или Проводнике либо из терминала:

    # macOS и Linux: укажите папку, в которую устанавливали
    rm -rf ~/.agents/skills/spicyapi
    # Windows PowerShell
    Remove-Item -Recurse -Force "$HOME\.agents\skills\spicyapi"

    Прежде чем нажать Enter, дважды проверьте путь: он должен заканчиваться на spicyapi.

После этого начните новый сеанс, чтобы ассистент перестал пользоваться Skill.

Устранение неполадок

Исходный код

Пакет распространяется под лицензией MIT и разрабатывается открыто по адресу github.com/spicyapi-ai/spicy-skill. Там же можно прочитать инструкции, которые Skill на самом деле устанавливает, сообщить о поведении, которое расходится с описанным, или предложить изменение.

Что дальше

На этой странице