Answer42 под капотом: как AI-агент получает руки в интерфейсе 1С

Расширенная техническая версия для сайта 42Clouds: архитектура, установка, OpenClaw, Linux, виртуальные дисплеи, RAG, доказательная запись и агентские skills.
Answer42

Коротко: зачем нужен Answer42

Answer42 — open-source MCP-сервер для интерактивного управления UI 1С:Предприятия через клиент тестирования. Если обычный MCP-сервер дает агенту контекст — метаданные, код, данные, журнал регистрации, то Answer42 дает агенту еще и действие. Агент может открыть форму в 1С, нажать кнопку, заполнить поле, выбрать ссылку из формы выбора, перейти по строкам таблицы, настроить динамический список, вывести табличный документ и сохранить результат.

Для 42Clouds это не игрушка и не демо ради демо. Это часть инженерного процесса, где AI-агенты помогают в разработке, тестировании и исследовании реальных 1С-стендов.

Где место Answer42 среди MCP-инструментов 1С

В экосистеме 1С уже появляются разные MCP-серверы:

  • серверы для чтения метаданных;
  • серверы для поиска по BSL-коду;
  • серверы для выполнения SELECT-запросов;
  • серверы для проверки синтаксиса и API платформы;
  • MCP-надстройки над Vanessa Automation.

Answer42 занимает отдельную нишу: UI driver для живого клиента 1С.

Он нужен, когда вопрос звучит не в формате: «Какие метаданные у объекта?», а:

  • «Открой эту форму и посмотри, как она реально выглядит»;
  • «Создай элемент и проверь, что он сохранился»;
  • «Примени отбор в списке и выгрузи результат»;
  • «Сделай smoke-проход и приложи скриншоты»;
  • «Найди техническое имя поля на форме»;
  • «Проверь, что после доработки кнопка появилась и нажимается».

Сравнение с Vanessa Automation MCP

Актуальная документация Vanessa Automation MCP описывает процесс, в котором AI-агент помогает работать с Vanessa Automation: загружает feature-файлы, анализирует Gherkin/Turbo Gherkin, запускает сценарии, получает результаты, ищет готовые шаги, записывает действия пользователя и помогает писать автотесты.

Это сильный подход, когда ваша цель — разрабатывать и сопровождать BDD-сценарии Vanessa Automation.

Answer42 решает другую задачу. Он не требует предварительно писать feature-файл и не является редактором сценариев. Агент напрямую вызывает MCP-инструменты и управляет test-client 1С. Это удобно для одноразовых исследований, интерактивной помощи, smoke-проверок, быстрой диагностики и доказательной записи.

Критерий Vanessa Automation MCP Answer42
Главная идея AI помогает писать и запускать VA/BDD-сценарии AI напрямую управляет UI 1С
Рабочая единица Feature/scenario/step MCP tool call/интерактивное действие
Сильная сторона Gherkin, переиспользование шагов, BDD-процесс Быстрое исследование, UI automation, доказательства
Требование к сценарию Обычно нужен feature-файл или работа в редакторе VA Не нужен, агент может действовать сразу
Работа с формами Через инструменты VA и контекст тестирования Через first-class tools Answer42
Доказательная запись Скриншоты и результаты VA PDF/HTML-отчет доказательной записи с MCP-вызовами и скриншотами
RAG по метаданным Не основная задача Встроенная подсистема

Вывод: это не конкуренты, а разные уровни. Vanessa Automation MCP хороша как инструмент для production BDD-контура. Answer42 хорош как универсальный UI-мост для агента.

Сравнение с браузерными агентами

Отдельно стоит сравнить Answer42 с инструментами, которые управляют приложениями через браузер: Playwright/Selenium-обертки, browser-use, Computer Use и другие агентские браузеры. Их сильная сторона — обычные веб-приложения. Агент видит страницу через DOM-дерево, accessibility tree и/или скриншоты, после чего кликает по координатам или по найденным HTML-элементам.

Для 1С такой подход работает хуже. Даже если использовать веб-клиент 1С, DOM там отражает техническую разметку платформы, а не бизнес-смысл формы: реквизиты, команды, динамические списки, табличные документы и состояния формы приходится восстанавливать косвенно. Скриншоты помогают понять картинку, но это пиксели: они зависят от масштаба, темы, языка интерфейса, размера окна и не дают надежных технических имен объектов.

Answer42 эффективнее именно для 1С, потому что работает не «глазами браузера», а через штатный API клиента тестирования 1С. Агент получает first-class операции: открыть форму, найти поле по имени или заголовку, выбрать строку, нажать кнопку, прочитать текущую строку таблицы, вывести динамический список, сохранить табличный документ. Дополнительно RAG-индекс связывает элементы UI с метаданными конфигурации.

Критерий Браузерные агенты Answer42
Источник понимания UI DOM/accessibility tree и скриншоты API клиента тестирования 1С + RAG метаданных
Устойчивость к изменению верстки/масштаба Ниже: координаты и DOM могут меняться Выше: действия идут по объектам 1С
Понимание 1С-семантики Косвенное, через текст и структуру страницы Прямое: формы, поля, команды, таблицы, динамические списки
Работа с тонким/толстым клиентом Обычно недоступна Основной сценарий
Evidence Скриншоты/видео браузера PDF-запись MCP-вызовов со скриншотами окна 1С

Вывод: браузерные агенты полезны для веб-сайтов и web-only сценариев. Answer42 закрывает другой слой — управляемый интерфейс 1С, где важны не пиксели и HTML-разметка, а объекты платформы и проверяемые действия в test-client.

Сравнение с /web-test из cc-1c-skills

Есть еще более близкий пример 1С-автоматизации через браузер — skill /web-test из cc-1c-skills. Он автоматизирует веб-клиент 1С через Playwright: навигацию по разделам, чтение форм, таблиц и отчетов, заполнение полей, фильтрацию списков, автономные и интерактивные сценарии. Это практичный инструмент, особенно когда база уже опубликована как веб-клиент и нужно быстро замкнуть цикл «загрузили изменения → обновили базу → проверили через браузер».

Ключевое ограничение такого подхода: /web-test работает только с опубликованными базами по веб-ссылке. База должна быть доступна через Apache/веб-публикацию, а агент взаимодействует именно с браузерным представлением 1С. Если база файловая на диске разработчика или серверная в кластере 1С без публикации в веб, такой skill сам по себе к ней не подключится.

Answer42 находится ниже уровнем и работает через штатный test manager/test client 1С. Поэтому он может подключаться не только к web/ws URL, но и к серверным базам (server/infobase) и файловым базам (/F или через автономный сервер, когда доступен ibsrv). Это важно для локальной разработки, CI, smoke-проверок на непубликованных стендах и диагностики форм в обычном тонком клиенте. Еще один плюс: Answer42 опирается на официальные механизмы клиентского тестирования 1С, поэтому обычно устойчивее к изменениям HTML-разметки веб-клиента и обновлениям визуального слоя платформы, чем браузерные сценарии, завязанные на DOM.

Критерий /web-test / Playwright skill Answer42
Канал работы Браузер и веб-клиент 1С Test manager + test client 1С
Требование к базе Нужна веб-публикация и URL Web/ws URL, серверная база или файловая база
Основная сила Быстрая автоматизация опубликованного веб-клиента, сценарии на JS Универсальный UI-driver для 1С-клиентов и MCP evidence
Уровень восприятия UI DOM/accessibility tree, браузерные события, скриншоты API клиента тестирования 1С + RAG метаданных
Устойчивость к изменениям платформы Зависит от стабильности веб-DOM и визуальной разметки Выше: используются официальные механизмы тестирования 1С
Где особенно полезен Проверки уже опубликованной базы через браузер Локальная разработка, серверные/файловые базы, headless E2E, evidence recording

Вывод: /web-test — хороший и полезный браузерный skill для опубликованных веб-баз 1С. Answer42 закрывает более широкий инфраструктурный слой: агент может работать с теми базами, которые вообще не опубликованы в веб, и управлять 1С через test-client API, а не только через браузерную оболочку.

Answer42

Общая архитектура Answer42

Answer42 состоит из нескольких слоев:

  1. MCP-клиент — OpenClaw, Claude Code, Cursor, Roo Code или другой клиент, где работает AI-агент.
  2. Python MCP server Answer42 — принимает MCP-вызовы, управляет сессиями, RAG, доказательной записью и процессами 1С.
  3. WebSocket bridge — локальный транспорт между Python и обработкой в 1С.
  4. 1С test manager — тонкий клиент 1С в режиме /TESTMANAGER, куда загружена конфигурация MCPTestManager.cf.
  5. 1С test client — тестируемое приложение, подключенное к целевой базе.
  6. Целевая информационная база — реальная база или тестовый стенд, по интерфейсу которого агент выполняет операции.

Схема:

Answer42 под капотом: как AI-агент получает руки в интерфейсе 1С - 42CLOUDS

Важный момент: Answer42 не кликает мышкой через X11. Основные действия выполняются через штатный API клиента тестирования 1С. X11 нужен в первую очередь для запуска GUI-клиентов в headless Linux-среде и для скриншотов.

Почему нужен test manager и test client

В платформе 1С клиент тестирования устроен как пара:

  • менеджер тестирования (/TESTMANAGER) управляет тестируемым приложением;
  • клиент тестирования (/TESTCLIENT) — это приложение, с которым выполняются действия.

Answer42 запускает или подключает эту пару и использует API ТестируемоеПриложение: получить активное окно, найти элемент, нажать кнопку, установить значение, прочитать таблицу, открыть навигационную ссылку.

Такой подход принципиально надежнее, чем «двигать мышь по координатам». Агент работает с объектной моделью UI 1С, а не с пикселями.

Сессии: изоляция процессов и временных ресурсов

Каждый запуск Answer42 создает сессию. В сессии хранятся:

  • session_id;
  • X11 display, если Linux/headless;
  • путь к платформе 1С;
  • порты WebSocket bridge, автономного сервера и test-client;
  • временная директория;
  • base URL целевой базы;
  • runtime-процессы;
  • recorder;
  • привязанный RAG snapshot.

Это позволяет запускать несколько независимых сценариев и не смешивать окна, порты и временные базы.

Облачный сервер для 1С
Бесплатно перенесем ваши базы и настроим работу с данными в соответствии с требованиями законодательства
Тестировать бесплатно

One-shot запуск: что делает start_session

Один из важных принципов Answer42 — агент не должен вручную собирать инфраструктуру из десяти команд. Для этого есть start_session.

Он делает все:

  1. Определяет версию платформы 1С по base_url или использует явно переданную.
  2. Проверяет совместимость платформы.
  3. Подбирает свободные порты.
  4. На Linux поднимает Xvfb, если нужен виртуальный дисплей.
  5. Запускает WebSocket bridge.
  6. Создает файловую базу менеджера тестирования.
  7. Загружает MCPTestManager.cf.
  8. Если доступен ibsrv, публикует менеджер через автономный сервер; если нет — использует fallback через файловую базу /F.
  9. Запускает test manager.
  10. Подключает test client к целевой базе.
  11. Подтягивает credentials из локального файла, если они не переданы явно.
  12. Запускает idle watcher, чтобы сессия не висела вечно.

В итоге агенту достаточно вызвать примерно такое:

start_session(
  session_id="dev-check",
  base_url="https://example.invalid/infobase",
  idle_timeout_minutes=60
)

Linux, OpenClaw и виртуальные дисплеи

В 42Clouds мы используем Answer42 в связке с OpenClaw и Linux-инфраструктурой.

OpenClaw дает:

  • долгоживущих агентов;
  • подключение MCP-серверов;
  • skills — инструкции для типовых задач;
  • маршрутизацию задач между профильными агентами;
  • безопасное хранение локального контекста;
  • возможность работать с Telegram/чатами, GitLab, 1С, браузером и другими инструментами из одного агентского контура.

Linux удобен для серверного запуска, CI и headless-сценариев. Но у 1С есть GUI-клиент, и ему нужен дисплей. На сервере обычно нет физического монитора, поэтому используется Xvfb — виртуальный X11-дисплей.

Xvfb необходим, чтобы:

  • тонкий клиент 1С мог стартовать в GUI-режиме на headless-сервере;
  • можно было делать скриншоты окон;
  • несколько сессий могли жить на разных display;
  • тесты и агентские проверки можно было гонять без реального рабочего стола.

Важно: Xvfb — это не способ «кликать по координатам». Это среда, в которой живут окна. Действия Answer42 выполняет через API клиента тестирования 1С.

Безопасность credentials

Главное правило: логины и пароли не должны попадать в чат с агентом.

Answer42 поддерживает локальный credentials-файл:

export ONEC_MCP_CREDENTIALS_FILE=/secure/path/credentials.json

Формат:
{
  "entries": [
    {
      "url": "https://example.invalid/infobase",
      "username": "<USERNAME>",
      "password": "<PASSWORD>"
    }
  ]
}

Агент вызывает:

start_session(base_url=»https://example.invalid/infobase»)

А Answer42 сам находит подходящую запись. Пароль не виден в аргументах MCP-вызова, не попадает в историю чата и не возвращается наружу.

Для диагностики есть безопасная проверка:

credentials_check(base_url=»https://example.invalid/infobase»)

Она возвращает только факт наличия записи и маскированные значения.

RAG-индекс метаданных

Для UI-автоматизации мало видеть только заголовок поля. Агенту нужно понимать, что это за объект, какие у него реквизиты, какие типы, какие табличные части, какие формы и навигационные ссылки.

Answer42 умеет строить локальный SQLite/FTS индекс по:

  • EDT-исходникам;
  • XML-выгрузке Конфигуратора;
  • базовой конфигурации;
  • расширениям;
  • effective snapshot вида «base + extensions».

Индекс хранит:

  • объекты метаданных;
  • реквизиты и стандартные реквизиты;
  • табличные части и колонки;
  • формы и элементы форм;
  • поля СКД;
  • навигационные ссылки;
  • полнотекстовые chunks.

Зачем это нужно:

  • ui_tree может обогащаться типами элементов;
  • агент может не угадывать, а искать объект в метаданных;
  • для автогенерируемых форм можно синтетически понять поля по реквизитам объекта;
  • dynamic-list settings получают подсказки по доступным полям.

Пример CLI-подхода:

Облачный сервер для 1С
Бесплатно перенесем ваши базы и настроим работу с данными в соответствии с требованиями законодательства
Тестировать бесплатно
python3 scripts/rag_cli.py add-source Configuration /path/to/configuration/src --kind base
python3 scripts/rag_cli.py add-source Extension1 /path/to/extension/src --kind extension
python3 scripts/rag_cli.py snapshot Configuration+Extension1 --base Configuration --extension Extension1
python3 scripts/rag_cli.py build --snapshot Configuration+Extension1

Answer42

Доказательная запись: отчет, который можно показать человеку

Answer42 под капотом: как AI-агент получает руки в интерфейсе 1С - 42CLOUDS

Для тестирования и демонстраций важен артефакт. Answer42 умеет включать доказательную запись:

recording_start(output_dir="build/recordings/check-001")
...
recording_stop()

Каждый записанный шаг содержит:

  • имя MCP tool;
  • параметры вызова;
  • краткий ответ;
  • скриншот окна 1С;
  • дополнительные заметки.

На выходе получается manifest.json и PDF/HTML-отчет. Это удобно для:

  • регрессионных проверок;
  • демонстрации результата доработки;
  • баг-репортов;
  • аудита действий агента;
  • передачи результата тестировщику или разработчику.

Skills: как мы учим агента пользоваться Answer42

MCP дает инструменты, но агенту еще нужны правила применения. Для этого в OpenClaw используются skills — локальные инструкции, которые подключаются к задачам определенного типа.

Для Answer42 обычно нужны два класса skills:

  1. UI automation skill — как запускать сессию, как работать с окнами, таблицами, динамическими списками, как снимать доказательства, чего не делать через X11.
  2. RAG skill — как регистрировать источники метаданных, строить snapshots, искать объекты и использовать найденные данные в UI-задачах.

Пример правил из такого skill:

  • запускать 1С через /TESTMANAGER, не обычным клиентом;
  • использовать русскую локаль /Lru /VLru_RU;
  • для ссылочных полей предпочитать стандартные формы выбора;
  • не передавать псевдокоманды формы как навигационные ссылки;
  • после действий проверять сообщения пользователя и ошибки 1С;
  • не заявлять выполнение UI-задачи без скриншота или фактического состояния;
  • завершать сессию через stop_session.

Это превращает Answer42 из набора tools в устойчивую агентскую практику.

Установка Answer42

Для обычного пользователя рекомендуемый путь — установка готового пакета из PyPI. В этом режиме Answer42 уже содержит packaged .cf-артефакты менеджера и demo-клиента, поэтому вручную собирать конфигурации обычно не нужно.

Если установку выполняет AI-агент, можно дать ему отдельную инструкцию: https://gitlab.com/platform42/answer42-mcp/-/raw/beta/docs/agent-installation.md?ref_type=heads. В ней описаны установка пакета, установка skills, настройка ONEC_MCP_CREDENTIALS_FILE, подключение MCP-сервера и smoke-проверка.

Linux:
pipx install 'answer42[screenshot,linux-window-control]'

Если pipx не используется:
python3 -m venv .venv
. .venv/bin/activate
pip install 'answer42[screenshot,linux-window-control]'

Windows — только из интерактивной пользовательской desktop-сессии, не как service и не из заблокированного RDP-сеанса:

pipx install "answer42[screenshot,windows-window-control]"

# или:

python -m venv .venv

.venv\Scripts\Activate.ps1

pip install "answer42[screenshot,windows-window-control]"

Если нужно дорабатывать сам Answer42, тогда используется установка из git checkout:

git clone https://gitlab.com/platform42/answer42-mcp.git answer42

cd answer42

python3 -m venv .venv

. .venv/bin/activate

pip install -e '.[screenshot,dev,linux-window-control]'

Сборка конфигураций нужна разработчикам Answer42 и CI. Скрипт сам добавляет src в sys.path, поэтому PYTHONPATH=src больше не нужен:

python scripts/build_cf.py src/cf build/MCPTestManager.cf

python scripts/build_cf.py src/client_cf build/MCPTestClient.cf

Приоритетный способ сборки — ibcmd config import, без запуска Конфигуратора. Если ibcmd недоступен, скрипт автоматически переключается на Конфигуратор/DESIGNER через 1cv8. На PowerShell не используйте Linux-синтаксис PYTHONPATH=src python …; если когда-нибудь нужно задать переменную вручную, используйте $env:PYTHONPATH=»src»; python ….

start_session сам пересобирает build/MCPTestManager.cf, если файл отсутствует или XML-исходники новее. Demo-клиент для E2E аналогично собирает build/MCPTestClient.cf. В установленном PyPI wheel, где XML-исходников может не быть, Answer42 использует packaged .cf из mcp_1c.assets.

Запуск MCP-сервера: answer42 —ws-host 127.0.0.1 —ws-port 8765.

Установка skills

PyPI-пакет не должен сам записывать файлы в профили агентов, поэтому после установки пакета skills ставятся отдельной командой: answer42 install-skills.

По умолчанию устанавливаются два skills — answer42 и answer42-rag — в OpenClaw: ~/.openclaw/workspace/skills.

Другие варианты:

answer42 install-skills —agent claude

answer42 install-skills —agent codex

answer42 install-skills —agent opencode

answer42 install-skills —agent pi

answer42 install-skills —agent hermes

answer42 install-skills —agent all

answer42 install-skills —target-dir /path/to/skills

answer42 install-skills —list-agents

answer42 install-skills —dry-run —agent all

Для агентов без стабильного стандарта skill-директорий presets best-effort; если конкретная установка использует другой путь, лучше явно указать —target-dir.

Подключение в OpenClaw

В OpenClaw Answer42 регистрируется как stdio MCP server. Пример команды:

/mcp set Answer42={
	"command":"answer42",
	"args":[],
	"env":{"ONEC_MCP_CREDENTIALS_FILE":"/secure/path/credentials.json"},
	"enabled":true,
	"requestTimeoutMs":120000,
	"connectionTimeoutMs":30000,
	"toolFilter":{"exclude":["credentials_list"]}
}

ONEC_MCP_CREDENTIALS_FILE указывает на локальный JSON с логинами и паролями. Штатный режим такой: агент вызывает start_session(base_url=»…») без username/password, а Answer42 сам подставляет креды внутри MCP-процесса. Для управления записями есть tools:

  • credentials_save(url, username, password) — сохранить или обновить креды;
  • credentials_remove(url) — удалить запись;
  • credentials_check(base_url) — проверить, что для стенда есть креды.

Эти tools не возвращают ни логин, ни пароль, ни маску пароля. credentials_list лучше скрывать через toolFilter.exclude: агенту не нужен список URL-шаблонов. Если в start_session передан пароль вида ***, Answer42 считает это плейсхолдером и выдает явную ошибку, а не пытается авторизоваться.

После изменения MCP config перезапустите или перезагрузите OpenClaw gateway, если hot reload не подхватил конфигурацию.

Типовые сценарии применения

1. Smoke после доработки

Агент запускает сессию, открывает форму, проверяет наличие кнопки или поля, делает скриншот, закрывает сессию.

2. Разбор бага пользователя

Агент воспроизводит путь пользователя по UI, фиксирует, где появляется сообщение или ошибка, выгружает доказательства.

3. Проверка динамического списка

Агент применяет отбор, сортировку, выводит список в табличный документ и сохраняет результат.

4. Исследование формы перед разработкой

Агент получает дерево элементов, технические имена, видимость, доступность, структуру табличных частей.

5. Обучение агента конкретной конфигурации

Через RAG индексируются base + extensions, после чего агент может связывать UI-элементы с метаданными и меньше гадать.

Ограничения и честные предупреждения

  1. Не все в UI 1С одинаково доступно через API клиента тестирования. Например, форма «Изменить форму» частично ограничена: некоторые кнопки видны на скриншоте, но не нажимаются как обычные тестируемые кнопки.
  2. Нужна версия платформы с поддержкой нужных механизмов. В документации Answer42 ориентир — 1С:Предприятие 8.3.27+.
  3. GUI все равно нужен. Даже если действия идут через API, тонкий клиент 1С — GUI-приложение, поэтому в Linux нужен Xvfb или другой X11-дисплей.
  4. AI-агент не становится владельцем результата. Он помогает, но разработчик и тестировщик все равно отвечают за проверку и принятие решения.
  5. Секреты надо хранить вне чата. Credentials-файл и tool filtering — обязательная часть нормальной установки.

Почему это open-source

Первый прототип Answer42 был показан на Infostart Tech Event 2025. После этого мы в 42Clouds довели идею до инструмента, который можно использовать в настоящем агентском процессе.

Мы вывели проект в open-source, потому что MCP-инструменты для 1С должны развиваться в сообществе. У каждой команды свои стенды, свои типовые конфигурации, свои расширения, свои боли. Универсальный инструмент важен, но еще важнее — возможность доработать его под себя.

Финальная мысль

AI-агенты в 1С становятся полезными не тогда, когда «умно разговаривают», а когда получают инструменты: контекст, доступ к стендам, возможность проверить гипотезу, собрать отчет и показать результат.

Answer42 — один из таких инструментов. Он дает агенту руки в UI 1С. А дальше все зависит от того, какие задачи вы ему доверите.

И если вы еще не сделали свой MCP-сервер, начните с малого. Один хороший tool, который решает вашу ежедневную боль, часто полезнее десяти универсальных обещаний.

Как говорится в одном путеводителе: самое сложное в любом путешествии — сделать первый шаг. И не забыть полотенце.

0 0 голоса
Рейтинг

0 комментариев
Ранние Сортировка
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Новые статьи этого автора
Самое важное для бухгалтера — в Telegram
Получайте раньше других актуальные новости, записи вебинаров, короткие гайды по продуктам, советы по работе с 1С, реальные кейсы автоматизации и выгодные спецпредложения.
Новости, вебинары, советы по 1С и реальные кейсы — раньше всех.
Оставьте заявку. Мы свяжемся с вами в самое ближайшее время
Оставьте отзыв о нас

Расскажите, как сервис 42Clouds помог вашему бизнесу. Отзыв будет опубликован после проверки модератором.

Оставьте заявку. Мы свяжемся с вами в самое ближайшее время