ИИ-оператор управляет КЭДО
У мастера первого запуска кадрового электронного документооборота (дальше КЭДО) шесть экранов. По прежней работе я был связан с разработкой интеграционного решения для КЭДО и видел этот мастер много раз. С настройками по умолчанию человек на нём в основном читает и нажимает «Далее».
Теперь кадровик пишет в чат «Подключи нас к КЭДО», входит в сервис в браузере и нажимает в 1С одну кнопку. Шесть экранов агент проходит сам. Следом вопрос: «Кто из принятых в сентябре ещё не подключён к КЭДО?» Модель отвечает, что таких четверо и у одного нет почты, и открывает в 1С их список. На «Пригласи тех, у кого есть почта» открывается штатная форма приглашения, уже заполненная. «Пригласить» нажимает кадровик.
Как зовут этих четверых, модель так и не узнала.
В первой статье я рассказывал про ИИ-оператора для «Бухгалтерии предприятия». Это MCP-сервер внутри сеанса пользователя 1С (MCP, Model Context Protocol, открытый протокол, по которому языковая модель вызывает внешние инструменты). Он показывает данные в штатных формах, считает типовыми отчётами и меняет данные только после подтверждения человеком. На этот раз я сделал отраслевой пакет для «Зарплаты и управления персоналом 3.1» (дальше ЗУП) с расширением КЭДО. Разберу, как агенту работать с чужим расширением, у которого нет API для внешних программ, и где в этой схеме стоит человек. Если коротко, на входе в сервис и у каждой кнопки, после которой что-то уходит сотрудникам или меняется в базе.
Содержание
- Что спрашивает кадровик
- Четыре вопроса в чат
- Что внутри
- Локальная модель
- Ограничения
- Что в итоге
Что спрашивает кадровик
Расширение КЭДО встраивается в ЗУП. Оно приглашает сотрудников в сервис, отправляет им документы на подпись и локальные нормативные акты (дальше ЛНА) на ознакомление, а статусы показывает в «Текущих делах КЭДО». Вопросы у кадровика изо дня в день одни и те же. Кого из новых ещё не пригласили и почему приглашение не дошло? Кто из приглашённых так и не подключился? С положением своя история: кто-то уже ознакомился, а кому-то его ещё не отправили. И вечное «почему у Петровой опять ничего не работает».
Все ответы уже лежат в базе, расширение хранит в ней копию данных сервиса. Только собрать их вместе значит пройти несколько форм и сверить списки. А с вопросом «почему не работает» часто идут в поддержку.
Требования к агенту я взял из первой статьи, в кадровом ЭДО они только строже. Результат показывается в штатных формах, которые кадровик и так знает. Сам агент ничего не отправляет, потому что приглашение и ознакомление уходят живым людям и отозвать их нельзя. Персональные данные модели не достаются, а в кадровых данных их больше, чем где-либо: ФИО, почта, телефоны, даты рождения. И никакой подгонки под процесс конкретной компании. Инструменты отдают состояния продукта, порядок действий модель собирает из вопросов пользователя.
Четыре вопроса в чат
Стенд у меня такой: копия демо-базы ЗУП 3.1.37 с КЭДО 1.27, сервис КЭДО заменён заглушкой. Клиент Claude Code, модель Claude Haiku 4.5, младшая и самая быстрая у Anthropic. Взял её нарочно. Если вопросы КЭДО тянет локальная модель на 27 миллиардов параметров (об этом ниже), младшей облачной тоже должно хватить.
Каждый вопрос я задавал минимум трижды с одного и того же состояния базы. Кнопки, где нужен человек, нажимал я. Время считаю от вопроса до ответа в чате, вместе с моими нажатиями. Ответы модели на картинках дословные.
«Подключи нас к КЭДО»
Расширение установлено, но ни разу не запускалось. Подключают его к сервису мастером первого запуска, в 1.27 он называется «Стартовый помощник». Экраны у него такие: права и доступы, вход в сервис, мои организации (соглашение, сопоставление и первый обмен), сотрудники, типы документов, другие настройки. С настройками по умолчанию думать приходится ровно в двух местах. Нужно войти своей учётной записью и согласиться с соглашением об электронной подписи. Их агент и оставляет человеку.
Модель вызывает kedo_setup с open: true на 6–9-й секунде. В браузере открывается вход в сервис, человек входит. Сразу после входа в 1С появляется вопрос с планом.

Вопрос с планом подключения. Текст соглашения открывается кнопкой рядом
В плане видно, какие организации сопоставятся по ИНН, какое соглашение будет принято и с каким сотрудником свяжут пользователя. До входа такой план не построить: это знает только сервис. После «Подключить» окно ожидания показывает шаги мастера. Весь сценарий со входом и нажатием занимает 27–31 секунду. С живым сервисом дольше всего будет первый обмен, он зависит от числа сотрудников.

Диалог: подключение к КЭДО одной кнопкой
Итог инструмент читает из базы: какие организации подключены, принято ли соглашение, с кем связан пользователь. Модель пересказывает его и предлагает пригласить сотрудников. Если человек не вошёл или нажал «Отмена», ничего не меняется. В КЭДО ниже 1.27 kedo_setup просто открывает мастер.
Сам пакет мастер не переписывает. Экраны мастера вызывают функции расширения КЭДО, и пакет вызывает те же функции в том же порядке. Поэтому до входа он проверяет версию КЭДО и наличие этих функций, а если чего-то нет, открывает обычный мастер.
Один раз модель меня насмешила. Итог подключения начинался с общего setup_done: true, и Haiku бодро доложила: «КЭДО уже подключено!» Хотя подключение сама же только что и провела. Помогло поставить первой строкой ответа подсказку «только что подключено по кнопке пользователя»: модель охотнее всего пересказывает начало.
«Что сейчас не так с КЭДО в нашей организации?»
Та же база, сразу после подключения. Модель вызывает диагностику по всей организации и через 12–14 секунд отвечает сводкой.

Диалог: диагностика КЭДО в организации
Цифры во всех трёх прогонах одни и те же: 32 сотрудника из 33 не подключены, у 28 нет ни почты, ни мобильного, 7 сотрудников сервиса не связаны с сотрудниками 1С, у одного данные расходятся. Совет тоже один: сначала контакты, иначе приглашение некуда отправить.
Интереснее то, чего в ответе нет. В журнале событий КЭДО на стенде 6 старых ошибок, и ни в одном прогоне модель про них не вспомнила. Диагностика отсекает ошибки, случившиеся до последнего успешного обмена с сервисом: скорее всего, они уже починились. А в ответе у неё есть поле limits с тем, чего проверка не видит (доставка писем, блокировка в сервисе), и модели сказано этого не утверждать.
«Кто из принятых в сентябре ещё не подключён к КЭДО? Покажи их»
Модель вызывает kedo_employees с отбором по дате приёма и статусу, находит четверых и показывает их в 1С инструментом из ядра. Путь во всех прогонах одинаковый: список открыт к 13–14-й секунде, ответ в чате приходит на 15–18-й.

Диалог: кто из новых сотрудников не подключён
Вместо имён у модели токены [ФИО#1]…[ФИО#4]. Должность и дату приёма она знает, а про почту только признак has_email. Имена видит кадровик, в обычном списке сотрудников ЗУП.

Список сотрудников в ЗУП с отбором по четырём найденным. ФИО демо-базы вымышленные
«Пригласи тех, у кого есть почта»
Модель берёт из прошлого ответа троих с почтой и вызывает kedo_invite. На 5–8-й секунде в 1С открывается штатная форма КЭДО «Приглашение сотрудников», уже заполненная. Отправлять модель не умеет, и так задумано: форма работает как предпросмотр из первой статьи, только чужой.

Штатная форма приглашения КЭДО, заполненная агентом. Отправляет кадровик кнопкой «Пригласить»
Когда форму закрывают, инструмент смотрит в базу, кого действительно пригласили.

Диалог: ответ после того, как кадровик нажал «Пригласить»
Если закрыть форму без отправки, модель так и говорит: приглашения не ушли. Первые версии в этом месте предлагали нажать «Пригласить» в форме, которую кадровик только что закрыл: поле opened: true в ответе модель читала как «форма сейчас открыта». Лечится тем же приёмом, что и «уже подключено»: первым в ответе идёт то, что нужно сказать.
С ЛНА всё так же: kedo_documents отвечает, кто ознакомился, kedo_familiarize открывает заполненную форму «Отправка на ознакомление».
Что внутри

Пакет КЭДО поверх ядра ИИ-оператора
Всё про КЭДО живёт в отдельном расширении «ИИОператор_КЭДО», в ядре нет ни строчки про кадровый ЭДО. Ядро находит пакет так же, как client_mcp находит провайдеров: по подсистеме <Префикс>_ИИО_Пакеты. В ней модули регистрации инструментов и разрешений и два макета, с описаниями для модели и с преднастройкой маскирования.
Заимствовать объекты чужого расширения нельзя, а вызывать его общие модули во время работы можно. Поэтому пакет ничего не заимствует ни у ЗУП, ни у КЭДО: данные читает запросами, формы открывает по имени. Сломался пакет — его инструменты не зарегистрируются, ядро продолжит работать.
В сервис КЭДО пакет сам не ходит, вход и отправка остаются за расширением. Читает он то, что расширение уже сохранило в базе, поэтому ответы быстрые. Обратная сторона: копия в базе стареет.
| Инструмент | Что делает | Кто меняет данные |
|---|---|---|
kedo_employees |
Сотрудники организаций КЭДО со статусом: не подключён, приглашён, приглашение просрочено, подключён. Статус считается так же, как в «Текущих делах КЭДО». Отбор по дате приёма, статусу, организации | — |
kedo_documents |
ЛНА со статусом утверждения, у утверждённых — кто ознакомлен, кто нет, кто отказался | — |
kedo_diagnose |
Почему КЭДО не работает у сотрудника или в организации: причина, важность, штатное исправление и что проверка не видела | — |
kedo_setup |
Настроено ли КЭДО; подключает его одной кнопкой: шаги мастера первого запуска с настройками по умолчанию. В КЭДО до 1.27 и по просьбе пользователя открывает сам мастер | пользователь: вход в сервис и кнопка «Подключить» |
kedo_invite |
Открывает форму «Приглашение сотрудников» с выбранными сотрудниками | пользователь кнопкой «Пригласить» |
kedo_familiarize |
Открывает форму «Отправка на ознакомление» утверждённого ЛНА с выбранными сотрудниками | пользователь кнопкой «Отправить на ознакомление» |
Кроме них модель пользуется инструментами ядра: поиском объекта (find_ref), показом списка в 1С (show_in_1c), открытием объекта.
kedo_invite и kedo_familiarize по умолчанию запрещены, как и действия ядра, разрешает их администратор. kedo_setup доступен тем, кому доступен мастер КЭДО. Маскирование пакета закрывает ФИО, почту, телефоны и даты рождения в объектах КЭДО. Токен вроде [ФИО#15] постоянен в течение сеанса, а переданный обратно в инструмент превращается в реальное значение.
Где проверялось: ЗУП 3.1.37 (демо-база, файловая), КЭДО 1.26.3 и 1.27.0, платформа 8.3.27, тонкий клиент Windows, Claude Code и Claude Desktop. Тестов YAxUnit 51, плюс сквозные через MCP.
Локальная модель
Для проверки локальных моделей у меня есть набор из 15 проверочных вопросов. Скрипт сверяет вызванные инструменты и ответ модели с ожидаемыми. Два вопроса про КЭДО. В «кто из принятых в сентябре ещё не подключён» нужен kedo_employees, а свой запрос считается ошибкой. В «пригласи принятых в сентябре» нужен kedo_invite, и в проверке модель получает ответ, что пользователь закрыл форму без отправки.
Qwen 3.8 27B в LM Studio (видеокарта RTX 3060 12 ГБ, контекст 32 тысячи токенов) прошла все 15, вопросы КЭДО за 2–4 минуты. Gemma 4 31B ответила на оба вопроса КЭДО и на 11 из 13 остальных. Один из двух провалов оказался ошибкой самой проверки: модель переспросила, но без вопросительного знака. Gemma 4 26B-A4B вышла самой быстрой, вопросы КЭДО за 30–75 секунд, и тоже ответила на оба. Из остальных она сначала взяла только 9 из 13, а после правки описаний (о ней ниже) 11.
Про LM Studio стоит знать две вещи.
Во-первых, она не передаёт модели общие инструкции MCP-сервера (instructions), только описания инструментов. Без инструкций обе Gemma на ошибке соединения советовали «попробовать позже», а Gemma 26B на «покажи в 1С» выводила таблицу в чат. Я перенёс эти правила в описания, и Gemma 26B стала отвечать на 13 вопросов из 15 вместо 11. Тонкость: «показывай в 1С» сработало не в описании инструмента показа, а в описании запроса. Решение модель принимает, получив ответ запроса, и к описанию показа уже не возвращается.
Во-вторых, описания ядра и пакета занимают около 8 тысяч токенов, четверть контекста в 32 тысячи.
Настройки загрузки: та же модель вдвое быстрее
Настройки LM Studio по умолчанию на моей машине (RTX 3060 12 ГБ, Ryzen 5 7500F, 64 ГБ ОЗУ) оказались далеки от лучших. Возьмём Gemma 4 26B-A4B (квантование Q8, файл 27 ГБ). Это модель из экспертов (MoE): параметров 26 миллиардов, но на каждый токен работают около четырёх. LM Studio отправила на видеокарту все слои. 27 ГБ в 12 ГБ не помещаются, и драйвер NVIDIA молча переложил 17 ГБ в общую память. Видеокарта читала их по шине и не жаловалась. Если оставить веса экспертов в ОЗУ и считать их процессором, на видеокарте остаётся 5,7 ГБ, а модель отвечает вдвое быстрее: генерация выросла с 10 до 21 токена в секунду, а вопрос о выручке контрагента с тремя вызовами инструментов занял 54 секунды вместо 96.
Что поставить в параметрах загрузки модели:
- контекст 32 тысячи токенов: в 8 тысяч по умолчанию вопросы КЭДО не помещаются, а лишний контекст отнимает видеопамять у слоёв;
- одновременных запросов один вместо четырёх;
- потоков процессора по числу физических ядер;
- для моделей из экспертов веса экспертов держать в ОЗУ: в LM Studio 0.4.25 это ползунок «Number of layers for which to force MoE weights onto CPU», поставить на все слои.
Для Qwen 3.8 27B (она не из экспертов) первые три пункта и больше слоёв на видеокарте сократили обработку описаний ядра с 84 до 66 секунд.
Проверить себя можно в диспетчере задач: если при загрузке модели «Общая память графического процессора» выросла на гигабайты, модель в видеопамять не поместилась.
Ограничения
- Только ЗУП 3.1 и тонкий клиент под Windows.
- Пакет опирается на формы и функции КЭДО, в том числе непубличные. После обновления расширения его нужно проверить заново; при поломке модель получит ошибку с советом открыть форму или мастер штатно.
- Подключение одной кнопкой — только с КЭДО 1.27 и только для организаций с однозначной парой по ИНН.
- Диагностика видит данные расширения КЭДО в базе, состояние самого сервиса ей недоступно.
- Отправленное приглашение не отзывается. К уже отправленному ЛНА получателей добавляют в форме «Процесс ознакомления», инструментом этого не сделать.
- Утверждение ЛНА, выпуск электронной подписи, документы на подписании и напоминания в пакет пока не входят.
Что в итоге
Своего API у расширения КЭДО нет, и агенту он, как выяснилось, не нужен. Читать можно то, что расширение уже сложило в базу, действовать — его формами и его же функциями, после кнопки человека. Об итоге я спрашиваю базу: после бодрого «КЭДО уже подключено!» верить модели на слово я как-то перестал. Так же можно подключить и другие расширения, у которых есть свои данные в базе и свои формы.
Как попробовать. Ядро ИИ-оператора открыто под лицензией GNU AGPL v3: github.com/RunetX/ai-operator-core. Пошаговая инструкция по развёртыванию (сборка, установка в базу, права и подключение моделей) лежит в docs/install.md. Пакет КЭДО ставится поверх ядра отдельным расширением, его код под лицензией MIT: github.com/RunetX/ai-operator-kedo..
Вопросы для обсуждения в комментариях:
- С какими вопросами по кадровому ЭДО к вам приходят чаще всего?
- Доверили бы вы агенту готовить отправку документов сотрудникам, если кнопку всё равно нажимает кадровик?
- Какие ещё расширения в вашей базе просятся под такую же схему, через их штатные формы?
Цифры взяты из прогонов на стенде. Диалоги на иллюстрациях — реальные транскрипты Claude Code, оформленные для читаемости: ответы модели дословные, служебные сообщения клиента опущены.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.