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

ZennoLab Team

Super Moderator
Команда форума
Регистрация
22.01.2019
Сообщения
2 113
Реакции
4 609
Баллы
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 закрывает диалоговые окна — «Тестер регулярных выражений», «Политика контента», «Настройка меню».
 
  • Оценить
Реакции: Serpentarius и Sergodjan
А чего не сделали отображение браузера в родной области чуть больше по высоте? Если снизу мб и спорный вариант, но вверх растянуть точно надо. Да и по бокам есть куда растянуть.
1789735957301.png
 
К сожалению вы не написали какие именно скриншоты вам нужны были, поэтому добавили, как поняли.
Скрин схемы - тоже отличная штука, учитывая что теперь можно перетаскивать кубики, теперь должны получаться более визуально удобные и красивые шаблоны, но скриншот браузера тоже однозначно нужен чтобы модель ориентировалась не только на dom. Я указал модели что можно делать скриншоты кубиком в случае проблем и она постоянно это делает.
 
"+ Внешнее окно браузера в ProjectMaker можно держать поверх программы."

Естественно ничего это не работает. Уже полная усталость от всего происходящего от версии к версии. Хоть кто-то это тестирует????

Ну выберите "В области FramePlayer" установите "Всегда поверх". Браузер прилипнет.
Откройте вторую вкладку в браузере.
Закройте первую вкладку.
Всё. Нет никакой привязки и исчезают элементы управления привязкой. Браузер отлипает. Чтобы опять появились элементы управления привязкой нужно перезапускать PM.

Неужели это такой сложный тест, перед тем, как выкатывать обновление.

** Поправка. Прилипание и элементы управления снова появятся, если открыть ещё одну вкладку. А если закрыть - снова пропадет. и т.д. живет своей жизнью при открывании\закрывании новых вкладок
 
Последнее редактирование:
После прокрутки окна браузера смещаются/перестают работать кликабельные области на страницах
В ProjectMaker столкнулся с проблемой на страницах Яндекс (но наблюдается также и на других сайтах).

Проблема состоит из двух связанных симптомов.
1. Страницу Яндекс невозможно нормально прокрутить свайпом внутри браузерной области. При попытке свайпа содержимое страницы не двигается. При этом, пока положение окна браузера не менялось, видимые элементы страницы нормально кликаются.
2. Если после этого сдвинуть содержимое страницы с помощью вертикального или горизонтального scrollbar окна браузера ProjectMaker хотя бы на несколько пикселей, визуально страница перемещается, но после этого элементы перестают нормально реагировать на клики.

То есть проблема воспроизводится не только при вертикальном скролле, но и при горизонтальном.
Создаётся впечатление, что после любого изменения scroll offset возникает рассинхронизация между визуальным положением страницы и координатами интерактивных областей / hit-test браузера.

Это очень очень очень неприятная штука, которая делает взаимодействие со страницей невозможным, при построении логики шаблона!
 

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