Продвинутый / 🤖 RuFlo MCP
⚡ RuFlo

🤖 RuFlo MCP

RuFlo — продвинутый MCP-сервер для Claude Code, расширяющий его агентные возможности. Управление агентами, персистентная память, координация роевых систем, автопилот, embeddings, нейронные сети, браузерная автоматизация, workflows — всё в одном сервере с сотнями инструментов.

Ключевая идея: RuFlo превращает Claude Code из линейного ассистента в полноценную мульти-агентную платформу. Вместо одного Claude, выполняющего задачи последовательно, вы получаете рой специализированных агентов, работающих параллельно с общей памятью и координацией.

Что такое RuFlo

mcp__ruflo__* — пространство имён более 200 инструментов, доступных Claude Code через MCP-протокол. RuFlo реализует полный стек агентной инфраструктуры: от низкоуровневых примитивов (терминалы, браузер, embeddings) до высокоуровневых абстракций (swarm-координация, adaptive workflows, AI Defence).

🤖
Агенты
Создавайте специализированных агентов с ролями: planner, coder, reviewer, researcher
5 инструментов • agent_*
🧠
Персистентная память
Сохраняйте архитектурные решения, контекст, знания между сессиями
6 инструментов • memory_*
🐝
Swarm / Рой
Параллельная работа нескольких агентов над одной задачей с координацией
4 инструмента • swarm_*
🔄
Workflows
Автоматизированные многошаговые пайплайны с шаблонами и мониторингом
7 инструментов • workflow_*
🌐
Браузер
Полная браузерная автоматизация: клики, формы, скриншоты, JavaScript
16 инструментов • browser_*
🔢
Embeddings
Векторный семантический поиск по коду, документам, данным
5 инструментов • embeddings_*
🖥️
Терминалы
Изолированные терминальные сессии для параллельного выполнения команд
5 инструментов • terminal_*
🔐
AI Defence
Защита от prompt injection, проверка PII, анализ безопасности промптов
6 инструментов • aidefence_*

Установка и подключение

📦 Подключение через settings.json
1
Добавить в глобальные настройки
Редактировать ~/.claude/settings.json или .mcp.json проекта
2
Вставить конфигурацию сервера
Объявить ruflo в секции mcpServers
3
Проверить через /mcp
В Claude Code выполнить /mcp — ruflo должен появиться в списке
4
Загрузить схемы инструментов
Использовать ToolSearch для загрузки нужных групп перед первым вызовом
// ~/.claude/settings.json
{
  "mcpServers": {
    "ruflo": {
      "command": "npx",
      "args": ["-y", "@ruflo/mcp-server@latest"],
      "env": {}
    }
  }
}
💡
MCP_TOOL_SEARCH=1 — обязательная переменная среды. RuFlo содержит 200+ инструментов: без ленивой загрузки их схемы съедают огромное количество токенов контекста. При включённом режиме инструменты загружаются только когда реально нужны через ToolSearch.
// Полная конфигурация с переменными окружения
{
  "mcpServers": {
    "ruflo": {
      "command": "npx",
      "args": ["-y", "@ruflo/mcp-server@latest"],
      "env": {
        "MCP_TOOL_SEARCH": "1",
        "RUFLO_LOG_LEVEL": "warn"
      }
    }
  }
}

Группы инструментов RuFlo

Все инструменты RuFlo сгруппированы по функциональным областям. Каждая группа решает отдельную задачу и может использоваться независимо или совместно с другими группами.

🤖
Агенты
mcp__ruflo__agent_*
Управление жизненным циклом специализированных агентов. Каждый агент имеет роль, цель и изолированный контекст. Агенты могут работать параллельно, обмениваться результатами и координировать выполнение сложных задач.
agent_spawn agent_list agent_status agent_terminate agent_health agent_update agent_pool
Пример использования
// Попроси CC создать агента-планировщика:
"Создай агента с ролью planner для анализа архитектуры проекта.
Агент должен изучить структуру папок и предложить рефакторинг."

// CC вызовет:
mcp__ruflo__agent_spawn → role="planner", task="analyze_architecture"
mcp__ruflo__agent_status → проверить прогресс
mcp__ruflo__agent_list  → посмотреть все активные агенты
Роли агентов: planner — стратегия и декомпозиция задач; coder — написание кода; reviewer — проверка качества; researcher — сбор и анализ информации; tester — тестирование.
🧠
Персистентная память
mcp__ruflo__memory_*
Долгосрочное хранилище информации, которое сохраняется между сессиями Claude Code. В отличие от контекста беседы, память в RuFlo постоянна: архитектурные решения, соглашения о коде, ключевые факты о проекте доступны в следующей сессии.
memory_store memory_retrieve memory_search memory_list memory_delete memory_search_unified memory_stats memory_import_claude memory_bridge_status memory_migrate
Пример: сохранить архитектурное решение
// Скажи CC:
"Сохрани в RuFlo memory: мы используем CQRS для модуля orders.
Команды через CommandBus, чтение через отдельные Query-репозитории."

// CC вызовет:
mcp__ruflo__memory_store:
  key: "architecture/orders_module"
  value: "CQRS: CommandBus для write, QueryRepository для read"
  tags: ["architecture", "orders", "cqrs"]

// В следующей сессии:
"Как устроен модуль orders?"
// CC вызовет memory_search → найдёт запись → ответит с контекстом
⚠️
Семантический поиск: memory_search использует векторные embeddings — ищите по смыслу, не по точным словам. Запрос "авторизация" найдёт записи про "authentication", "login", "JWT".
🐝
Swarm / Рой агентов
mcp__ruflo__swarm_*
Координация нескольких агентов как единого роя для параллельного решения крупных задач. Рой умеет разделять работу, объединять результаты и поддерживать согласованность между агентами через общую шину сообщений.
swarm_init swarm_status swarm_health swarm_shutdown
Когда использовать Swarm
✅ Рефакторинг большого модуля: coder + reviewer работают параллельно
✅ Разработка фичи: planner → coder → tester → reviewer конвейером
✅ Аудит кодовой базы: несколько reviewer по разным модулям
✅ Исследование и реализация: researcher + coder одновременно

❌ Маленькие задачи — накладные расходы не оправданы
❌ Сильно зависимые задачи — лучше sequential выполнение
Пример инициализации роя
"Используй RuFlo swarm для параллельной реализации feature авторизации:
- planner агент: создаёт спецификацию и декомпозицию
- coder агент: реализует backend JWT логику
- tester агент: пишет unit-тесты
- reviewer агент: проверяет соответствие стандартам проекта"

// CC вызовет:
mcp__ruflo__swarm_init → создать рой с 4 агентами
mcp__ruflo__coordination_orchestrate → распределить задачи
mcp__ruflo__swarm_status → мониторить прогресс
Координация агентов
mcp__ruflo__coordination_*
Низкоуровневые примитивы для синхронизации состояния между агентами: консенсус при конфликтах, балансировка нагрузки, оркестрация выполнения задач, мониторинг топологии сети агентов.
coordination_sync coordination_orchestrate coordination_consensus coordination_load_balance coordination_metrics coordination_node coordination_topology
Типичные сценарии
// Синхронизировать состояние после параллельной работы:
mcp__ruflo__coordination_sync → объединить результаты агентов

// Разрешить конфликт: два агента предложили разные решения:
mcp__ruflo__coordination_consensus → достичь консенсуса через голосование

// Оркестрировать многошаговый workflow:
mcp__ruflo__coordination_orchestrate → управлять порядком выполнения

// Балансировать нагрузку между агентами:
mcp__ruflo__coordination_load_balance → равномерно распределить задачи
🔄
Workflows — автоматизированные пайплайны
mcp__ruflo__workflow_*
Декларативные многошаговые пайплайны с именованными шаблонами, мониторингом выполнения и возможностью паузы/возобновления. Workflow — это повторно используемые сценарии разработки, зафиксированные как код.
workflow_create workflow_execute workflow_status workflow_list workflow_template workflow_pause workflow_resume workflow_cancel workflow_delete workflow_run
Пример: workflow разработки фичи
{
  "name": "feature_development",
  "description": "Полный цикл разработки фичи с агентами",
  "steps": [
    {
      "id": "plan",
      "agent": "planner",
      "task": "create_spec",
      "output": "spec.md"
    },
    {
      "id": "implement",
      "agent": "coder",
      "task": "write_code",
      "depends_on": ["plan"],
      "input": "spec.md"
    },
    {
      "id": "test",
      "agent": "tester",
      "task": "write_tests",
      "depends_on": ["implement"],
      "parallel": true
    },
    {
      "id": "review",
      "agent": "reviewer",
      "task": "code_review",
      "depends_on": ["implement", "test"]
    }
  ]
}
Запуск workflow
"Создай и запусти workflow feature_development для фичи корзины покупок"

// CC вызовет:
mcp__ruflo__workflow_create → сохранить пайплайн
mcp__ruflo__workflow_execute → запустить с параметрами
mcp__ruflo__workflow_status → отслеживать прогресс
🖥️
Изолированные терминалы
mcp__ruflo__terminal_*
Именованные терминальные сессии с изоляцией окружения. Несколько агентов могут выполнять команды параллельно без конфликтов по рабочей директории, переменным окружения и stdout. История команд сохраняется для аудита.
terminal_create terminal_execute terminal_list terminal_history terminal_close
Зачем нужны изолированные терминалы
// Без RuFlo: один терминал, команды выполняются последовательно
cd /app && npm test
cd /api && python manage.py test  // нужно ждать первого

// С RuFlo terminal_*: параллельно в разных сессиях
terminal_create: "frontend_tests" → cwd=/app
terminal_create: "backend_tests"  → cwd=/api

// Одновременно:
terminal_execute: "frontend_tests" → "npm test"
terminal_execute: "backend_tests"  → "python manage.py test"

// Через 30 сек:
terminal_history: "frontend_tests" → результат npm test
terminal_history: "backend_tests"  → результат python tests
🌐
Браузерная автоматизация
mcp__ruflo__browser_*
Полный набор инструментов для управления браузером: навигация, взаимодействие с элементами (клики, ввод текста, заполнение форм, выбор опций), снимки экрана, выполнение JavaScript, чтение DOM. Подходит для UI-тестирования, автоматизации и веб-скрапинга.
browser_open browser_click browser_type browser_screenshot browser_fill browser_eval browser_get_text browser_get_title browser_get_url browser_get_value browser_hover browser_scroll browser_select browser_snapshot browser_wait browser_press browser_reload browser_check browser_forward browser_back browser_close browser_session_list
Use case: автоматизированная проверка формы регистрации
"Открой localhost:8000/register, заполни форму тестовыми данными,
отправь и проверь что пришло письмо с подтверждением"

// CC вызовет последовательно:
mcp__ruflo__browser_open:       url="http://localhost:8000/register"
mcp__ruflo__browser_fill:       selector="#name", value="Test User"
mcp__ruflo__browser_fill:       selector="#email", value="test@example.com"
mcp__ruflo__browser_fill:       selector="#password", value="SecurePass123"
mcp__ruflo__browser_click:      selector="button[type=submit]"
mcp__ruflo__browser_wait:       condition="url_contains(/verify)"
mcp__ruflo__browser_screenshot: filename="registration_success.png"
mcp__ruflo__browser_get_text:   selector=".success-message"
🔢
Embeddings — векторный поиск
mcp__ruflo__embeddings_*
Генерация векторных представлений текста и семантический поиск. В отличие от полнотекстового поиска по ключевым словам, embeddings понимают смысл: запрос "аутентификация пользователей" найдёт код с "JWT", "passport", "login", "session" — без указания этих слов.
embeddings_generate embeddings_search embeddings_compare embeddings_init embeddings_hyperbolic embeddings_neural embeddings_status
Семантический поиск по кодовой базе
"Найди все места в проекте где реализована логика оплаты —
семантически, не только по слову payment"

// CC вызовет:
mcp__ruflo__embeddings_init:     → инициализировать индекс кодовой базы
mcp__ruflo__embeddings_generate: text="payment processing logic"
mcp__ruflo__embeddings_search:   query_vector=..., top_k=20

// Найдёт файлы с: billing, checkout, invoice, stripe, transaction,
// charge, subscription — даже если слово "payment" там не встречается
Сравнение двух фрагментов кода
"Эти два класса делают одно и то же?"

// CC вызовет:
mcp__ruflo__embeddings_compare:
  text_a: "class OrderRepository { ... }"
  text_b: "class InvoiceStore { ... }"
→ similarity: 0.87  // высокое сходство → дублирование кода
🧬
Нейронные сети
mcp__ruflo__neural_*
Встроенные ML-возможности: дообучение моделей на данных проекта, предсказание паттернов, оптимизация производительности нейросетевых моделей. Подходит для проектов с ML-компонентами.
neural_train neural_predict neural_patterns neural_optimize neural_compress neural_status
Примеры
// Обучить модель на паттернах кодовой базы:
mcp__ruflo__neural_train:
  data: "project_code_patterns",
  model: "code_completion"

// Предсказать следующий паттерн:
mcp__ruflo__neural_predict:
  input: "function getUserOrders(",
  model: "code_completion"
  → предложит сигнатуру на основе паттернов проекта

// Найти повторяющиеся паттерны в коде:
mcp__ruflo__neural_patterns: → "обнаружен паттерн: N+1 запрос в 12 местах"
🤖
DAA — Dynamic Adaptive Agents
mcp__ruflo__daa_*
Адаптивные агенты следующего уровня, которые обучаются в процессе работы: запоминают успешные стратегии, адаптируют поведение под специфику проекта, формируют когнитивные паттерны. DAA — это агенты с долгосрочной памятью о методах работы.
daa_agent_create daa_workflow_create daa_agent_adapt daa_cognitive_pattern daa_knowledge_share daa_learning_status daa_performance_metrics daa_workflow_execute
Чем DAA отличается от обычных агентов
// Обычный agent_spawn:
→ агент создаётся, выполняет задачу, завершается, не помнит ничего

// daa_agent_create:
→ агент запоминает стратегии, адаптируется, делится знаниями с роем
→ "Я уже видел эту ошибку в Laravel — вот оптимальное решение"
→ когнитивные паттерны накапливаются между сессиями

// daa_cognitive_pattern:
→ "В вашем проекте 87% ошибок авторизации — missing middleware"
→ "Оптимальная стратегия рефакторинга для этого проекта: ..."
🔐
AI Defence — защита от атак
mcp__ruflo__aidefence_*
Инструменты безопасности для многоагентных систем: защита от prompt injection атак, обнаружение PII-данных в промптах и ответах, анализ безопасности пользовательского ввода, обучение системы на новых угрозах.
aidefence_is_safe aidefence_scan aidefence_has_pii aidefence_analyze aidefence_learn aidefence_stats
Проверка перед выполнением опасных операций
// Проверить пользовательский ввод перед передачей агенту:
mcp__ruflo__aidefence_is_safe:
  input: "user_provided_prompt"
  → safe: false, reason: "possible prompt injection: 'ignore previous instructions'"

// Проверить данные на наличие персональной информации:
mcp__ruflo__aidefence_has_pii:
  text: "email: john@example.com, card: 4242-4242-4242-4242"
  → has_pii: true, types: ["email", "credit_card"]
  → нужно маскировать перед логированием
🚨
Важно для публичных приложений: при использовании агентов, обрабатывающих пользовательский ввод, всегда вызывайте aidefence_scan перед передачей данных агентам. Prompt injection может скомпрометировать всю агентную систему.
📊
Мониторинг и производительность
mcp__ruflo__performance_* / system_*
Метрики в реальном времени: производительность агентов и роя, ресурсы системы, узкие места, отчёты оптимизации. Незаменим при отладке зависших агентов или поиске причин низкой скорости workflow.
performance_report system_health performance_metrics performance_bottleneck performance_benchmark performance_optimize performance_profile system_info system_status system_metrics system_reset
Диагностика медленного workflow
"Почему workflow feature_development работает так медленно?"

// CC вызовет:
mcp__ruflo__performance_bottleneck: workflow="feature_development"
→ "Шаг review занимает 78% времени. Агент reviewer перегружен задачами.
   Рекомендуется: spawn дополнительный reviewer агент или
   разбить review на параллельные под-задачи."

mcp__ruflo__system_health:
→ cpu: 34%, memory: 67%, agents_active: 8, queue_depth: 23
🪝
Hooks Intelligence — умные хуки с ML
mcp__ruflo__hooks_*
Расширение стандартных хуков Claude Code с ML-возможностями. Hooks Intelligence обучается на паттернах использования, предсказывает оптимальные действия, маршрутизирует задачи к специализированным агентам, уведомляет о завершении операций.
hooks_intelligence hooks_pre_edit hooks_post_edit hooks_pre_command hooks_post_command hooks_pre_task hooks_post_task hooks_notify hooks_route hooks_metrics hooks_list hooks_init hooks_explain hooks_intelligence_learn hooks_intelligence_stats hooks_model_route hooks_session_start hooks_session_end
Умная маршрутизация задач к агентам
// hooks_route автоматически определяет тип задачи:
mcp__ruflo__hooks_route:
  task: "проанализируй этот SQL запрос и оптимизируй"
  → routing: "database_expert_agent"  // не generic coder

// hooks_intelligence_learn — обучение на паттернах:
→ "80% задач с словом 'оптимизируй' требуют profile-инструмента"
→ "После edit PHP-файлов часто нужен phpcs — добавляю в post_edit hook"

Практические примеры

Пример 1
Параллельная разработка фичи с роем агентов
Вместо последовательной работы одного Claude, запускаем специализированных агентов параллельно. Экономия времени — 60-70% на крупных фичах.
// Скажи CC:
"Используй RuFlo swarm для параллельной реализации feature: корзина покупок.
Нужны: planner (создаёт спецификацию), coder (backend Laravel API),
frontend-coder (Vue компоненты), tester (phpunit + jest тесты), reviewer."

// CC выполнит:
1. mcp__ruflo__swarm_init         → создать рой из 5 агентов
2. mcp__ruflo__workflow_create    → пайплайн с зависимостями
3. mcp__ruflo__agent_spawn ×5    → запустить каждого агента
4. mcp__ruflo__coordination_orchestrate → распределить задачи
5. mcp__ruflo__workflow_status   → отслеживать прогресс
6. mcp__ruflo__coordination_sync → объединить результаты
Пример 2
Персистентная память: архитектурные решения между сессиями
Сохраняем критически важные решения, которые должны быть доступны в любой будущей сессии — без необходимости объяснять контекст заново.
// Первая сессия:
"Сохрани в RuFlo memory следующие архитектурные решения проекта:
1. CQRS для модуля orders
2. Event Sourcing для аудит-лога
3. Redis для session и cache (не база данных)
4. Все API через /api/v1/ с versioning"

// CC вызовет:
mcp__ruflo__memory_store: key="arch/orders",   value="CQRS pattern"
mcp__ruflo__memory_store: key="arch/audit",    value="Event Sourcing"
mcp__ruflo__memory_store: key="arch/cache",    value="Redis only, no DB"
mcp__ruflo__memory_store: key="arch/api",      value="versioned /api/v1/"

// Следующая сессия (неделю спустя):
"Как добавить новую API конечную точку для модуля orders?"

// CC автоматически вызовет:
mcp__ruflo__memory_search: query="orders module architecture"
→ найдёт: CQRS, Command через CommandBus, QueryRepository
→ сразу учтёт в реализации — не нужно объяснять заново
Пример 3
Автоматизированное E2E тестирование через браузер
Полный цикл браузерной автоматизации: авторизация, навигация, взаимодействие с UI, проверка результатов.
// Скажи CC:
"Используй mcp__ruflo__browser_* для полного E2E теста:
1. Открой localhost:8000
2. Авторизуйся как admin@example.com / password
3. Создай новый продукт через форму
4. Проверь что продукт появился в каталоге
5. Сделай скриншоты каждого шага"

// CC выполнит:
browser_open:       "http://localhost:8000/login"
browser_fill:       "#email" → "admin@example.com"
browser_fill:       "#password" → "password"
browser_click:      "button[type=submit]"
browser_wait:       condition="url=/dashboard"
browser_screenshot: "01_logged_in.png"
browser_open:       "http://localhost:8000/products/create"
browser_fill:       "#name" → "Test Product"
browser_fill:       "#price" → "999"
browser_click:      "#submit"
browser_wait:       condition="success_message_visible"
browser_screenshot: "02_product_created.png"
browser_open:       "http://localhost:8000/catalog"
browser_get_text:   ".product-list" → проверить наличие нового продукта
browser_screenshot: "03_catalog_verified.png"
Пример 4
Семантический поиск дублированной логики
Находим дублированный код не по ключевым словам, а по смысловому сходству — работает даже если функции называются по-разному.
// Скажи CC:
"Используй ruflo embeddings для поиска дублированной логики авторизации.
Найди все места где проверяются права доступа пользователя —
независимо от названий функций и классов."

// CC вызовет:
mcp__ruflo__embeddings_init:     → индексировать кодовую базу
mcp__ruflo__embeddings_generate: → вектор для "authorization access control"
mcp__ruflo__embeddings_search:   → top_k=30

// Найдёт файлы:
- Middleware/AuthMiddleware.php          (similarity: 0.94)
- Policies/UserPolicy.php               (similarity: 0.91)
- Services/PermissionService.php        (similarity: 0.88)
- Http/Controllers/AdminController.php  (similarity: 0.85) // неожиданно!
- Traits/HasPermissions.php             (similarity: 0.83)

// CC: "Обнаружено дублирование в AdminController —
//  логика проверки прав дублирует PermissionService.
//  Рекомендую инжектировать PermissionService."

RuFlo vs обычные MCP серверы

Возможность Обычный MCP сервер RuFlo MCP
Управление агентами ❌ отсутствует ✅ spawn / terminate / pool
Память между сессиями ❌ контекст сбрасывается ✅ персистентное хранилище
Рой агентов (Swarm) ❌ только один контекст ✅ координация N агентов
Браузерная автоматизация ❌ нужен отдельный MCP ✅ встроен, 22 инструмента
Изолированные терминалы ❌ один общий контекст ✅ именованные сессии
Семантический поиск ❌ только grep/find ✅ embeddings + vector search
ML / нейронные сети ❌ отсутствует ✅ neural_train / predict
AI Defence / PII проверка ❌ отсутствует ✅ aidefence_scan / has_pii
Мониторинг в реальном времени ❌ нет метрик ✅ performance_metrics
Автоматизированные workflows ❌ ручное управление ✅ декларативные пайплайны
Адаптивные агенты (DAA) ❌ отсутствует ✅ обучаются на паттернах
Количество инструментов ~10–50 200+

Советы по работе с RuFlo

💡
Начните с малого: не пытайтесь использовать все 200+ инструментов сразу. Освойте по одной группе: сначала memory_* для персистентности, затем agent_* для параллелизма, потом swarm_* для сложных задач.
⚠️
ToolSearch обязателен: из-за 200+ инструментов RuFlo никогда не загружает схемы всех инструментов сразу. Используйте ToolSearch с select:mcp__ruflo__memory_store,mcp__ruflo__memory_retrieve перед первым вызовом группы.
Промпты для CC: достаточно описать задачу на русском языке — Claude сам определит нужные инструменты RuFlo. Например: "Сохрани это в память" → memory_store; "Создай агента-планировщика" → agent_spawn; "Запусти параллельно" → swarm_init.
// Эффективные промпты для RuFlo:

✅ "Сохрани в RuFlo memory: [информация]"
✅ "Создай агента с ролью [роль] для [задача]"
✅ "Используй RuFlo swarm для параллельной разработки [фича]"
✅ "Найди через embeddings все места где [логика]"
✅ "Автоматизируй через браузер: [шаги]"
✅ "Создай workflow для [процесс] с шагами: [шаги]"
✅ "Проверь через aidefence безопасность [ввод пользователя]"

❌ "Вызови mcp__ruflo__agent_spawn с параметрами..."  // избыточно
❌ "Используй RuFlo для всего"  // слишком расплывчато

Следующие шаги

RuFlo — фундамент для построения сложных мульти-агентных систем. Изучите связанные темы для углублённого понимания:

🔥
Мульти-агентные системы (Expert)
Используете RuFlo для параллельных агентов? Читайте продвинутый уровень: архитектура роёв, паттерны координации, отказоустойчивость.
🪝
Hooks в Claude Code
RuFlo Hooks Intelligence расширяет стандартные хуки CC. Изучите базовый механизм хуков для полного понимания hooks_* инструментов.
🔌
MCP серверы
Общий обзор MCP-протокола и других серверов (context7, playwright, docker). RuFlo — один из многих MCP, интегрируйте вместе.
🔄
Рабочий процесс
Как встроить RuFlo swarm и workflow в повседневный рабочий процесс разработки в команде.
Подсказка: RuFlo полностью интегрирован с Claude Code через стандартный MCP-протокол. Все инструменты доступны как mcp__ruflo__* и вызываются автоматически когда CC решает, что они нужны для задачи. Никакого специального синтаксиса — просто опишите что хотите сделать.