Войти

Smart Actions

Smart Actions — это мощная функция, которая позволяет создавать пользовательские рабочие процессы автоматизации через конфигурационные файлы JSON/YML. Размещая определения действий в папке .supercode/actions/ (в корне проекта или домашнем каталоге), вы можете создавать сложные интеграции, которые изменяют промпты, взаимодействуют с внешними сервисами и настраивают поведение AI таким образом, чтобы идеально соответствовать вашему рабочему процессу разработки.

Smart Actions

Действие — это универсальная операция, которая может быть запущена несколькими способами: через прямое взаимодействие пользователя, нажатием кнопок в различных меню (как вы прочитаете ниже), через триггеры, такие как голосовые команды, или настроена как автоматические действия в определенных ситуациях. Используя действия, вы можете изменять ваш текущий запрос, системный промпт, выбранную модель и выбранный режим агента бесчисленным количеством различных способов.

Эти модификации могут варьироваться от очень простых операций, таких как добавление текста к вашему текущему запросу или добавление информации к системному промпту, до сложных конвейеров, где ваш промпт отправляется на ваш собственный сервер для пользовательской обработки перед возвратом в Cursor. Действия представляют собой невероятно мощную подсистему Supercode, которая позволяет вам почти полностью переписать то, как AI-агент обрабатывает ваши запросы.

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

Создание пользовательских действий

Действия определяются в файлах JSON/YML в каталоге .supercode/actions/. Каждый файл JSON/YML служит коллекцией связанных действий, где вы можете группировать похожие или тематически связанные действия вместе. В каждом файле структура представляет собой объект, где ключи представляют уникальное имя действия, а значения определяют конфигурацию действия. Действия могут выполнять несколько типов операций, от простых модификаций промптов до сложных интеграций с внешними сервисами и динамического выбора моделей.

Базовая конфигурация действия

Вот простой пример, показывающий базовую структуру действий:

{
  "Security Review": {
    "icon": "🔒",
    "menu": "buttons",
    "mode": "SC:Architect",
    "systemPrompt": "You are a security expert. Focus on input validation, authentication, and potential attack vectors.",
    "prompt": "$prompt \n\n Implement it with a focus on security."
  },
  "Performance Analysis": {
    "icon": "⚡",
    "menu": ["prompts", "buttons"],
    "prompt": "Analyze the code for performance bottlenecks and suggest optimizations.",
    "model": "o3",
    "run": true
  }
}
  • "prompts": Появляется в меню пользовательских промптов наряду с пользовательскими промптами
  • "enhancers": Доступно в выпадающем меню Custom Enhancers для рабочих процессов улучшения промптов
  • "buttons": Отображается как иконки эмодзи на панели инструментов Cursor & Antigravity для быстрого доступа

Вы можете указать несколько типов меню, используя массив: ["prompts", "buttons"]

Updaters: динамическое изменение значений

Smart Actions поддерживают мощные "updaters", которые могут динамически изменять промпты, системные промпты, модели и режимы. Updaters могут использовать переменные, такие как $prompt, $model и $mode, для ссылки на текущие значения и их преобразования.

Типы Updaters

  • Simple: Заменить статическим строковым значением (по умолчанию при использовании обычных строк)
  • URL: Отправить текущие значения на веб-сервер и использовать ответ как новое значение
  • Command: Выполнить команду оболочки с текущими значениями и использовать stdout как новое значение
  • AI: Использовать AI для преобразования текущих значений на основе системного промпта
{
  "Add Project Context": {
    "icon": "🌐",
    "menu": "enhancers",
    "prompt": {
      "url": "https://your-server.com/api/enhance"
    }
  },
  "Security Focus": {
    "icon": "🔐",
    "menu": "enhancers",
    "prompt": {
      "ai": "Add security considerations and best practices to this prompt: $prompt"
    }
  }
}

Использование переменных в Updaters

Updaters могут ссылаться на текущий контекст, используя переменные со знаком доллара. Эти переменные позволяют вам создавать динамические преобразования, которые работают с текущим состоянием:

Доступные переменные

  • $prompt - Текст текущего промпта
  • $model - Текущая выбранная модель AI
  • $mode - Текущий режим (если есть)
  • $systemPrompt - Текущий системный промпт
{
  "Add Debug Logging": {
    "icon": "🐛",
    "menu": "prompts",
    "prompt": "Add comprehensive debug logging to this code. Original request: $prompt",
    "systemPrompt": "Focus on adding meaningful log statements that help with debugging. Current model: $model"
  },
  "Convert to TypeScript": {
    "icon": "🔷",
    "menu": "buttons",
    "prompt": {
      "ai": "Convert the following code to TypeScript with proper type definitions: $prompt"
    },
    "model": "claude-3-5-sonnet"
  }
}

Продвинутые примеры Updater

Вот более сложные примеры использования различных типов updaters:

{
  "Context-Aware Assistant": {
    "icon": "🤖",
    "menu": "prompts",
    "systemPrompt": {
      "ai": "Create a system prompt optimized for the current model ($model) and mode ($mode)"
    },
    "prompt": "Help me with: $prompt"
  },
  "Test External": {
    "menu": "buttons",
    "icon": "🚀",
    "prompt": {
      "url": "https://api.supercode.sh/prompt-echo"
    },
    "systemPrompt": "You must start your response with 'Hello, world!'",
    "run": true
  }
}

Голосовые команды и интеграция с IDE

Действия также могут интегрироваться с голосовыми командами и операциями IDE:

{
  "Run Tests": {
    "voiceCommand": ["run tests", "execute tests", "test project"],
    "ideCommand": {
      "name": "workbench.action.tasks.runTask",
      "args": ["npm: test"]
    }
  },
  "Quick Fix": {
    "icon": "⚡",
    "menu": "prompts",
    "prompt": "Fix any obvious errors in the selected code",
    "run": true
  }
}

Полный пример действия

Вот комплексный пример, демонстрирующий несколько функций Smart Actions:

{
  "Full-Stack Code Review": {
    "icon": "🔍",
    "menu": ["prompts", "buttons"],
    "model": {
      "ai": "Select the best model for code review based on current context: $model"
    },
    "systemPrompt": {
      "ai": "Create a comprehensive system prompt for code review that considers the current project context and selected model ($model)"
    },
    "prompt": {
      "url": "https://your-company.com/api/enhance-review-prompt"
    },
    "voiceCommand": ["review code", "full stack review"],
    "actions": ["security_scan", "performance_check"]
  }
}

Workflows: последовательное выполнение действий

Одна из самых мощных функций Smart Actions — это способность создавать Workflows через последовательное автоматическое выполнение. Когда действие включает "run": true или "instantRun": true, текущий промпт (включая все вложенные модификации) автоматически отправляется Cursor Agent для выполнения сразу после завершения действия.

Автоматическое выполнение

Когда вы создаете Workflow, состоящий из нескольких Actions, каждый с "run": true, Supercode автоматически запустит следующий запрос после успешного завершения предыдущего. Это создает невероятно мощные автоматизированные рабочие процессы разработки.

Например, вы можете использовать архитектурный режим с моделью глубокого мышления в одном Action для проектирования реализации функции, затем другой Action выполнит реализацию с более простой моделью. Workflow Action может затем последовательно вызвать первый Action для проектирования решения и автоматически переключиться на второй Action для реализации без необходимости вашего ручного вмешательства.

{
  "Architecture Design": {
    "icon": "🏗️",
    "mode": "SC:Architect",
    "model": "o3",
    "prompt": "Design the architecture and implementation plan for: $prompt",
    "systemPrompt": "Focus on system design, component relationships, and implementation strategy.",
    "run": true
  },
  "Implementation": {
    "icon": "⚙️",
    "model": "claude-4-sonnet",
    "prompt": "Implement the feature based on the architectural design: $prompt",
    "systemPrompt": "Focus on clean, maintainable code implementation.",
    "run": true
  },
  "Full Feature Workflow": {
    "icon": "🚀",
    "menu": ["prompts", "buttons"],
    "actions": ["Architecture Design", "Implementation"],
    "voiceCommand": ["build feature", "full workflow"]
  }
}

Вложенные Workflows

Используя этот механизм, вы можете создавать вложенные Workflows, которые позволяют Cursor Agent выполнять сложные последовательности операций в течение десятков минут. Каждый шаг в рабочем процессе может использовать разные модели, режимы и системные промпты, оптимизированные для конкретных задач, создавая сложные конвейеры автоматизации, которые адаптируются к вашему процессу разработки.

{
  "Code Review & Fix": {
    "model": "claude-4-opus",
    "prompt": "Review this code for issues: $prompt",
    "systemPrompt": "Identify bugs, security issues, and improvement opportunities.",
    "run": true
  },
  "Apply Fixes": {
    "model": "claude-4-sonnet",
    "prompt": "Apply the suggested fixes from the review: $prompt",
    "run": true
  },
  "Generate Tests": {
    "model": "claude-4-sonnet",
    "prompt": "Create comprehensive tests for the fixed code: $prompt",
    "run": true
  },
  "Complete Code Pipeline": {
    "icon": "🔄",
    "menu": ["buttons"],
    "actions": ["Code Review & Fix", "Apply Fixes", "Generate Tests"],
    "voiceCommand": ["run pipeline", "complete workflow"]
  }
}

Преимущества и сценарии использования

Smart Actions открывают мощные возможности автоматизации:

  • Создание специализированных AI-ассистентов для различных частей вашего приложения
  • Интеграция с инструментами и базами знаний вашей компании через API-вызовы и RAG
  • Автоматизация сложных многошаговых рабочих процессов разработки

С помощью Smart Actions, Supercode становится платформой для создания сложных рабочих процессов разработки с поддержкой AI, которые адаптируются к вашим уникальным требованиям и бесшовно интегрируются с вашими существующими инструментами и процессами.