ИИ-функции
Mockarty интегрирует искусственный интеллект по всей платформе, чтобы помочь вам генерировать моки, писать тестовые скрипты, диагностировать ошибки, анализировать производительность и многое другое. Каждая ИИ-функция следует единому паттерну: кнопка действия, шестерёнка настроек для кастомизации и результаты, отображаемые в формате Markdown.


URL-адреса в примерах: Во всех примерах используется
localhost:5770как адрес Mockarty по умолчанию. Если ваш экземпляр работает на удалённом сервере, заменитеlocalhost:5770на реальный адрес (например,https://mockarty.company.comилиhttp://192.168.1.50:5770). Подробнее — в разделе Полезные функции и советы.
Что такое ИИ-агент? Зачем он нужен для тестирования?
ИИ-агент – это программный ассистент на основе большой языковой модели (LLM), который понимает инструкции на естественном языке и выполняет действия от вашего имени. Вместо того чтобы кликать по меню и заполнять формы, вы описываете, что вам нужно, обычным текстом, а агент разбирается, как это сделать.
В контексте тестирования и моков API, ИИ-агент может:
- Генерировать моки по описанию – «Создай мок для GET /api/users, возвращающий 10 пользователей с реалистичными именами и email» превращается в полностью настроенный мок за секунды.
- Диагностировать ошибки – вставьте ответ с ошибкой, и агент объяснит причину и предложит исправление.
- Писать тестовые скрипты – агент анализирует ваш запрос/ответ и автоматически пишет ассерты.
- Запускать сканирование безопасности – попросите агента профаззить эндпоинт, и он настроит и запустит тест безопасности.
- Запрашивать базы данных, вызывать API, отправлять уведомления – агент имеет доступ к более чем 90 встроенным инструментам, позволяющим взаимодействовать с реальными системами от вашего имени.
Вам не нужны знания ИИ или машинного обучения. Если вы можете описать, что вам нужно, в сообщении чата, агент поможет.
Быстрый старт: ваш первый мок с помощью ИИ
Выполните эти шаги, чтобы создать первый мок с помощью ИИ. Общее время: менее 2 минут.
Предварительные требования: Администратор должен настроить хотя бы один LLM-профиль (см. Начало работы).
- Откройте конструктор моков – перейдите в раздел Mocks в боковом меню, затем нажмите Create Mock.
- Нажмите кнопку «Generate Mock» – она расположена в панели инструментов над редактором мока.
- Опишите, что вам нужно – например:
Создай REST-мок для GET /api/products, возвращающий JSON-массив из 5 товаров. У каждого товара должны быть: id (число), name (реалистичное название товара), price (десятичное число от 10 до 500) и inStock (boolean).
- Проверьте сгенерированный мок – ИИ заполняет маршрут, HTTP-метод, тело ответа с Faker-функциями и код 200.
- Нажмите Save – ваш мок работает. Отправьте запрос на
http://localhost:5770/stubs/sandbox/api/products, чтобы увидеть его в действии.
Вот и всё. Для доработки нажмите Improve Mock, чтобы добавить обработку ошибок, граничные случаи или дополнительные условия.
Содержание
- Что такое ИИ-агент?
- Быстрый старт: ваш первый мок с помощью ИИ
- Начало работы
- LLM-профили
- Выбор модели
- Справочник ИИ-кнопок
- Настройки ИИ (кнопка-шестерёнка)
- MCP Marketplace
- Система ИИ-агентов
- Пользовательские агенты
- Интеграция с маркетплейсом
- Протокол A2A (Agent-to-Agent)
- Руководство администратора
- Уведомления
- Советы для лучших результатов
- Устранение неполадок
Начало работы
Для работы ИИ-функций требуется хотя бы один включённый LLM-профиль. Перейдите в Admin → AI & LLM → LLM Profiles, чтобы создать его. Mockarty поддерживает следующих LLM-провайдеров:
| Провайдер | Описание | API-ключ |
|---|---|---|
| OpenAI | GPT-4o, GPT-4o-mini и другие модели OpenAI | Да |
| Anthropic | Claude Sonnet, Claude Haiku и другие модели Anthropic | Да |
| Модели Gemini через Google AI Studio | Да | |
| OpenRouter | Доступ к 200+ моделям через один API-ключ | Да |
| Ollama | Запуск моделей локально (Qwen, Llama, Mistral и др.) – данные не покидают вашу машину | Нет |
| Mistral | Модели Mistral AI | Да |
| Groq | Сверхбыстрый инференс для поддерживаемых моделей | Да |
| Custom | Любой OpenAI-совместимый эндпоинт (например, vLLM, LocalAI, LiteLLM) | Зависит |
После настройки профиля ИИ-кнопки появляются по всей платформе.


LLM-профили
Каждый профиль определяет:
- Провайдер — какой LLM-сервис использовать
- Модель — модель по умолчанию (например,
gpt-4o,claude-sonnet-4-20250514,qwen3:8b) - API-ключ — учётные данные (не требуется для Ollama)
- Базовый URL — переопределение для self-hosted или пользовательских эндпоинтов
- Доступные модели — модели, которые пользователи могут выбирать в этом профиле
- Включён — переключатель активности профиля
Если включён только один профиль, он используется автоматически. Когда существует несколько профилей, пользователи выбирают нужный для каждой ИИ-функции.
Выбор подходящего профиля:
- Для быстрых операций (генерация скриптов, диагностика ошибок): используйте быструю модель, например
gpt-4o-miniилиclaude-haiku - Для сложного анализа (анализ производительности, аудит безопасности, генерация отчётов): используйте мощную модель, например
gpt-4oилиclaude-sonnet - Для экономии бюджета: используйте Ollama с локальной моделью
- Для экспериментов: OpenRouter предоставляет доступ ко многим моделям через один API-ключ
Выбор модели
Вы можете выбрать LLM-модель на двух уровнях:
Для каждой ИИ-функции
Каждая ИИ-кнопка (Generate Mock, Diagnose Error и др.) имеет иконку шестерёнки, позволяющую выбрать:
- LLM-профиль — какого провайдера и какие учётные данные использовать
- Модель — конкретную модель внутри профиля
Разные функции могут использовать разные модели. Например, быструю модель для генерации скриптов и мощную модель для анализа безопасности.
В чате агента
Виджет чата агента имеет селектор модели в заголовке. Вы можете переключать модели посреди разговора — новая модель применяется к последующим сообщениям, при этом контекст беседы сохраняется.
Привязка модели к пользовательскому агенту
Администраторы могут привязать конкретный LLM-профиль и переопределение модели к пользовательскому агенту. Когда сообщение маршрутизируется к такому агенту, его привязанная модель используется автоматически, независимо от выбора пользователя. См. Привязка LLM-профиля.
Справочник ИИ-кнопок
Конструктор моков
| Кнопка | Что делает | Когда использовать |
|---|---|---|
| Generate Mock | Опишите, что вам нужно, на естественном языке → ИИ создаст полный мок с маршрутами, условиями, faker-полями | Начало с нуля или быстрое прототипирование |
| Improve Mock | Отправьте текущий мок в ИИ → получите предложения по обработке ошибок, граничным случаям, обогащению faker | После создания базового мока, чтобы сделать его более реалистичным |
API Tester
| Кнопка | Что делает | Когда использовать |
|---|---|---|
| Generate Script | ИИ пишет тестовый скрипт на основе вашего запроса/ответа. Поддерживает API скриптов mk.* и формат Visual Script Builder |
После выполнения запроса, чтобы добавить ассерты |
| Generate Perf Script | ИИ пишет k6-совместимый нагрузочный тест с этапами VU, проверками, порогами | Планирование нагрузочного теста для эндпоинта |
| Diagnose Error | Отправьте неудачный запрос/ответ в ИИ → получите анализ причин и предложения по исправлению | При получении неожиданных ошибок (4xx/5xx) |
| API Diff | Вставьте две спецификации OpenAPI → ИИ определит критические, дополнительные изменения и устаревания | Перед деплоем новой версии API |
| Log Analysis | Отправьте логи запросов → ИИ обнаружит аномалии, паттерны, проблемы производительности | Расследование периодических сбоев |
| Generate Collection | Опишите ваш API → ИИ создаст тестовую коллекцию с множеством запросов | Настройка комплексного тестирования API |
| Analyze Report | ИИ анализирует результаты тестового прогона на готовность к релизу: оценка рисков, причины сбоев, рекомендации | После завершения тестового прогона, перед принятием решения о релизе |
Fuzzing
| Кнопка | Что делает | Когда использовать |
|---|---|---|
| Analyze Finding | ИИ анализирует отдельную находку безопасности: серьёзность, влияние, рекомендации по устранению | Разбор конкретной аномалии |
| Batch Analyze | Выберите несколько находок → ИИ анализирует все с кратким резюме | Обзор нескольких находок одновременно |
| Batch Auto-Triage | Выберите аномалии → ИИ классифицирует каждую как confirmed / false_positive / fixed / accepted | Быстрая сортировка большого списка находок |
Рекордер
| Кнопка | Что делает | Когда использовать |
|---|---|---|
| Analyze Traffic | ИИ анализирует записанный API-трафик на паттерны, цепочки, аномалии | После записи сессии, чтобы понять поток трафика |
| Security Audit | ИИ выполняет анализ безопасности записанного трафика | Проверка записанного трафика на уязвимости |
| Find Scenarios | ИИ определяет тестовые сценарии из записанных паттернов запросов | Создание тест-кейсов из реального трафика |
Производительность
| Кнопка | Что делает | Когда использовать |
|---|---|---|
| Analyze Results | ИИ анализирует метрики нагрузочного теста (задержка, частота ошибок, APDEX) с практическими рекомендациями | После завершения нагрузочного теста |
Настройки ИИ (кнопка-шестерёнка)
Каждая ИИ-кнопка имеет иконку шестерёнки, которая открывает панель настроек с тремя элементами управления:

1. ИИ-профиль
Выберите, какой LLM-профиль использовать для конкретной операции. Разные профили могут иметь разные модели (быстрые vs. умные) или разные ценовые уровни.
Пример: Используйте быструю модель для генерации скриптов, но мощную модель для анализа безопасности.
2. Пользовательский промпт
Добавьте дополнительные инструкции для ИИ. Они добавляются к системному промпту и позволяют настроить поведение ИИ без изменения кода.
Практические примеры:
| Случай использования | Пользовательский промпт |
|---|---|
| Язык | “Write the response in Russian” или “Respond in Japanese” |
| Область фокуса | “Focus specifically on SQL injection vulnerabilities” |
| Формат | “Output the result as a numbered list with severity ratings” |
| Доменный контекст | “This is a healthcare API, pay attention to HIPAA compliance” |
| Проверка SLA | “Compare against our SLA: p95 < 200ms, error rate < 0.1%” |
| Стиль | “Use our company’s coding style: camelCase, JSDoc comments” |
| Уровень детализации | “Give a brief summary, no more than 3 paragraphs” |
Пользовательский промпт сохраняется для каждой функции — ваш промпт для “Generate Script” не повлияет на “Diagnose Error”.
3. MCP-инструменты
Если ваш администратор настроил инструменты MCP Marketplace, вы можете выбрать, какие внешние инструменты ИИ может использовать во время операции. Когда инструменты выбраны:
- Они отправляются в LLM вместе с вашим запросом
- LLM может вызывать инструменты во время генерации (например, запрос к реальному API, получение актуальных данных)
- Результаты инструментов передаются обратно в LLM для более точного ответа
- Финальный ответ включает данные в реальном времени из инструментов
Пример: У вас есть OpenAPI-инструмент, указывающий на staging-сервер. При генерации мока ИИ может вызвать реальный API, чтобы понять структуру ответа, а затем создать мок, точно повторяющий реальное поведение.
Каждая функция хранит свои выборы инструментов независимо — инструменты, включённые для “Generate Mock”, не влияют на “Diagnose Error”.
MCP Marketplace
Что такое MCP Marketplace?
MCP Marketplace — это система интеграции инструментов, которая позволяет вашему администратору подключать внешние API, сервисы и ИИ-агентов к функциям искусственного интеллекта Mockarty. После подключения их возможности становятся инструментами, которые ИИ может вызывать во время любой операции.
Основная идея: Вместо того чтобы ИИ опирался только на собственные знания, он получает возможность вызывать реальные API, запрашивать базы данных, взаимодействовать с внешними сервисами и сотрудничать с другими ИИ-агентами — всё в рамках одной операции.
Пример рабочего процесса:
- Администратор регистрирует OpenAPI-спецификацию вашего staging API в маркетплейсе
- Каждый эндпоинт в спецификации становится доступным инструментом (например,
GET /api/users→ инструментgetUsers) - Когда вы просите ИИ «сгенерировать мок для API пользователей», он может вызвать реальный эндпоинт
getUsers - ИИ видит реальную структуру ответа, типы полей и реалистичные данные
- Он генерирует мок, точно отражающий ваш реальный API

Типы источников
Маркетплейс поддерживает шесть типов интеграции, каждый из которых преобразует свой протокол в инструменты, доступные для вызова ИИ:
| Тип источника | Что подключает | Как создаются инструменты | Лучше всего для |
|---|---|---|---|
| MCP Server | Сервер Model Context Protocol | Сервер сам сообщает свои инструменты через JSON-RPC | Специализированные серверы ИИ-инструментов (Playwright, доступ к файловой системе, инструменты базы данных) |
| OpenAPI | REST API (Swagger/OpenAPI спецификация) | Каждый эндпоинт автоматически становится инструментом | Любой HTTP API с документацией |
| WSDL | SOAP Web-сервис | Каждая SOAP-операция становится инструментом | Устаревшие корпоративные сервисы |
| gRPC | gRPC-сервис | Обнаруживает методы через серверную рефлексию; вызовы проксируются как реальные gRPC-запросы | API микросервисов |
| A2A Agent | Внешний ИИ-агент | Возможности агента становятся инструментами | Мультиагентные ИИ-потоки |
| RAG | База знаний (RAGFlow, AnythingLLM, Dify, R2R) | Адаптер автоматически обнаруживает инструменты поиска/списка | Документация компании, спецификации API, стандарты кодирования. Подробное руководство см. в База знаний (RAG). |
Как инструменты создаются из API
OpenAPI (REST API)
Когда вы регистрируете URL OpenAPI/Swagger-спецификации, Mockarty:
- Загружает и парсит спецификацию (JSON или YAML)
- Преобразует каждый эндпоинт в инструмент:
- Имя инструмента = operation ID или метод + путь (например,
getUserById) - Описание = summary эндпоинта из спецификации
- Входные параметры = path-параметры, query-параметры, заголовки, тело запроса — всё с типами из спецификации
- Тег = первый OpenAPI-тег (для группировки)
- Имя инструмента = operation ID или метод + путь (например,
- Когда ИИ вызывает инструмент, Mockarty формирует реальный HTTP-запрос и выполняет его
Пример: Спецификация OpenAPI с GET /api/users/{id} становится инструментом getUserById с параметром id. ИИ вызывает его с {"id": "123"}, и Mockarty выполняет реальный HTTP-запрос, возвращая ответ ИИ.
WSDL (SOAP-сервисы)
Когда вы регистрируете URL WSDL, Mockarty:
- Парсит документ WSDL
- Извлекает все операции из типов портов
- Создаёт инструменты с префиксом
soap_(например,soap_GetCustomerInfo) - Автоматически формирует SOAP XML-конверт при вызове инструмента ИИ
Это позволяет ИИ взаимодействовать с устаревшими SOAP-сервисами без знания XML или протокола SOAP — он просто передаёт JSON-параметры.
MCP-сервер
Серверы MCP (Model Context Protocol) — это специализированные провайдеры инструментов:
- Mockarty подключается к серверу через JSON-RPC
- Вызывает
tools/listдля обнаружения доступных инструментов - Каждый инструмент имеет имя, описание и JSON Schema входных данных
- Вызовы инструментов проходят через
tools/callпо JSON-RPC
Stateful-сессии: MCP-серверы могут сохранять состояние между вызовами инструментов в рамках одного разговора. Например, MCP-сервер Playwright может открыть браузер в одном вызове и переходить по страницам в последующих — всё в рамках одной сессии чата.
A2A-агент
Интеграция Agent-to-Agent подключается к внешним ИИ-агентам:
- Mockarty загружает карточку агента из
/.well-known/agent.json - Навыки агента становятся доступными инструментами
- Вызовы инструментов проксируются к внешнему агенту
Пользовательские заголовки и переопределение учётных данных
Многие внешние API требуют аутентификации. Mockarty обрабатывает это на двух уровнях:
Аутентификация на уровне сервера (устанавливается администратором):
| Тип аутентификации | Что отправляется |
|---|---|
| None | Без заголовков аутентификации |
| Bearer | Authorization: Bearer {token} |
| API Key | Пользовательский заголовок (например, X-API-Key: {key}) |
| Basic | Authorization: Basic base64(user:pass) |
| Custom Headers | Любой набор заголовков (например, {"X-Tenant": "prod", "Authorization": "..."}) |
Переопределение заголовков на уровне пользователя:
Каждый пользователь может переопределить заголовки аутентификации сервера для каждой функции. Это полезно, когда:
- Разным членам команды нужны разные учётные данные (например, dev vs. staging)
- Вы хотите тестировать на разных окружениях
- Инструменту нужны индивидуальные API-ключи для каждого пользователя
Как установить пользовательские заголовки:
- Откройте шестерёнку настроек ИИ для любой функции
- В секции MCP-инструментов раскройте область «Custom Headers» для нужного сервера
- Добавьте или переопределите заголовки с помощью пар ключ-значение
- Нажмите «Сохранить»
Ваши переопределения заголовков объединяются поверх заголовков сервера по умолчанию во время выполнения. Если вы установите Authorization: Bearer my-token, это заменит аутентификацию сервера по умолчанию только для ваших запросов.

Жизненный цикл инструментов
После регистрации сервера в маркетплейсе:
- Обнаружение: Фоновый воркер обновляет списки инструментов периодически (по умолчанию: каждые 2 часа, настраивается для каждого сервера)
- Проверка здоровья: Воркер также проверяет доступность сервера и обновляет статус (
online,offline,error) - Кэширование: Обнаруженные инструменты сохраняются в базе данных для быстрой загрузки
- Выбор: Пользователи выбирают, какие инструменты включить для каждой ИИ-функции через шестерёнку настроек
- Выполнение: Когда ИИ вызывает инструмент, Mockarty маршрутизирует вызов через соответствующий адаптер
- Результат: Результат инструмента возвращается ИИ для включения в финальный ответ
Администраторы могут запускать ручные проверки здоровья и обновления инструментов со страницы маркетплейса.
Система ИИ-агентов
Обзор
Система ИИ-агентов (ADK — Agent Development Kit) обеспечивает интеллектуальное многошаговое взаимодействие с ИИ. В отличие от одиночных ИИ-кнопок (которые выполняют одно действие и возвращают результат), система агентов может:
- Маршрутизировать ваш запрос к специализированному суб-агенту
- Выполнять несколько вызовов инструментов параллельно
- Поддерживать контекст разговора между сообщениями
- Запускать фоновые задачи асинхронно
- Использовать более 90 встроенных инструментов для CRUD моков, тестирования API, запросов к базам данных, отправки уведомлений и многого другого
Виджет чата с агентом
Плавающий виджет чата в правом нижнем углу соединяет вас с системой агентов.

Как это работает:
- Напишите сообщение, описывающее, что вам нужно
- Система маршрутизирует ваше сообщение к наиболее подходящему суб-агенту
- Агент анализирует запрос и может вызвать инструменты (вы увидите вызовы инструментов в чате)
- Если вызовы инструментов требуют одобрения, вам будет предложено подтвердить или отклонить
- Агент возвращает ответ с учётом результатов инструментов
- Контекст разговора сохраняется — последующие сообщения строятся на предыдущем контексте
Ключевые возможности:
- Потоковые ответы — вы видите процесс «размышления» ИИ в реальном времени
- Прозрачность вызовов инструментов — видите, какие инструменты вызываются и их результаты
- Одобрение инструментов — для инструментов, изменяющих данные, вы подтверждаете перед выполнением
- Сохранение сессий — закройте чат и вернитесь позже, контекст сохранён
- Множественные сессии — начинайте новые разговоры или продолжайте существующие
Архитектура суб-агентов
Система агентов использует мультиагентную архитектуру с 13 специализированными суб-агентами и оркестратором. Каждый суб-агент оптимизирован для конкретной предметной области и имеет доступ только к тем инструментам, которые относятся к его специализации.
Принцип работы
Когда вы отправляете сообщение, оркестратор маршрутизирует его к наиболее подходящему суб-агенту на основе ключевых слов. Каждый суб-агент имеет:
- Доменно-специфичный системный промпт, направляющий его поведение
- Отфильтрованный набор инструментов, содержащий только необходимые для работы инструменты
- Ключевые слова маршрутизации, определяющие, когда он активируется
Если ни один суб-агент не подходит, оркестратор обрабатывает запрос напрямую, имея доступ ко всем утилитным, базовым и уведомительным инструментам.
13 встроенных суб-агентов + оркестратор
| Суб-агент | Область | Что делает | Примеры запросов |
|---|---|---|---|
| mock_builder | Управление моками | Создаёт, обновляет и управляет HTTP/gRPC/MCP/SOAP моками. Генерирует моки из OpenAPI-спецификаций. Использует Faker-функции для динамических данных. Тестирует и валидирует конфигурации моков. | «Создай мок для GET /api/users, возвращающий 10 пользователей с email и ролью» |
| api_tester | Тестирование API | Управляет тестовыми коллекциями и наборами тестов. Запускает тесты и выдаёт результаты. Импортирует коллекции Postman и OpenAPI. Поддерживает ассерты и окружения. | «Запусти мою коллекцию тестов логина и покажи, какие тесты упали» |
| recorder | Запись трафика | Записывает и воспроизводит API-трафик, управляет прокси-сессиями, экспортирует в HAR/коллекции/тестовые скрипты. Поддерживает обратный прокси, прямой прокси с MITM, запись WebSocket/SSE. | «Начни запись трафика с моего staging-сервера на порту 8080» |
| fuzzer | Тестирование безопасности | Настраивает и запускает фаззинг-кампании безопасности для API. Находит уязвимости (SQL-инъекции, XSS и др.). Перечисляет, сортирует и классифицирует аномалии по серьёзности. | «Запусти фаззинг эндпоинта /api/search на SQL-инъекции» |
| perf_tester | Тестирование производительности | Запускает нагрузочные и стресс-тесты с настраиваемым количеством виртуальных пользователей. Генерирует k6-совместимые тестовые скрипты. Сравнивает метрики между прогонами (задержка, пропускная способность, частота ошибок). | «Запусти нагрузочный тест /api/orders с 50 VU на 2 минуты» |
| contract_tester | Контрактное тестирование | Валидирует моки по API-спецификациям, проверяет совместимость с провайдером, проверяет обратную совместимость. Поддерживает OpenAPI, gRPC proto, GraphQL-схемы. | «Провалидируй мои моки по OpenAPI-спецификации на наличие критических изменений» |
| analyzer | Анализ | Анализ только для чтения: моки, результаты тестов, логи, API-спецификации и аномалии фаззинга. Предоставляет структурированные рекомендации в виде markdown-таблиц. Может запрашивать базу данных для получения инсайтов. | «Проанализируй мой последний прогон — что упало и почему?» |
| code_generator | Генерация кода | Генерирует конфигурации моков из OpenAPI, gRPC (.proto) и WSDL-спецификаций. Создаёт автономные мок-серверы. Показывает предварительный просмотр перед применением. | «Сгенерируй моки из этой OpenAPI-спецификации: https://api.example.com/swagger.json» |
| db_specialist | Запросы к базам данных | Запрашивает базы данных для поддержки тестовых процессов. Поддерживает PostgreSQL, MySQL, ClickHouse, MongoDB (через Atlas Data API), Elasticsearch, OpenSearch, Redis и другие. Показывает таблицы, выполняет запросы только на чтение. | «Покажи всех пользователей в staging-базе со статусом active» |
| web_crawler | Веб-контент | Загружает и парсит веб-страницы с помощью легковесного HTML-парсера (без headless-браузера). Извлекает текст, ссылки, таблицы и структурированное содержимое. Поддерживает CSS-селекторы для точной выборки. | «Открой документацию API на https://docs.example.com и перечисли все эндпоинты» |
| api_client | Вызов API | Вызывает HTTP/REST, gRPC, GraphQL, Kafka, RabbitMQ и MCP API. Обнаруживает сервисы через рефлексию/интроспекцию. Публикует и потребляет сообщения. Полезен для тестирования реальных API прямо из чата. | «Вызови GET https://api.staging.example.com/health и покажи ответ» |
| utility_belt | Утилиты данных | Инструменты трансформации и генерации данных. Форматирование/валидация JSON и XML. Кодирование/декодирование Base64, URL, HTML. Декодирование JWT-токенов. Конвертация временных меток. Генерация UUID, хешей, паролей. Тестирование регулярных выражений. Сравнение текстов. | «Декодируй этот JWT-токен: eyJhbGci…» |
| notifier | Уведомления | Отправляет уведомления и оповещения в более чем 12 каналов: email (SMTP), Slack, Microsoft Teams, Google Chat, Mattermost, Cisco Webex, Telegram, Discord, PagerDuty, Opsgenie, Jira и произвольные вебхуки. | «Отправь сообщение в Slack-канал #testing: все smoke-тесты пройдены» |
| orchestrator | Общие вопросы | Обрабатывает общие вопросы, приветствия и запросы, не подходящие конкретному суб-агенту. Имеет доступ ко всем утилитным, базовым, уведомительным, кэш- и todo-инструментам. Маршрутизирует сложные задачи к специалистам. | «Чем ты можешь помочь?» |
Как работает маршрутизация агентов
Когда вы отправляете сообщение, система автоматически выбирает лучшего суб-агента на основе ключевых слов в сообщении:
| Ключевые слова в сообщении | Маршрутизируется к |
|---|---|
| “database”, “db query”, “sql”, “postgres”, “mysql”, “mongodb”, “elasticsearch”, “redis” | db_specialist |
| “browse”, “crawl”, “web page”, “scrape”, “fetch page”, “html” | web_crawler |
| “http request”, “curl”, “call api”, “grpc call”, “graphql query”, “kafka publish”, “rabbitmq” | api_client |
| “send email”, “send notification”, “slack”, “telegram”, “teams”, “discord”, “pagerduty”, “jira” | notifier |
| “format json”, “base64”, “jwt decode”, “uuid”, “generate hash”, “regex”, “diff”, “timestamp” | utility_belt |
| “record”, “recording”, “recorder”, “proxy session”, “traffic capture”, “mitm” | recorder |
| “contract test”, “validate mock”, “validate against spec”, “backward compatibility”, “breaking change” | contract_tester |
| “fuzz”, “vulnerability”, “security scan”, “exploit” | fuzzer |
| “performance test”, “load test”, “benchmark”, “stress test” | perf_tester |
| “test collection”, “test suite”, “run test”, “import postman” | api_tester |
| “generate from”, “generate server”, “create from spec” | code_generator |
| “create mock”, “add mock”, “update mock”, “delete mock” | mock_builder |
| “analyze”, “explain”, “summarize”, “compare”, “review” | analyzer |
Приоритет маршрутизации:
- Пользовательские агенты (созданные администратором) проверяются первыми — их ключевые слова имеют приоритет
- Встроенные суб-агенты проверяются в порядке, указанном выше
- Если ни одно ключевое слово не совпало, запрос обрабатывает оркестратор напрямую
Справочник встроенных инструментов
Система агентов включает более 90 встроенных инструментов, организованных по категориям. Каждый суб-агент имеет доступ к подмножеству инструментов, относящихся к его области.
Инструменты управления моками (через MCP)
| Инструмент | Что делает |
|---|---|
| create_mock | Создаёт или обновляет мок-эндпоинт с маршрутами, условиями, ответами и Faker-функциями |
| get_mock | Получает полную конфигурацию мока по ID |
| list_mocks | Выводит список всех конфигураций моков с пагинацией |
| delete_mock | Безвозвратно удаляет мок по ID |
| restore_mock | Восстанавливает ранее удалённый мок |
| get_chain_mocks | Получает все моки, принадлежащие определённой цепочке |
| delete_chain_mocks | Удаляет все моки в цепочке |
| get_mock_logs | Получает логи запросов/ответов для конкретного мока |
| validate_mock | Валидирует конфигурацию мока без его создания |
| test_mock | Отправляет тестовый запрос к моку и возвращает ответ |
Инструменты управления хранилищами (через MCP)
| Инструмент | Что делает |
|---|---|
| get_global_store | Получает все пары ключ-значение из Глобального хранилища |
| add_to_global_store | Добавляет пары ключ-значение в Глобальное хранилище |
| delete_from_global_store | Удаляет определённые ключи из Глобального хранилища |
| get_chain_store | Получает все пары ключ-значение из хранилища цепочки |
| add_to_chain_store | Добавляет пары ключ-значение в хранилище цепочки |
| delete_from_chain_store | Удаляет определённые ключи из хранилища цепочки |
Инструменты генерации кода (через MCP)
| Инструмент | Что делает |
|---|---|
| generate_mocks_from_openapi | Автоматически генерирует моки из OpenAPI/Swagger-спецификации |
| generate_from_openapi | Генерирует серверный код из OpenAPI-спецификации |
| generate_from_grpc | Генерирует серверный код из gRPC .proto-файла |
| generate_from_wsdl | Генерирует серверный код из WSDL-спецификации |
| preview_generation | Показывает предварительный просмотр генерируемого кода без применения |
Инструменты шаблонов и файлов (через MCP)
| Инструмент | Что делает |
|---|---|
| upload_template | Загружает Go-шаблон для использования в ответах моков |
| get_template | Получает содержимое загруженного шаблона |
| delete_template | Удаляет загруженный шаблон |
| list_templates | Выводит список всех загруженных шаблонов |
| read_file | Читает временный файл, загруженный во время сессии чата |
Инструменты тестирования API
| Инструмент | Что делает |
|---|---|
| list_collections | Выводит список тестовых коллекций API |
| run_collection | Запускает тестовую коллекцию и возвращает результаты |
| list_test_runs | Выводит список завершённых тестовых прогонов со статусами |
| import_postman | Импортирует коллекцию Postman |
| import_openapi | Импортирует эндпоинты из OpenAPI-спецификации |
| build_api_collection | Создаёт тестовую коллекцию с запросами, заголовками и ассертами |
| generate_test_script | Генерирует k6-совместимый скрипт нагрузочного теста |
Инструменты фаззинга
| Инструмент | Что делает |
|---|---|
| start_fuzzing | Запускает сессию фаззинга безопасности для API |
| stop_fuzzing | Останавливает запущенную сессию фаззинга |
| list_fuzz_results | Выводит список результатов сессий фаззинга |
| list_fuzz_findings | Выводит список находок безопасности из фаззинга |
| triage_fuzz_finding | Классифицирует находку (confirmed, false_positive, fixed, accepted) |
| configure_fuzzing | Генерирует конфигурацию фаззинга с начальными запросами |
Инструменты нагрузочного тестирования
| Инструмент | Что делает |
|---|---|
| run_perf_test | Запускает нагрузочный тест |
| list_perf_results | Выводит список результатов нагрузочных тестов |
| compare_perf_results | Сравнивает метрики между несколькими прогонами |
| generate_perf_script | Генерирует k6-скрипт нагрузочного теста |
Инструменты записи трафика
| Инструмент | Что делает |
|---|---|
| start_recording | Запускает новую сессию записи с настройкой прокси (обратный/прямой/MITM) |
| stop_recording | Останавливает активную сессию записи |
| list_recording_sessions | Выводит список всех сессий записи со статусами и количеством записей |
| get_recording_session | Получает детали конкретной сессии записи |
| delete_recording | Удаляет сессию записи и её записи |
| list_recording_entries | Выводит список захваченных запросов/ответов для сессии |
| create_mocks_from_recording | Генерирует конфигурации моков из записанного трафика |
| export_recording_har | Экспортирует сессию записи в формат HAR (HTTP Archive) |
| export_recording_collection | Экспортирует сессию записи как тестовую коллекцию API |
| export_recording_perf_script | Экспортирует сессию записи как k6-скрипт нагрузочного теста |
| analyze_recording | Анализирует записанный трафик на паттерны, цепочки и аномалии |
Инструменты контрактного тестирования
| Инструмент | Что делает |
|---|---|
| contract_validate_mocks | Валидирует конфигурации моков по API-спецификации (OpenAPI, proto, GraphQL) |
| contract_verify_provider | Проверяет, что реальный эндпоинт провайдера соответствует контракту |
| contract_check_compatibility | Проверяет обратную совместимость между двумя версиями API-спецификации |
| contract_validate_payload | Валидирует конкретный запрос/ответ по схеме |
HTTP и клиентские инструменты API
| Инструмент | Что делает |
|---|---|
| http_request | Отправляет HTTP-запросы (GET, POST, PUT, DELETE) с заголовками, телом, query-параметрами |
| grpc_call | Вызывает gRPC-сервисы — список сервисов, список методов, вызов унарных RPC |
| graphql_query | Интроспектирует GraphQL-схемы и выполняет запросы/мутации |
| kafka_publish | Публикует сообщения в Kafka-топики |
| kafka_consume | Потребляет последние сообщения из Kafka-топиков |
| rabbitmq_publish | Публикует сообщения в обменники/очереди RabbitMQ |
| rabbitmq_consume | Просматривает сообщения в очередях RabbitMQ |
| mcp_list_tools | Выводит список доступных инструментов на MCP-сервере |
| mcp_call_tool | Вызывает конкретный инструмент на MCP-сервере |
Инструменты работы с базами данных
| Инструмент | Что делает |
|---|---|
| sql_query | Выполняет SQL-запросы только на чтение к PostgreSQL, MySQL или ClickHouse |
| mongodb_query | Запрашивает MongoDB через Atlas Data API или HTTP-интерфейсы |
| elasticsearch_query | Ищет по индексам Elasticsearch/OpenSearch |
| redis_command | Выполняет команды Redis только на чтение (GET, HGETALL, KEYS и др.) |
| db_list_tables | Выводит список таблиц/коллекций/индексов в базе данных |
Веб- и контент-инструменты
| Инструмент | Что делает |
|---|---|
| browse_url | Загружает публичный URL и извлекает текстовое содержимое (HTML, JSON, XML). Блокирует приватные IP. |
| search_in_page | Ищет конкретный текст на загруженной веб-странице |
| analyze_content | Анализирует структурированный контент (OpenAPI, Postman, HAR, JSON, YAML) |
Инструменты трансформации данных
| Инструмент | Что делает |
|---|---|
| json_format | Форматирует, валидирует или минифицирует JSON |
| xml_format | Форматирует или валидирует XML |
| base64_convert | Кодирует/декодирует строки Base64 |
| url_encode | Кодирует/декодирует URL-компоненты |
| html_encode | Кодирует/декодирует HTML-сущности |
| jwt_decode | Декодирует JWT-токены (заголовок + полезная нагрузка, без верификации подписи) |
| json_xml_convert | Конвертирует между JSON и XML форматами |
| timestamp_convert | Конвертирует между Unix, ISO 8601 и читаемыми временными метками |
| diff_compare | Сравнивает два текста или JSON-структуры, выделяя различия |
| generate_uuid | Генерирует идентификаторы UUID v4 |
| generate_hash | Генерирует дайджесты SHA-256, MD5 и других алгоритмов |
| generate_text | Генерирует реалистичные данные с помощью Faker (имена, email, адреса, lorem ipsum) |
| generate_password | Генерирует безопасные случайные пароли с настраиваемой сложностью |
| regex_test | Тестирует регулярные выражения с извлечением групп совпадений |
| color_convert | Конвертирует между HEX, RGB и HSL форматами цветов |
| timestamp_now | Возвращает текущую временную метку в различных форматах |
Инструменты уведомлений
| Инструмент | Что делает |
|---|---|
| send_email | Отправляет email через настроенный SMTP (текст + HTML) |
| send_slack | Отправляет сообщения в Slack через Incoming Webhook (поддерживает Block Kit) |
| send_telegram | Отправляет сообщения в Telegram через Bot API (MarkdownV2/HTML) |
| send_teams | Отправляет сообщения в Microsoft Teams через Webhook (Adaptive Cards) |
| send_discord | Отправляет сообщения в Discord через Webhook (поддерживает embeds) |
| send_google_chat | Отправляет сообщения в Google Chat через Webhook (Card v2) |
| send_mattermost | Отправляет сообщения в Mattermost через Webhook (Slack-совместимый API) |
| send_webex | Отправляет сообщения в Cisco Webex через Bot API |
| send_pagerduty | Создаёт/подтверждает/разрешает инциденты PagerDuty (Events API v2) |
| send_opsgenie | Создаёт оповещения Opsgenie с приоритетом P1-P5 |
| send_jira_comment | Добавляет комментарии к задачам Jira через REST API v3 |
| send_webhook | Отправляет HTTP POST/PUT/PATCH на любой URL вебхука с JSON-телом |
| list_system_channels | Выводит список всех настроенных каналов уведомлений с типами и статусами |
| send_via_channel | Отправляет сообщение через предварительно настроенный канал уведомлений по имени или ID |
Инструменты управления сессиями
| Инструмент | Что делает |
|---|---|
| current_time | Возвращает текущую дату/время в любом часовом поясе |
| cache_set | Сохраняет пару ключ-значение во временный кэш (TTL 1 час) |
| cache_get | Получает кэшированное значение по ключу |
| cache_delete | Удаляет кэшированный ключ |
| cache_list | Выводит список всех кэшированных ключей |
| todo_add | Добавляет задачу в персональный список дел (5 дней до истечения) |
| todo_list | Выводит список всех задач пользователя |
| todo_update | Обновляет статус или детали задачи |
| todo_remove | Удаляет задачу из списка |
Параллельное выполнение инструментов
Система агентов выполняет несколько вызовов инструментов одновременно, когда LLM запрашивает несколько инструментов в одном ответном сообщении. Это значительно ускоряет сложные операции.
Как это работает:
- LLM решает, что ему нужно вызвать несколько инструментов (например,
list_mocks+list_collections+current_time) - Mockarty запускает все вызовы параллельно с помощью горутин
- Результаты собираются конкурентно и возвращаются LLM вместе
- LLM обрабатывает все результаты на следующем шаге
Пример: Когда вы спрашиваете «Покажи все моки и тестовые коллекции в неймспейсе payments», агент вызывает list_mocks и list_collections одновременно, а не последовательно, сокращая время ответа вдвое.
Встроенные инструменты (такие как form_update и проверки разрешений) обрабатываются синхронно до начала параллельного выполнения, гарантируя, что проверки безопасности никогда не пропускаются.
Хранилище учётных данных
Хранилище учётных данных (Credentials Store) позволяет передавать агенту API-ключи, строки подключения к базам данных, токены и другие секреты, не включая их в текст сообщений чата.
Ключевое свойство безопасности: Учётные данные хранятся только в localStorage вашего браузера. Они никогда не отправляются на сервер Mockarty для хранения — они включаются в запрос только тогда, когда агенту нужно использовать их для конкретного вызова инструмента.
Как использовать:
- Нажмите иконку ключа в заголовке чата агента, чтобы открыть панель учётных данных
- Добавьте записи в виде пар ключ-значение (например,
POSTGRES_DSN→postgres://user:pass@host:5432/db) - Закройте панель — учётные данные сохраняются в браузере немедленно
- В чате ссылайтесь на учётные данные по имени: «Сделай запрос к базе, используя мой POSTGRES_DSN»
- Агент автоматически передаёт подходящие учётные данные инструментам, таким как
sql_query,http_request,send_slackи др.
Распространённые имена учётных данных:
| Ключ | Используется | Пример значения |
|---|---|---|
POSTGRES_DSN |
sql_query | postgres://user:pass@host:5432/dbname |
MYSQL_DSN |
sql_query | mysql://user:pass@host:3306/dbname |
MONGO_URL |
mongodb_query | https://data.mongodb-api.com/... |
ELASTICSEARCH_URL |
elasticsearch_query | http://localhost:9200 |
REDIS_URL |
redis_command | redis://:password@host:6379/0 |
SLACK_WEBHOOK |
send_slack | https://hooks.slack.com/services/... |
TELEGRAM_TOKEN |
send_telegram | 123456:ABC-DEF... |
TELEGRAM_CHAT_ID |
send_telegram | -1001234567890 |
PAGERDUTY_KEY |
send_pagerduty | your-routing-key |
JIRA_URL |
send_jira_comment | https://yourcompany.atlassian.net |
JIRA_EMAIL |
send_jira_comment | user@company.com |
JIRA_TOKEN |
send_jira_comment | your-api-token |
Примечание о конфиденциальности: Поскольку учётные данные хранятся в localStorage, они привязаны к конкретному браузеру и устройству. Очистка данных браузера удалит их. Другие пользователи не могут видеть ваши учётные данные.
Сессии и контекст
Сессии чата агента сохраняются в базе данных:
- Создание сессии: Новая сессия начинается при открытии чата или нажатии «Новый чат»
- История сообщений: До 100 предыдущих сообщений загружаются при повторном открытии сессии
- Контекстное окно: Активные разговоры обрезаются до 200 сообщений для предотвращения проблем с памятью
- Срок действия сессии: Сессии истекают после 24 часов неактивности (настраивается)
- Изоляция MCP-сессий: Каждая сессия чата получает свою MCP-сессию — stateful MCP-инструменты (например, Playwright) поддерживают состояние для каждого разговора
Задачи агента (фоновые операции)
Некоторые операции слишком длинны для ответа в чате. Задачи агента выполняются в фоновом режиме:
- Создаются через: Чат агента, ИИ-кнопки (для сложных операций) или протокол A2A
- Отслеживание прогресса: Пошаговый лог выполнения в реальном времени через SSE-стриминг
- Видимость вызовов инструментов: Видите, какие инструменты были вызваны и их результаты
- Отмена: Отменяйте выполняемые задачи в любой момент
- Редактирование и перезапуск: Отредактируйте любой шаг и перезапустите задачу с этой точки
- Экспорт: Скачайте полную историю выполнения в формате JSON
- Уведомления о завершении: Получайте уведомления через иконку колокольчика и (при настройке) email
- Ограничение параллелизма: Настраиваемое максимальное количество одновременных задач (по умолчанию: 3)
Задачи управляются через виджет чата агента. Нажмите вкладку Задачи (иконка буфера обмена) в плавающем чате, чтобы увидеть все ваши задачи. Бейдж появляется при завершении задач, пока вы работаете на других страницах.
Оверлей потока выполнения: Нажмите Просмотр потока на любой задаче, чтобы увидеть полную пошаговую трассу:
- Шаги группируются по связям родитель-потомок (вызовы инструментов связаны с их результатами)
- Параллельные вызовы визуально объединяются
- Каждый шаг показывает длительность, количество токенов, модель и имя агента
- Текст LLM (мысли, решения, ответы) рендерится как Markdown
- Ошибки показывают полное описание
Редактирование и перезапуск: Нажмите иконку карандаша на любом шаге для редактирования, затем нажмите Перезапуск с шага N для повторного выполнения с вашими изменениями.

Использование инструментов маркетплейса в чате агента
Когда инструменты маркетплейса настроены, они становятся доступны в чате агента:
- Откройте шестерёнку настроек чата агента
- Выберите, какие инструменты маркетплейса включить
- Начните чат — агент теперь может использовать как встроенные, так и инструменты маркетплейса
Пример: С зарегистрированным staging API как источником OpenAPI, вы можете попросить:
«Вызови эндпоинт getUsers на staging, затем создай мок с такой же структурой ответа»
Агент:
- Вызовет инструмент
getUsersмаркетплейса (реальный HTTP-запрос к staging) - Проанализирует структуру ответа
- Использует встроенные инструменты для создания мока с соответствующими полями
Пользовательские агенты
Что такое пользовательские агенты?
Пользовательские агенты — это специалисты, создаваемые администратором, которые расширяют систему агентов. Хотя Mockarty поставляется с 13 встроенными суб-агентами и оркестратором, вашей организации могут потребоваться доменно-специфичные агенты с:
- Кастомными системными промптами, адаптированными к вашей области
- Конкретными белыми списками инструментов (только те инструменты, которые должен использовать этот агент)
- Ключевыми словами маршрутизации, соответствующими лексикону вашей команды
- Привязанными LLM-профилями и переопределениями модели
- Привязкой к Feature Key для настройки поведения ИИ-кнопок
Создание пользовательского агента
Администраторы создают пользовательских агентов в Admin → AI & LLM → Agent Settings.

Каждый пользовательский агент требует:
| Поле | Обязательно | Описание |
|---|---|---|
| Name | Да | Уникальный идентификатор (например, payment_specialist) |
| Description | Да | Краткое описание, отображаемое при выборе агента |
| System Prompt | Да | Инструкции, направляющие поведение агента (добавляются к базовому системному промпту) |
| Available Tools | Нет | Список инструментов, которые этот агент может использовать (пусто = все инструменты) |
| Routing Keywords | Нет | Ключевые слова, запускающие маршрутизацию к этому агенту |
| LLM Profile | Нет | Привязанный LLM-профиль для агента (пусто = выбор пользователя) |
| Model Override | Нет | Переопределение модели внутри привязанного профиля |
| Feature Key | Нет | Привязка к функции ИИ-кнопки (например, generate-mock) |
| Enabled | Да | Переключатель включения/выключения агента |
Привязка LLM-профиля
Пользовательские агенты могут быть привязаны к конкретному LLM-профилю и модели. Когда сообщение маршрутизируется к такому агенту:
- Используется привязанный LLM-профиль вместо выбора пользователя по умолчанию
- Если задано переопределение модели, используется эта конкретная модель внутри профиля
- Это гарантирует, что агент всегда использует оптимальную модель для своей области
Варианты использования:
- Привязать агента аудита безопасности к мощной модели (например,
claude-sonnet) для тщательного анализа - Привязать простого FAQ-агента к быстрой модели (например,
gpt-4o-mini) для снижения затрат - Привязать агента генерации кода к модели, оптимизированной для кода
Ключевые слова маршрутизации
Ключевые слова определяют, когда система маршрутизирует сообщение чата к вашему пользовательскому агенту. Ключевые слова пользовательских агентов проверяются перед встроенными агентами, давая агентам, определённым администратором, приоритет.
Пример: Агент payment_specialist с ключевыми словами ["payment", "checkout", "billing", "invoice"] будет обрабатывать любое сообщение чата, содержащее эти слова — даже если встроенные агенты иначе бы совпали.
Советы по ключевым словам:
- Используйте доменно-специфичные термины, которые ваша команда реально использует
- Включайте синонимы (например, и «payment», и «billing»)
- Избегайте слишком общих слов (например, «test» перехватит слишком много запросов)
- Ключевые слова нечувствительны к регистру
Белые списки инструментов
По умолчанию агенты могут использовать все доступные инструменты. Белый список ограничивает агента только конкретными инструментами — полезно для:
- Безопасность: Агент только для анализа не должен модифицировать моки
- Фокус: Специалисту по мокам не нужны инструменты фаззинга
- Соответствие: Ограничение того, какие инструменты могут получить доступ к продуктивным данным
Выбирайте инструменты из списка встроенных инструментов и любых зарегистрированных инструментов маркетплейса.
Привязка к Feature Key
Пользовательский агент может быть привязан к Feature Key ИИ-кнопки. При привязке системный промпт агента добавляется к промпту кнопки по умолчанию, и применяется белый список инструментов агента.
Доступные Feature Key:
| Feature Key | ИИ-кнопка |
|---|---|
generate-mock |
Generate Mock |
improve-mock |
Improve Mock |
generate-script |
Generate Script |
generate-perf |
Generate Perf Script |
diagnose |
Diagnose Error |
analyze-test |
Analyze Test Results |
analyze-diff |
API Diff |
analyze-logs |
Log Analysis |
generate-collection |
Generate Collection |
recorder-ai |
Analyze Traffic |
recorder-scenarios |
Find Scenarios |
Пример: Привяжите payment_specialist к generate-mock → всякий раз, когда кто-то нажимает «Generate Mock», системный промпт специалиста по платежам добавляется, давая ИИ дополнительный контекст о платёжных API.
Примеры пользовательских агентов
Доменно-специфичный эксперт по мокам
Name: healthcare_mock_expert
Description: Создаёт HIPAA-совместимые моки медицинских API
System Prompt: |
Вы специалист по медицинским API. При создании моков:
- Никогда не используйте реальные данные пациентов — всегда используйте Faker-функции
- Следуйте структуре ресурсов HL7 FHIR для медицинских эндпоинтов
- Включайте правильные ответы об ошибках при сбоях аутентификации (401, 403)
- Добавляйте заголовки X-Request-ID и X-Correlation-ID ко всем ответам
- Используйте коды ICD-10 из допустимого диапазона для полей диагнозов
Keywords: [healthcare, patient, fhir, hl7, medical, hipaa, diagnosis]
Feature Key: generate-mock
Агент проверки безопасности
Name: security_reviewer
Description: Проверяет конфигурации API на проблемы безопасности
System Prompt: |
Вы специалист по безопасности. При анализе:
- Проверяйте отсутствие аутентификации на чувствительных эндпоинтах
- Убеждайтесь, что настроено ограничение частоты запросов
- Ищите утечки PII в ответах
- Проверяйте конфигурацию CORS
- Убеждайтесь в использовании TLS/HTTPS
- Помечайте любые захардкоженные учётные данные или токены
Keywords: [security review, audit, compliance, pentest, owasp]
Tools: [browse_url, analyze_content, sql_query]
LLM Profile: claude-sonnet-profile
Агент интеграции CI/CD
Name: cicd_agent
Description: Генерирует конфигурации тестов для CI/CD пайплайнов
System Prompt: |
Вы специалист по интеграции CI/CD. Помогайте пользователям:
- Создавать тестовые коллекции, подходящие для выполнения в пайплайне
- Генерировать скрипты нагрузочных тестов с CI-совместимыми порогами
- Настраивать фаззинг с ограничением по времени
- Форматировать результаты для парсеров JUnit/TAP
Keywords: [ci, cd, pipeline, jenkins, github actions, gitlab ci, deploy]
Tools: [build_api_collection, generate_test_script, configure_fuzzing]
Агент маршрутизации уведомлений
Name: alert_manager
Description: Маршрутизирует результаты тестов и оповещения в нужные каналы
System Prompt: |
Вы специалист по маршрутизации оповещений. В зависимости от серьёзности и типа события:
- Критические сбои → инцидент PagerDuty + Slack #incidents
- Провалы тестовых наборов → канал Teams + email руководителю QA
- Деградация производительности → Slack #performance + оповещение Opsgenie
- Успешные деплои → Slack #releases + комментарий в Jira
Всегда включайте: временную метку, окружение, краткое описание и ссылку на результаты.
Keywords: [alert, incident, notify team, send report, broadcast]
Tools: [send_slack, send_teams, send_pagerduty, send_opsgenie, send_email, send_jira_comment, current_time]
Интеграция с маркетплейсом
MCP Marketplace подключает внешние сервисы к системе агентов, давая им доступ к инструментам за пределами встроенного набора. В этом разделе описывается, как инструменты маркетплейса и агенты работают вместе.
Подключение внешних MCP-серверов
MCP-серверы (Model Context Protocol) — самый мощный тип интеграции. Они предоставляют пользовательские инструменты, которые агент может вызывать во время разговоров.
Популярные MCP-серверы:
- Playwright — автоматизация браузера (навигация, клики, скриншоты, заполнение форм)
- File System — чтение/запись файлов на сервере
- Database — запросы к внешним базам данных
- GitHub — управление репозиториями, задачами, PR
- Custom — создайте собственный MCP-сервер для любого API
Stateful-сессии: Каждый разговор в чате агента получает собственную MCP-сессию. Это означает, что MCP-сервер Playwright может открыть браузер в одном вызове, перейти на страницу в следующем и сделать скриншот в третьем — всё в рамках одного чата.
Подключение сервисов OpenAPI/gRPC/WSDL
Зарегистрируйте существующую документацию API, и агент получит возможность вызывать ваши реальные API:
- OpenAPI — каждый эндпоинт становится вызываемым инструментом. Агент может тестировать реальные API, получать данные и проверять поведение.
- gRPC — обнаруживает методы сервисов через gRPC server reflection. Вызовы инструментов проксируются как реальные gRPC-запросы к целевому серверу.
- WSDL — каждая SOAP-операция становится инструментом с автоматическим построением XML-конверта.
Подключение A2A-агентов
Подключайте внешних ИИ-агентов, поддерживающих протокол Agent-to-Agent:
- Зарегистрируйте базовый URL агента в маркетплейсе
- Mockarty загрузит карточку агента из
/.well-known/agent.json - Навыки внешнего агента станут инструментами, доступными в чате агента Mockarty
Это позволяет создавать мультиагентные процессы, где Mockarty делегирует задачи специализированным внешним агентам.
Выбор инструментов для каждой функции
Каждая ИИ-функция (и каждая сессия чата агента) поддерживает собственный выбор инструментов маркетплейса. Это предотвращает перегрузку инструментами — LLM видит только инструменты, релевантные текущей задаче.
Настройка выбора инструментов:
- ИИ-кнопки: нажмите иконку шестерёнки → секция MCP-инструментов
- Чат агента: нажмите иконку шестерёнки в заголовке чата
Протокол A2A (Agent-to-Agent)
Внешние ИИ-агенты могут взаимодействовать с Mockarty через протокол Agent-to-Agent:
| Эндпоинт | Метод | Назначение |
|---|---|---|
/.well-known/agent.json |
GET | Карточка агента — возвращает возможности, навыки и поддерживаемые протоколы |
/a2a/tasks/send |
POST | Отправить задачу на выполнение |
/a2a/tasks/:id |
GET | Проверить статус задачи и получить результаты |
/a2a/tasks/:id/cancel |
POST | Отменить выполняемую задачу |
Варианты использования:
- Внешний агент-оркестратор делегирует создание моков Mockarty
- CI/CD-агент просит Mockarty запустить тесты и сообщить результаты
- Мультиагентная система координирует тестирование между сервисами
Протокол A2A следует стандарту Google Agent-to-Agent, делая Mockarty совместимым с любой A2A-совместимой платформой агентов.
Руководство администратора
Настройка ИИ-функций
Шаг 1: Создайте LLM-профиль
- Перейдите в Admin → AI & LLM → LLM Profiles
- Нажмите Add Profile
- Выберите провайдера (OpenAI, Anthropic и др.)
- Введите API-ключ и выберите модель
- Нажмите Save и убедитесь, что профиль Enabled
Шаг 2: (Необязательно) Зарегистрируйте инструменты маркетплейса
- Перейдите в Admin → AI & LLM → MCP Marketplace
- Нажмите Add Integration
- Выберите тип источника и введите URL
- Настройте аутентификацию при необходимости
- Нажмите Save — инструменты будут обнаружены в течение 30 минут
Шаг 3: (Необязательно) Создайте пользовательских агентов
- Перейдите в Admin → AI & LLM → Agent Settings
- Нажмите Create Agent
- Заполните имя, описание, системный промпт и необязательные ключевые слова/инструменты
- По желанию привяжите LLM-профиль и переопределение модели
- Нажмите Save
Настройка MCP Marketplace
Добавление OpenAPI-источника
- Нажмите Add Integration → Source Type: OpenAPI
- Введите URL вашей OpenAPI/Swagger-спецификации (JSON или YAML)
- Пример:
https://api.staging.example.com/swagger.json
- Пример:
- Если API требует аутентификации, установите Auth Type:
- Bearer: вставьте токен доступа
- API Key: введите ключ и имя заголовка (например,
X-API-Key) - Basic: введите логин и пароль
- Нажмите Save
- Нажмите иконку-штекер для проверки соединения — вы должны увидеть статус «online»
- Нажмите иконку-список для просмотра обнаруженных инструментов

Добавление MCP-сервера
- Нажмите Add Integration → Source Type: MCP Server
- Введите эндпоинт MCP-сервера (например,
http://localhost:3000/mcp) - Установите аутентификацию при необходимости
- Нажмите Save
MCP-серверы поддерживают stateful-сессии — каждый разговор в чате агента получает свою сессию, позволяя инструментам вроде Playwright сохранять состояние браузера между вызовами.
Добавление WSDL (SOAP) источника
- Нажмите Add Integration → Source Type: WSDL
- Введите URL WSDL (например,
https://legacy.example.com/service?wsdl) - Установите аутентификацию (многие SOAP-сервисы используют Basic auth)
- Нажмите Save
Каждая SOAP-операция становится инструментом с префиксом soap_.
Обновление и проверка здоровья
- Авто-обновление: Фоновый воркер проверяет серверы каждые 30 минут. У каждого сервера свой интервал обновления (по умолчанию: 2 часа).
- Ручная проверка: Нажмите иконку-штекер на любом сервере для немедленной проверки.
- Индикаторы статуса: Зелёный = online, Красный = error (наведите для деталей), Серый = unknown.
Мониторинг через журнал аудита ИИ
Перейдите в Admin → AI & LLM → AI Audit Log.
Каждая ИИ-операция логируется:
- Временная метка — когда операция была выполнена
- Пользователь — кто инициировал
- Действие — какая ИИ-функция (generate_mock, diagnose_error и т.д.)
- Профиль — какой LLM-профиль был использован
- Длительность — время вызова LLM в миллисекундах
- Статус — success, error или rate_limited
- Токены — использование токенов (если сообщается провайдером)
Фильтрация по пользователю, типу действия, статусу и диапазону дат. Экспорт в CSV для отчётов соответствия.

Ограничения запросов и безопасность
Ограничения частоты ИИ-запросов:
- Каждый пользователь имеет дневной лимит вызовов ИИ (настраивается администратором)
- При достижении лимита ИИ-кнопки показывают ошибку ограничения частоты
- Журнал аудита отслеживает все вызовы для мониторинга
Меры безопасности:
- Инструмент
browse_urlблокирует приватные/внутренние IP-адреса (защита от SSRF) - Инструмент
sql_queryработает только на чтение (SELECT/WITH) и блокирует чувствительные таблицы - Инструмент
db_list_tablesработает только на чтение — модификация схемы невозможна - Инструмент
redis_commandограничен командами только на чтение - Вызовы инструментов к серверам маркетплейса проверяют URL на SSRF
- Переопределения заголовков пользователей изолированы для каждого пользователя — учётные данные одного не утекают к другим
- MCP-сессии изолированы для каждого разговора
- Данные хранилища учётных данных остаются в localStorage браузера, никогда не сохраняются на сервере
- Все ИИ-запросы логируются в журнале аудита
- Белые списки инструментов пользовательских агентов обеспечивают принцип наименьших привилегий
Уведомления
ИИ-операции генерируют уведомления:
| Событие | Где отображается |
|---|---|
| Тестовый прогон завершён | Иконка колокольчика + email (если настроено) |
| Нагрузочный тест завершён | Иконка колокольчика + email |
| Фаззинг завершён | Иконка колокольчика + email |
| Новая находка фаззинга | Иконка колокольчика + email |
| Задача агента завершена | Иконка колокольчика + чат агента |
| Задача агента завершилась с ошибкой | Иконка колокольчика + чат агента |
Иконка колокольчика в верхней навигации показывает количество непрочитанных уведомлений. Нажмите на неё, чтобы просмотреть, отклонить или перейти по ссылке уведомления.
Советы для лучших результатов
- Будьте конкретны: «Сгенерируй мок для GET /api/users, который возвращает 10 пользователей с полями name, email и role» лучше, чем «создай мок пользователей»
- Предоставляйте контекст: Используйте пользовательский промпт, чтобы рассказать ИИ о вашем домене, SLA или стандартах кодирования
- Выбирайте правильную модель: Быстрые модели для простых задач, мощные модели для анализа
- Итерируйте: Если первый результат не идеален, используйте «Improve Mock» или скорректируйте пользовательский промпт
- Используйте MCP-инструменты: Когда доступны, включайте релевантные инструменты, чтобы ИИ мог получить доступ к реальным данным из ваших API
- Проверяйте ИИ-триаж внимательно: Автоматическая сортировка — это отправная точка, всегда проверяйте критические аномалии вручную
- Используйте пользовательские заголовки: Если инструментам нужны ваши учётные данные, установите их в шестерёнке настроек, а не включайте в промпты
- Используйте хранилище учётных данных: Для подключений к базам данных, API-ключей и URL вебхуков — сохраните их однократно в панели Credentials и ссылайтесь по имени
- Используйте чат агента для сложных задач: Многошаговые операции лучше работают через интерфейс чата, где агент может итерировать
- Ограничивайте пользовательских агентов: Давайте агентам конкретные ключевые слова и белые списки инструментов, чтобы они оставались сфокусированными
- Привязывайте модели к агентам: Используйте привязку LLM-профиля, чтобы каждый пользовательский агент использовал оптимальную модель для своей задачи
- Попросите администратора добавить интеграции: Если ИИ не хватает контекста о ваших API, попросите администратора зарегистрировать их в MCP Marketplace
Устранение неполадок
«LLM not configured»
Нет включённых LLM-профилей. Попросите администратора создать профиль в Admin → AI & LLM → LLM Profiles.
«LLM profile not found»
Выбранный профиль был удалён или отключён. Нажмите кнопку-шестерёнку и выберите другой профиль.
ИИ отвечает медленно
- Попробуйте более быструю модель (переключитесь с GPT-4o на GPT-4o-mini)
- Сократите длину пользовательского промпта
- Отключите ненужные MCP-инструменты (каждый вызов инструмента добавляет задержку)
- Для чата агента: уменьшите количество включённых инструментов маркетплейса
MCP-инструменты не работают
- Проверьте, что сервер маркетплейса онлайн (Admin → AI & LLM → MCP Marketplace)
- Убедитесь, что инструмент включён на сервере
- Проверьте, что вы выбрали инструмент в настройках шестерёнки функции
- Если используете пользовательские заголовки, проверьте правильность учётных данных
- Проверьте логи сервера на ошибки аутентификации
Чат агента маршрутизирует некорректно
- Маршрутизация основана на ключевых словах — попробуйте перефразировать запрос с более чёткими ключевыми словами
- Ключевые слова пользовательских агентов имеют приоритет над встроенными
- Проверьте Admin → Agent Settings, чтобы увидеть, какие агенты и ключевые слова активны
- Используйте явные фразы, например «create a mock for…» для выбора агента mock_builder
Инструменты работы с базами данных возвращают ошибки
- Проверьте правильность строки подключения в хранилище учётных данных
- Убедитесь, что база данных доступна с сервера Mockarty
- SQL-инструменты поддерживают только запросы SELECT и WITH — UPDATE/INSERT/DELETE заблокированы
- Проверьте сетевые проблемы и настройки файрвола между Mockarty и базой данных
Инструменты уведомлений не работают
- Для email: проверьте настройку SMTP в Admin → Email Settings
- Для Slack/Teams/Discord: проверьте, что URL вебхука действителен и не истёк
- Для Telegram: проверьте правильность токена бота и chat_id
- Для PagerDuty/Opsgenie: проверьте API-ключ или routing key
- Проверьте хранилище учётных данных на опечатки в ключах или значениях
Вызовы инструментов отклоняются
- Некоторые инструменты требуют одобрения — вы увидите запрос на подтверждение/отклонение
- Инструменты только для чтения (browse, analyze, query) подтверждаются автоматически
- Инструменты, изменяющие данные (create, update, delete), могут требовать одобрения в зависимости от настроек администратора
ИИ-анализ не сохраняется
Для функций, которые сохраняют анализ (тестовые отчёты, аномалии фаззинга, результаты нагрузочного тестирования), анализ сохраняется автоматически. Обновите страницу, чтобы увидеть его в отчёте.
Пользовательские заголовки не применяются
- Переопределения заголовков действуют для каждой функции — проверьте, что вы установили их для правильной функции
- Переопределения заменяют значения по умолчанию сервера — если вы установите
Authorization, это переопределит аутентификацию сервера - Очистите переопределения, если хотите вернуться к настройкам сервера по умолчанию