Новость ZennoPoster 7.9.2.0 — Публичный API и MCP-серверы • Агентный режим ИИ-кубика

ZennoLab Team

Super Moderator
Команда форума
Регистрация
22.01.2019
Сообщения
2 112
Реакции
4 604
Баллы
113
ZennoPoster 7 (7.9.2.0) RU.png


Состоялся релиз ZennoPoster 7.9.2!

Главное обновление — у ZennoPoster и ProjectMaker появился публичный HTTP API и комплект MCP-серверов: продуктом теперь можно управлять извне — из своих скриптов и приложений или прямо из AI-ассистента. Второе большое нововведение — агентный режим кубика «ИИ Агент». Также внешнее окно браузера научилось держаться поверх программы, ProjectMaker стал запускаться примерно вдвое быстрее, ускорена работа браузерных потоков.



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​

Весь список изменений 7.9.2

Добавлено:

+ Публичный HTTP API и комплект MCP-серверов
У ZennoPoster и ProjectMaker появился публичный HTTP API и комплект MCP-серверов. Продуктом теперь можно управлять извне — из собственных скриптов и приложений или прямо из AI-ассистента (Claude Code, Cursor и любого другого MCP-клиента): читать и редактировать проекты, ставить задачи на выполнение, управлять браузером.
  • Публичный REST API (PublicAPI) — более 100 операций под единым контрактом: работа с проектом в ProjectMaker (дерево действий, переменные, списки, таблицы, статические данные), управление задачами и сессиями выполнения в ZennoPoster, управление браузерным инстансом (навигация, клики, ввод текста, скриншоты). Контракт описан в OpenAPI — по спецификации можно сгенерировать клиент для любого языка.
  • API-ключи с гибкими правами. Ключи выпускаются в ProjectMaker (Settings → API Keys); для каждого ключа задается набор разрешений (scopes) и максимальный уровень операций (tier) — от строго read-only до полного управления. Ключ показывается один раз при создании; все ошибки авторизации API возвращает в структурированном виде, с указанием, каких именно прав не хватило.
  • MCP-серверы для AI-ассистентов. Три сервера — ProjectMaker (редактирование проекта), Instance (управление браузером), ZennoPoster (задачи и сессии) — публикуются как готовые self-contained сборки: скачали, вписали свой API-ключ, подключили к своему LLM-клиенту. Права ассистента определяются вашим ключом. Серверы принимают подключения только с локальной машины.
Встроенный AI-чат продукта работает на этой же инфраструктуре — та же модель прав и тот же API, никаких скрытых привилегированных каналов.

Публичные серверы — в репозитории https://github.com/ZennoLab/zennoposter-mcp
Документация (гайд интегратора, интерактивный OpenAPI-контракт, справочник операций, коды ошибок и политика версионирования): https://zennolab.github.io/zennoposter-mcp/ — там же на GitHub лежат релизы MCP-серверов.

+ Инструменты сохранения, загрузки и закрытия проекта ProjectMaker.
  • save_project и open_project возвращают признак свежести файла: fileHash (SHA-256 содержимого .zp на диске, считается после записи), fileSizeBytes, lastWriteTimeUtc. Повторное открытие того же файла дает идентичный хеш — так можно убедиться, что на диске именно то, что ожидалось.
  • get_project_info дополнен флагом hasUnsavedChanges и теми же полями; хеш считается только когда несохраненных правок нет.
  • close_project закрывает открытый проект. По умолчанию проект с несохраненными правками не закрывается: возвращается 409 failed_precondition, чтобы работа не пропала молча. Чтобы закрыть с потерей правок, нужно явно передать discardUnsavedChanges: true.

+ Улучшены инструменты чтения структуры проекта.
  • get_project_structure отдает граф: узлы (тип, метка, стартовая точка, switch, отключенность, принадлежность к error-ветке, groupId/actionId) и ребра (OnSuccess/OnError/Default/Case-N, включая неявные переходы). Ответ трехуровневый — обзор групп, срез по группе или полный граф, чтобы не раздувать ответ на больших шаблонах.
  • find_path(from, to) — кратчайший маршрут между двумя кубиками.
  • get_action_connections(actionId) — все входящие и исходящие связи и ветки конкретного кубика.

+ Инструменты MCP ProjectMaker для редактирования схемы и статических блоков проекта — часть из них добавлена по вашим запросам с форума.
  • Свойства действий. set_action_properties читает и меняет флаги «Отключено», «Точка остановки», «Необязательное» и комментарий кубика; get_action_details и get_project_structure их показывают. Отключение кубика капчи, как и в редакторе, отключает и парный кубик.
  • Переименование. rename_action и rename_group задают подпись кубика и группы — имя сразу видно на схеме и в панели свойств, правка отменяется через Ctrl+Z.
  • Раскладка схемы. get_layout отдает координаты и размеры всех групп; set_group_position переносит одну группу, set_layout — сразу несколько, одной перерисовкой и одним шагом отмены. Если группа наложится на другую, запрос отклоняется с перечислением мешающих групп — как при перетаскивании в редакторе. add_action принимает место вставки (координаты новой группы или позицию внутри существующей), copy_group копирует группу в заданную точку схемы.
  • Блок «Директивы using и общий код». get_shared_code и set_shared_code читают и меняют директивы, общий код и путь к файлу общего кода; get_gac_references и set_gac_references — список ссылок из GAC. Правки сразу видны в открытом редакторе блока.
  • Входные настройки проекта. get_input_settings, add_input_settings, update_input_settings, remove_input_settings и reorder_input_settings — чтение, добавление, изменение, удаление и порядок полей формы; remove_input_settings_block удаляет блок входных настроек целиком. Значок входных настроек на панели проекта появляется и исчезает сразу, без переоткрытия проекта.
  • Изображение схемы. get_diagram_image возвращает картинку всей схемы или только видимой части — агент может оценить раскладку после своих правок и показать результат.

+ Инструменты MCP ZennoPoster для управления задачами.
  • Полный цикл задачи: tasks_create добавляет задачу из файла проекта, который уже лежит на диске (сама по себе задача при этом не запускается), tasks_start и tasks_stop запускают и останавливают ее, tasks_delete удаляет.
  • Настройки выполнения, потоки, число выполнений и расписание читаются и меняются так же, как в интерфейсе ZennoPoster, включая бесконечное выполнение (-1). Изменения сразу видны в открытом окне ZennoPoster.
  • tasks_success_clear и tasks_fails_clear сбрасывают счетчики успешных и неудачных выполнений.

+ В контекстном меню проекта в ZennoPoster появился пункт «Скопировать GUID» — идентификатор копируется в буфер в том виде, в каком его принимают операции API и MCP, его можно сразу передать агенту.

Агентный режим кубика «ИИ Агент»
В кубике «ИИ Агент» появился новый режим работы — агентный. В комбобоксе Режим теперь два значения: «Простой запрос» (прежнее поведение, без изменений) и «Автоматический запрос с MCP инструментами». Во втором режиме модель работает циклом «подумать → вызвать инструмент → посмотреть результат» и управляет браузером той задачи, в которой исполняется кубик, а также задачами ZennoPoster.
  • Цикл ограничен обязательным лимитом итераций. При его срабатывании кубик останавливается предсказуемо: частичный текст сохраняется в выходную переменную, выполнение уходит по ветке OnError.
  • Итог агента разбирается по вердикту RESULT: SUCCESS|FAILURE — кубик сам выбирает ветку OnSuccess или OnError.
  • Переменные проекта подставляются в промпт, результат цикла пишется обратно в переменные.
  • Ход решения виден в логе задачи по мере работы: шаги агента, вызовы инструментов и итог — долгий цикл больше не выглядит зависанием.
  • Остановка кубика или задачи прерывает и сам LLM-цикл. Раньше запрос доживал до конца и продолжал расходовать токены.
  • Многопоточность: каждый агент жестко привязан к браузеру своей задачи. Под нагрузкой 10×10 сессии не пересекаются и не могут «залезть» в чужой инстанс — попытка отклоняется сервером.
  • Режим работает одинаково в ProjectMaker и в ZennoPoster.
  • Дефолтный лимит токенов поднят с 400 до 2000, при температуре выше 1.0 в лог пишется предупреждение.
В этом режиме агенту доступны два набора инструментов: браузер той задачи, в которой работает кубик, и управление задачами ZennoPoster (список задач, запуск и остановка, настройки, расписание) — второй подключается, когда ZennoPoster запущен. Подключение собственных MCP-серверов и доступ агента к состоянию проекта запланированы на следующий этап.

Подробное руководство по ИИ в ZennoPoster
Внизу поста прикреплен файл «ИИ в ZennoPoster: полное руководство» в формате markdown. В нем разобраны все четыре способа работать с ИИ — встроенный ИИ-помощник, кубик «ИИ Агент», внешний агент через MCP и PublicApi напрямую: чем они отличаются, что выбрать под задачу, как выпустить API-ключ и настроить права, пошаговое подключение Claude Code, Cursor, VS Code и LM Studio, готовые сценарии запросов, решение типовых проблем и словарь терминов.

Инструкция: https://docs.zennolab.com/zennoposter/Hello/public-api-mcp
Полная документация — гайд интегратора, интерактивный OpenAPI-контракт, справочник операций, коды ошибок и политика версионирования: https://zennolab.github.io/zennoposter-mcp/
Страница установки с готовыми кнопками для Cursor и VS Code: https://zennolab.github.io/zennoposter-mcp/install.html
Релизы MCP-серверов: https://github.com/ZennoLab/zennoposter-mcp/releases

Агентный режим кубика «ИИ Агент»:


MCP-инструменты в работе:


+ Внешнее окно браузера в ProjectMaker можно держать поверх программы.
  • Тумблер «Поверх всех окон» рядом с «Примагнитить»: окно браузера и DevTools остаются видны поверх ProjectMaker, но фокус не перехватывают — текст, набранный в ProjectMaker, попадает в ProjectMaker. Настройка запоминается.
  • Новый режим размещения: окно браузера встает в ту же область, где раньше отображался встроенный браузер, и следует за ProjectMaker при перемещении, изменении размера и сворачивании.
  • Пока открыт диалог ProjectMaker, браузер временно уступает ему место, чтобы диалог не прятался под окном.

+ ProjectMaker запускается примерно вдвое быстрее: подготовка кэша настроек действий идет в фоне, пока вы не работаете с интерфейсом.

+ Ускорена работа браузерных потоков в Chromium и Chromium из ZennoBrowser, особенно при большом количестве потоков. Заодно исправлены методы ожидания загрузки вкладки WaitInteractive и WaitPreComplete: раньше при уже достигнутом состоянии они ждали весь таймаут навигации.

+ Браузер Chromium обновлен до версии 152.0.7977.83.

+ Опция «Сортировать переменные проекта по алфавиту»
теперь сортирует переменные и в самом окне «Переменные», а не только в списках макросов.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​

Исправлено:

ИИ-помощник и кубик «ИИ Агент»
  • Кубик «ИИ Агент» с пустым текстом запроса или без переменной для ответа больше не уходит в LLM-вызов: в лог сразу пишется понятная ошибка.
  • ИИ-помощник больше не вставляет несуществующие макросы в кубик If — проекты, собранные ассистентом, отрабатывают ветвление верно.
  • ИИ-помощник видит все ветки кубика «Logic | Switch», а не только Case0 и Default.
  • ИИ-помощник проставляет таймаут HTTP-кубика в секундах, а не в миллисекундах. Заодно исправлены такие же перекосы у «Файл существует», «Проверить директорию» и ZennoDroid-команд.
  • Вручную добавленная модель ИИ удаляется окончательно и не возвращается после смены поставщика или перезапуска программы. У штатных моделей кнопки удаления больше нет, чтобы их нельзя было удалить случайно.

Браузер и инстансы
  • В браузере Chromium и при интеграции с ZennoBrowser на кубиках, добавленных через «Конструктор действий», снова рисуются эскизы элементов — в обоих режимах отображения браузера.
  • Плашка кубика «Ожидание действий пользователя» больше не остается на экране и не переходит на следующий прогон проекта в ZennoPoster.
  • Проекты в браузере CEF больше не подвисают в многопоточном режиме на кубике «Ожидание действий пользователя»: из вкладки «Инстансы» снова можно продолжить выполнение и развернуть окно.
  • Кубик «Остановить инстанс» в ProjectMaker с браузером CEF больше не показывает панель «Произошла ошибка в процессе браузера».
  • Пункт «Скрыть» в контекстном меню вкладки «Инстансы» снова скрывает окно браузера, открытое кубиком «Ожидание действий пользователя».
  • В Chromium и Chromium из ZennoBrowser при высокой загрузке CPU/GPU запуск инстанса больше не зависает с ошибкой «Error occurs when applying profile to instance».
  • В Chromium и Chromium из ZennoBrowser клик по кнопке загрузки файла на некоторых сайтах снова открывает окно выбора файла — как из кубика, так и вручную.
  • Виртуальный курсор во внешнем окне браузера Chromium и Chromium из ZennoBrowser отображается стабильно.

Профили
  • Метод instance.Launch с аргументами запуска применяет аргументы и при работе с профиль-папками Chromium — так же, как кубик запуска инстанса.
  • Окно профиля больше не зависает в бесконечной загрузке после остановки инстанса без браузера.
  • Перегенерация профиля больше не подвешивает ProjectMaker, а запущенный в это время проект в ZennoPoster не падает с ошибкой «Ошибка при подготовке профиля».

ProjectMaker и интерфейс
  • Поле «Данные» в HTTP-кубиках снова растягивается вместе с окном свойств; вводимый текст не уходит под нижний край поля.
  • Свойства кубика «Запустить инстанс» сразу после запуска ProjectMaker открываются без бесконечного индикатора загрузки.
  • При повторном запуске проекта кубик «Проект в проекте» открывает именно тот проект, который в нем указан.
  • Кнопка «Открыть в ZennoPoster» в ProjectMaker добавляет проект в список задач, даже если ZennoPoster перед этим не был запущен.
  • Клавиша Esc закрывает диалоговые окна — например «Тестер регулярных выражений», «Политика контента» и «Настройка меню».

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​

Где скачать?

ZennoPoster 7.9.2.0 уже доступен в личном кабинете!
https://account.zennolab.com/personal-area-main/

Также, обновление будет предложено при запуске ProjectMaker.

Спасибо, что вы с нами. Обновляйтесь и делитесь впечатлениями в этой ветке.

 

Вложения

Что изменилось с тестового билда 7.9.2.0

Спасибо всем, кто тестировал бету и присылал отчеты. Ниже — что доехало в релиз после тестовой сборки.

Добавлено:
  • Инструменты MCP ProjectMaker для редактирования схемы и статических блоков проекта. То, что в тестовом билде значилось в планах «что готовим следом», уже в релизе: свойства действий, переименование действий и групп, раскладка схемы и вставка в заданную позицию, блок «Директивы using и общий код» со ссылками из GAC, входные настройки проекта, изображение схемы.
  • Инструменты MCP ZennoPoster для управления задачами: создание, запуск, остановка и удаление задачи, настройки выполнения, потоки, расписание, сброс счетчиков.
  • Агентному режиму кубика «ИИ Агент» добавлен второй набор инструментов — управление задачами ZennoPoster. В тестовом билде агенту был доступен только браузер своей задачи.
  • Ход решения агента виден в логе задачи по мере работы: шаги, вызовы инструментов и итог — долгий цикл больше не выглядит зависанием.
  • Пункт «Скопировать GUID» в контекстном меню проекта в ZennoPoster.
  • Внешнее окно браузера можно держать поверх программы: тумблер «Поверх всех окон» рядом с «Примагнитить» (фокус при этом не перехватывается) и новый режим размещения — окно встает в ту же область, где раньше отображался встроенный браузер.
  • ProjectMaker запускается примерно вдвое быстрее — подготовка кэша настроек действий идет в фоне.
  • Ускорена работа браузерных потоков в Chromium и Chromium из ZennoBrowser, особенно при большом количестве потоков; исправлены WaitInteractive и WaitPreComplete.
  • Браузер Chromium обновлен со 151.0.7922.176 до 152.0.7977.83.

Дополнительно исправлено:
  • Вручную добавленная модель ИИ удаляется окончательно и не возвращается после смены поставщика или перезапуска программы.
  • Проекты в браузере CEF больше не подвисают в многопоточном режиме на кубике «Ожидание действий пользователя».
  • Кубик «Остановить инстанс» в ProjectMaker с браузером CEF больше не показывает панель «Произошла ошибка в процессе браузера».
  • Пункт «Скрыть» в контекстном меню вкладки «Инстансы» снова скрывает окно браузера, открытое кубиком «Ожидание действий пользователя».
  • При высокой загрузке CPU/GPU запуск инстанса больше не зависает с ошибкой «Error occurs when applying profile to instance».
  • Клик по кнопке загрузки файла на некоторых сайтах снова открывает окно выбора файла.
  • Метод instance.Launch с аргументами запуска применяет их и при работе с профиль-папками Chromium.
  • Окно профиля больше не зависает в бесконечной загрузке после остановки инстанса без браузера.
  • Перегенерация профиля больше не подвешивает ProjectMaker, а запущенный проект не падает с ошибкой «Ошибка при подготовке профиля».
  • Виртуальный курсор во внешнем окне браузера отображается стабильно.
  • Свойства кубика «Запустить инстанс» открываются без бесконечного индикатора загрузки.
  • Кубик «Проект в проекте» при повторном запуске открывает именно тот проект, который в нем указан.
  • Кнопка «Открыть в ZennoPoster» добавляет проект в список задач, даже если ZennoPoster не был запущен.
  • Клавиша Esc закрывает диалоговые окна — «Тестер регулярных выражений», «Политика контента», «Настройка меню».
 
  • Оценить
Реакции: Sergodjan

Кто просматривает тему: (Всего: 6, Пользователи: 4, Гости: 2)