ИИ-функции
Mockarty помогает создавать моки и тестовые скрипты, разбирать ошибки и анализировать результаты тестов. Начните с ИИ-действия на нужной странице или откройте чат с агентом для более длинной задачи. У некоторых ИИ-действий есть кнопка настроек: в ней можно выбрать модель или уточнить запрос.
Отслеживаемый чат агента продолжает работу при обновлении или закрытии страницы; для отмены используйте действие остановки. В кластере смена лидера не запускает заново работу, которую ещё выполняет другой узел. Задача сохраняет владельца до окончания записи результата и истории. При отказе узла проверьте внешние действия с неизвестным исходом перед повтором.


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 или пользовательских эндпоинтов
- Доступные модели — модели, которые пользователи могут выбирать в этом профиле
- Включён — переключатель активности профиля
- Рассуждение — насколько глубоко модель думает перед ответом там, где задаче
нужна глубина: планирование стратегии тестирования, судейство вердикта, ревью
кода, дизайн тестов, разбор прогона. Авто (по умолчанию) — каждая задача
берёт свой уровень; Низкое / Среднее / Высокое фиксируют уровень для
профиля; Выключено отключает. Чат и быстрые подсказки его не ждут. Модели
без рассуждений отвечают как раньше. Рассуждение оплачивается как выходные токены.
Если включён только один профиль, он используется автоматически. Когда существует несколько профилей, пользователи выбирают нужный для каждой ИИ-функции.
Профили пространства. Помимо серверных профилей, которыми управляет
администратор, владелец пространства может добавить СОБСТВЕННЫЕ профили
команды в Автономные миссии → Мощности — свой API-ключ, свой прокси,
пользовательские заголовки и свою модель. Агенты этого пространства предпочитают их серверным
(профиль со звёздочкой пробуется первым); другие пространства их не видят, а
API-ключи, учётные данные прокси и значения пользовательских заголовков
write-only и обратно не показываются. Если администратор включил шифрование
полей, все три вида секретов шифруются при хранении. Имена заголовков остаются видимыми, чтобы владелец мог проверить
состав интеграции. Удалите профили пространства —
и агенты незаметно вернутся к серверным.
Выбор подходящего профиля:
- Для быстрых операций (генерация скриптов, диагностика ошибок): используйте быструю модель, например
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) |
| 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 маршрутизирует вызов через соответствующий адаптер
- Результат: Результат инструмента возвращается ИИ для включения в финальный ответ
Администраторы могут запускать ручные проверки здоровья и обновления инструментов со страницы маркетплейса.
Система ИИ-агентов
Обзор
Используйте чат с агентом, когда одного ИИ-действия мало. Опишите желаемый результат: агент может выполнить несколько шагов и показать, какими инструментами воспользовался. Он умеет:
- Маршрутизировать ваш запрос к специализированному суб-агенту
- Выполнять несколько вызовов инструментов параллельно
- Поддерживать контекст разговора между сообщениями
- Запускать фоновые задачи асинхронно
- Использовать доступные инструменты для работы с моками, тестирования API, запросов к базам данных, отправки уведомлений и других задач
Виджет чата с агентом
Плавающий виджет чата в правом нижнем углу соединяет вас с системой агентов.

Как это работает:
- Напишите сообщение, описывающее, что вам нужно
- Система маршрутизирует ваше сообщение к наиболее подходящему суб-агенту
- Агент анализирует запрос и может вызвать инструменты (вы увидите вызовы инструментов в чате)
- Если вызовы инструментов требуют одобрения, вам будет предложено подтвердить или отклонить
- Агент возвращает ответ с учётом результатов инструментов
- Контекст разговора сохраняется — последующие сообщения строятся на предыдущем контексте
Ключевые возможности:
- Потоковые ответы — ответ появляется по мере генерации
- Прозрачность вызовов инструментов — видите, какие инструменты вызываются и их результаты
- Подтверждение действий — когда инструмент требует разрешения, вы можете подтвердить или отклонить запрос
- Сохранение сессий — закройте чат и вернитесь позже, контекст сохранён
- Множественные сессии — начинайте новые разговоры или продолжайте существующие
Архитектура суб-агентов
Для некоторых запросов чат выбирает специализированного агента, например для тестирования или анализа. Вы видите, какие инструменты он использует, и можете продолжить разговор без ручного выбора агента.
Принцип работы
Когда вы отправляете сообщение, оркестратор маршрутизирует его к наиболее подходящему суб-агенту на основе ключевых слов. Каждый суб-агент имеет:
- Доменно-специфичный системный промпт, направляющий его поведение
- Отфильтрованный набор инструментов, содержащий только необходимые для работы инструменты
- Ключевые слова маршрутизации, определяющие, когда он активируется
Если ни один суб-агент не подходит, оркестратор обрабатывает запрос напрямую, имея доступ ко всем утилитным, базовым и уведомительным инструментам.
Встроенные специалисты
| Суб-агент | Область | Что делает | Примеры запросов |
|---|---|---|---|
| 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-инструментам. Маршрутизирует сложные задачи к специалистам. | «Чем ты можешь помочь?» |
Как работает маршрутизация агентов
Маршрутизация автоматическая — просто опишите, что вам нужно, обычным
языком, и ассистент передаст запрос наиболее подходящему специалисту.
Если ничего конкретного не подходит, он ответит сам общими инструментами.
Администратор может добавить пользовательских агентов; когда совпадает
пользовательский агент, он имеет приоритет над встроенными.
Справочник встроенных инструментов
Система агентов включает более 90 встроенных инструментов, организованных по категориям. Каждый суб-агент имеет доступ к подмножеству инструментов, относящихся к его области.
Инструменты управления моками (через MCP)
| Инструмент | Что делает |
|---|---|
| create_mock | Создаёт или обновляет мок-эндпоинт с маршрутами, условиями, ответами и Faker-функциями |
| get_mock | Получает полную конфигурацию мока по ID |
| list_mocks | Выводит список всех конфигураций моков с пагинацией |
| delete_mock | Удаляет мок по ID (восстановимо из Корзины) |
| bulk_delete_mocks | Удаляет много моков за один вызов по их ID |
| restore_mock | Восстанавливает ранее удалённый мок; требуется доступ на запись |
| test_mock | Отправляет тестовый запрос к моку и возвращает ответ |
Инструменты управления хранилищами (через MCP)
| Инструмент | Что делает |
|---|---|
| get_global_store | Получает все пары ключ-значение из Глобального хранилища |
| add_to_global_store | Добавляет пары ключ-значение в Глобальное хранилище |
| get_chain_store | Получает все пары ключ-значение из хранилища цепочки |
| add_to_chain_store | Добавляет пары ключ-значение в хранилище цепочки |
Инструменты генерации кода (через MCP)
| Инструмент | Что делает |
|---|---|
| generate_from_openapi | Создаёт моки из OpenAPI/Swagger-спецификации (URL или JSON), по одному на операцию |
| generate_from_asyncapi | Создаёт моки для очередей (Kafka, RabbitMQ, NATS) из AsyncAPI-спецификации |
| generate_from_mocks | Собирает спецификацию OpenAPI 3.0 или AsyncAPI ИЗ существующих моков (обратное направление к generate_from_openapi): маршруты становятся путями, ответ каждого мока — примером и статусом операции. Только чтение; моки, которые нельзя выразить, честно перечисляются в warnings |
| post_generators_openapi_preview | Показывает, что получится из OpenAPI-спецификации, ничего не создавая |
| post_generators_asyncapi_preview | То же предварительное сравнение для AsyncAPI |
| post_generators_graphql_preview | То же для схемы GraphQL |
Инструменты шаблонов и файлов (через 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-спецификации |
| import_insomnia | Импортирует выгрузку Insomnia |
| import_curl | Превращает команды cURL в запросы |
| build_api_collection | Создаёт тестовую коллекцию с запросами, заголовками и ассертами |
Инструменты фаззинга
| Инструмент | Что делает |
|---|---|
| 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 | Сравнивает метрики между несколькими прогонами |
Инструменты записи трафика
| Инструмент | Что делает |
|---|---|
| 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-скрипт нагрузочного теста |
Инструменты контрактного тестирования
| Инструмент | Что делает |
|---|---|
| contract_validate_mocks | Валидирует конфигурации моков по API-спецификации (OpenAPI, proto, GraphQL) |
| contract_verify_provider | Проверяет, что реальный эндпоинт провайдера соответствует контракту |
| contract_check_compatibility | Проверяет обратную совместимость между двумя версиями API-спецификации |
| contract_validate_payload | Валидирует конкретный запрос/ответ по схеме |
Инструменты CI Triggers
| Инструмент | Что делает |
|---|---|
| list_ci_triggers | Список сохранённых CI Triggers (webhook’ов, которые срабатывают при запуске задачи Mockarty — GitLab pipeline, GitHub workflow, Jenkins job, CircleCI, custom) |
| get_ci_run_status | Читает текущее состояние CI-прогона, связанного с задачей Mockarty (queued, running, success, failed, cancelled, timeout) |
| cancel_ci_run | Помечает CI-прогон как отменённый и проваливает связанную задачу Mockarty |
| test_ci_trigger | Сухой прогон сохранённого CI Trigger по синтетической задаче — проверяет URL, авторизацию, шаблон тела и upstream-вызов без создания реального прогона. Полезно для валидации триггера до использования в запуске. |
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 для настройки поведения ИИ-кнопок
Агенты пространства
Помимо серверных пользовательских агентов, которыми управляет администратор, владелец пространства может завести собственных агентов команды в Настройки → AI и встречи → Агенты пространства. Агент пространства:
- действует только внутри своего пространства — его ключевые слова маршрутизируют только чаты и задачи этого пространства, и он невидим где-либо ещё;
- работает ровно с теми тулами, которые вы разрешили (обязателен хотя бы один) — ничего лишнего не добавляется, а права и лицензия каждого пользователя по-прежнему проверяются на каждом вызове;
- может перекрыть одноимённого серверного агента внутри пространства (ваш
triageвыигрывает у серверногоtriageдля вашей команды), но никогда не заменит встроенного специалиста; - может привязать один из LLM-профилей своего пространства (или серверный), чтобы его запуски использовали ключ и модель команды;
- инструкция проверяется при сохранении — текст, пытающийся переопределить системные правила, отклоняется с объяснением.
Создание, изменение и удаление агентов пространства требует роли владельца пространства; каждое изменение пишется в журнал аудита с автором. Администраторы видят все агенты пространств в админ-панели с бейджем ns: и могут в любой момент отключить или удалить агента.
То же управление доступно ИИ-агентам по MCP: custom_agents_list, custom_agent_save, custom_agent_delete.
Создание пользовательского агента
Администраторы создают пользовательских агентов в 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 |
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, export_recording_perf_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 | Надёжно отменить миссию или старую A2A-задачу |
Варианты использования:
- Внешний агент-оркестратор делегирует создание моков Mockarty
- CI/CD-агент просит Mockarty запустить тесты и сообщить результаты
- Мультиагентная система координирует тестирование между сервисами
Полный пример — обнаружение, отправка, опрос:
# 1. Узнать, какие навыки рекламирует этот Mockarty
curl -s http://localhost:5770/.well-known/agent.json | jq '.skills[].id'
# → "mock_management", "api_testing", "fuzzing", "analysis", ... (16 навыков)
# 2. Отправить задачу. skillId НЕОБЯЗАТЕЛЕН — укажите любой навык с карточки,
# чтобы направить задачу профильному специалисту, или опустите для
# свободной задачи. namespace тоже НЕОБЯЗАТЕЛЕН — без него задача выполнится
# в вашем пространстве имён по умолчанию.
curl -s -X POST http://localhost:5770/a2a/tasks/send \
-H "Authorization: Bearer $MOCKARTY_API_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"description":"Сколько моков существует? Ответь числом.",
"skillId":"analysis"}'
# → {"id":"6e333787-...","status":"submitted"}
# 3. Опросить результат
curl -s http://localhost:5770/a2a/tasks/6e333787-... \
-H "Authorization: Bearer $MOCKARTY_API_TOKEN"
# → {"id":"6e333787-...","status":"completed","result":{"content":"Моков: 171."}}
# 4. Отменить протухшую или ошибочно отправленную работу. Если ответ потерян,
# повторите тот же ключ: Mockarty не создаст вторую команду отмены.
curl -s -X POST 'http://localhost:5770/a2a/tasks/6e333787-.../cancel' \
-H "Authorization: Bearer $MOCKARTY_API_TOKEN" \
-H 'Idempotency-Key: cancel-6e333787'
# → {"status":"canceled"}
Сначала отмена ищет каноническую автономную миссию, затем — старую A2A-задачу с
тем же внешним ID. Для токена, не закреплённого за одним пространством, добавьте
?namespace=<имя>: Mockarty выполнит ту же проверку членства, что и при отправке
задачи. Успешный ответ означает, что команда отмены надёжно записана. После этого
Mockarty останавливает точные поколения дочерних исполнителей; недоступная или
неопределённая отмена возвращается как повторяемая ошибка, а не как ложный успех.
Принимается любой навык из карточки агента. Навык с выделенным специалистом
(например fuzzing, security_scanning, api_testing) направляется прямо к
нему, остальные обрабатывает общий оркестратор. Отправка неизвестного навыка
возвращает 400 — так вы поймаете опечатку по карточке.
Протокол 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»
Выбранный профиль был удалён или отключён. Нажмите кнопку-шестерёнку и выберите другой профиль.
«AI provider unavailable»
До настроенного сервера модели не удаётся подключиться. Проверьте адрес профиля и доступность сети; для локальной модели убедитесь, что её сервер запущен. В таком случае анализ записи и встроенная генерация моков, тест-кейсов и скриптов возвращают 503 с кодом unavailable, а не сообщают о внутренней ошибке платформы.
Чат показывает ошибку провайдера
Чат кратко сообщает об ошибке провайдера или ограничении частоты, не показывая исходный ответ, в котором могут быть приватные данные запроса. При ограничении частоты повторите запрос позже; если ошибка повторяется, попросите администратора проверить LLM-профиль и соединение с провайдером.
«Не хватает AI-кредитов»
В облачном пространстве запрос к модели отклоняется до запуска, если кредитов не хватает. Пополните AI-баланс в кабинете Cloud или выберите менее затратную задачу. Обычный запрос чата возвращает 402 с кодом llm_budget_blocked и причиной credits_exhausted; потоковый чат показывает такое же понятное сообщение. За отклонённый запрос кредиты не списываются.
ИИ отвечает медленно
- Попробуйте более быструю модель (переключитесь с 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, это переопределит аутентификацию сервера - Очистите переопределения, если хотите вернуться к настройкам сервера по умолчанию
Переносимые bundle навыков
В Настройки → Навыки и инструменты агента выберите Импортировать навык. Вставьте текстовый bundle в JSON, нажмите Проверить, изучите инструкции и заявленные зависимости, затем импортируйте его в текущий namespace. Импорт доступен владельцу; остальные пользователи могут использовать доступные им включённые навыки.
Bundle содержит SKILL.md с YAML-полями name и description, вспомогательные текстовые файлы UTF-8, а также фиксированные источник, ревизию и лицензию. Файлы сохраняются без изменений. Импорт не скачивает зависимости и не выполняет скрипты. Поддерживаются переносимые текстовые навыки из каталогов сообщества; плагины Hermes/OpenClaw не запускаются, а совпадение их инструментов с Mockarty не гарантируется.
{"files":{"SKILL.md":"---\nname: ci-review\ndescription: Review CI evidence\n---\nRead references/ci.md and summarize the failure.","references/ci.md":"CI evidence to inspect"},"origin":{"Source":"local:ci-review","Revision":"v1","License":"MIT"}}
Ограничения: 128 файлов, 256 KiB на файл, 1 MiB текста на bundle, 64 KiB инструкций навыка. Допустимы только точные относительные пути. Неподдерживаемые заявленные зависимости отключают импортированный навык; сначала явно адаптируйте bundle. Пустой список недостающих зависимостей не заменяет проверку инструкций и совместимости инструментов.
Для автоматизации POST /api/v1/agent-skills/import?namespace=<namespace> принимает этот объект; добавьте "preview":true для проверки без сохранения. Для замены импортированного bundle передайте текущий digest в expectedDigest. Конфликт или локально изменённый навык возвращает 409. Если пространство изменилось во время импорта, обновите страницу перед повторной попыткой. Окончательное удаление пространства удаляет его импортированные навыки и ресурсы.
Внешние MCP-клиенты используют import_skill_bundle, run_skill и read_skill_resource. Тот же инструмент чтения ресурсов доступен нативному агенту. run_skill возвращает инструкции и метаданные bundle: digest, пути и происхождение. Один вспомогательный файл читается через GET /api/v1/agent-skills/resource?namespace=<namespace>&name=<name>&digest=<digest>&path=<encoded-relative-path>. Отключённый, удалённый, изменённый или заменённый навык отказывает в доступе к старым ресурсам. Импортированный текст и файлы остаются недоверенными инструкциями и не предоставляют инструменты или учётные данные.
Профили советника и анализа изображений
Откройте настройки пространства и раздел AI и встречи. Укажите ID профиля в поле Профиль советника агента или Профиль анализа изображений, затем сохраните настройки. Профиль должен быть включён и доступен этому пространству; подходит и серверный профиль. Для анализа изображений в профиле должна быть включена поддержка изображений. Пустое поле отключает соответствующую роль. Основная модель остаётся выбранной в агентском чате.
Агент может вызвать ask_advisor для рекомендации и inspect_image для изображения, прикреплённого пользователем. Вспомогательная модель получает переданный вопрос или выбранное изображение и возвращает рекомендацию. Сама она не вызывает инструменты. Эти вызовы расходуют общий лимит токенов агента: не более четырёх вызовов за ход чата и до 2 048 выходных токенов на вызов. Если профиль изменён или стал недоступен во время хода, вызов отклоняется; исправьте настройки и начните новый ход. Имена профилей для этих двух ролей не принимаются.
Подключение личного ассистента в Telegram
Администратор сначала настраивает и включает канал уведомлений Telegram с токеном бота и его настоящим именем. Затем выберите рабочее пространство, откройте свои настройки каналов уведомлений и нажмите Личный ассистент у канала Telegram. Отсканируйте QR или откройте ссылку и нажмите Start в личном чате с настроенным ботом.
Ссылка одноразовая и действует десять минут. Закрытие окна отменяет ожидающую ссылку; новая ссылка для того же бота заменяет предыдущую. QR содержит код привязки, а не секрет бота. Это подключение к уже существующему боту: новый бот не создаётся, вход в ваш личный аккаунт Telegram не выполняется.
Отправьте /do <задача>, чтобы передать задачу нативному агенту Mockarty. Ассистент использует пространство, выбранное при привязке, и ваши текущие права; последующая смена пространства в шапке не меняет привязку. Для смены пространства подключитесь повторно. Отключение канала или вашей привязки останавливает передачу задач ассистенту. Окончательное удаление пространства удаляет подключение ассистента и ожидающие ссылки; после создания нового пространства с тем же именем нужно подключиться заново. Результаты приходят через существующую доставку задач в мессенджер. Миссии по расписанию используют существующие настройки планирования Mockarty.
Для UI-клиентов API POST /api/v1/channels/telegram/assistant/connect?namespace=<имя> принимает {"channelId":"<id>"} и возвращает ссылку, QR и срок действия. POST /api/v1/channels/telegram/assistant/cancel принимает {"token":"<код-привязки>"}. Оба запроса требуют аутентификации; подключение также требует доступа к выбранному пространству. Эти операции привязки аккаунта намеренно не включены в каталоги SDK, CLI и MCP.
Если переименовать импортированный skill в редакторе, его ресурсы станут недоступны. Чтобы снова импортировать исходное имя, верните это имя или сначала удалите переименованный skill: старая привязка bundle не должна переходить к другому навыку.