Глубокий анализ, архитектура, модели и план работ по фазам
Исследование открытых проектов на GitHub и научных работ, живой замер наших моделей на GX10, оценка сервера «Сагар», разбор Timeweb Cloud AI, рынка и закона. По итогам — архитектура, план из 9 фаз и кликабельный прототип всех 28 экранов.
Итог
- Ниша свободна. Открытого или российского сервиса, который делает готовый .xlsx/.docx и безопасно дорабатывает файл пользователя с проверкой «ничего не удалено», нет. Западные агенты (Copilot, Claude for Excel) в России для массового пользователя почти недоступны и не работают в Excel 2016/2019, Р7 и МойОфис.
- Схему изобретать не нужно. Зрелые открытые проекты пришли к одной схеме: карта книги → разрешённые операции → проверка пересчётом → снимок и откат. Код берём у проектов с лицензиями MIT, Apache и BSD (genoffice, excel-mcp-server, pi-for-excel, XlsxWriter, IronCalc и Formualizer, docx-mcp, Docxodus, oletools). У проприетарных и копилефтных (anthropics/skills, ONLYOFFICE, HyperFormula, formulas, SheetCopilot) — только идеи.
- Модель никогда не пишет файл. Она получает паспорт книги на 1–3 тыс. токенов и возвращает план операций по JSON-схеме. Применяет план, пересчитывает и сверяет с исходником наш детерминированный код. Это главный вывод науки (SpreadsheetBench 2, DELEGATE-52, DocOps) и главная защита от «тихой порчи».
- «Ничего не удалять» — это архитектура, а не обещание. openpyxl, ExcelJS и SheetJS теряют объекты при пересохранении, поэтому чужие файлы правит свой патчер OOXML: меняются только нужные XML-части, остальное копируется байт в байт, после правки — инвариантная сверка. Исходник неизменяем, план и «до/после» показываются всегда, перезапись данных — только с отдельной галочкой.
- Формулы проверяет программа. 3–5 вариантов считаются на нескольких наборах данных (ExecVote), пересчёт идёт двумя движками, ремонт — по тексту ошибки. Русскую версию формулы (СУММЕСЛИМН и «;») делает словарь, а не модель.
- Модели выбраны по живому замеру. 8 моделей GX10 прошли 22 русские задачи с проверкой пересчётом. Лучшая по качеству — qwen3.8:27b: формулы 12 из 15, VBA 12 из 15, планы правки 12,5 из 15, но она медленная (~40 с на типичный запрос). Быстрые qwen3-coder:30b и qwen3.5:35b-a3b отвечают за 10–11 с и решают 10–11 формул из 15. Кандидаты трёх моделей с проверкой пересчётом решают 14 из 15. Русскую версию формулы модели пишут плохо (верно 0–11 из 15), поэтому её делает словарь.
- Сагара не хватит для основной генерации: без видеокарты он читает таблицу на 20 тыс. токенов минутами. Его роль — веб, очередь, вся работа с файлами, пересчёт, поиск персональных данных и маленькая модель-классификатор. Облако Timeweb — резерв и трудные задачи, только без сырых ПДн.
- Timeweb дёшев: средний запрос стоит 0,2–0,6 ₽ на GPT-6 Luna, Qwen 3.5 Flash или DeepSeek V4.1 Flash. Бесплатные токены (до 12,5 млн до 31.12.2026) даются только на одного ИИ-агента с одной моделью: их стоит потратить на прогон тестов и прототип. Зарубежные модели означают трансграничную передачу, поэтому персональные данные туда не идут.
- Закон влияет на продукт: данные — только в РФ (23-ФЗ), согласие на ПДн отдельно (156-ФЗ), подписки по 376-ФЗ, НДС 22 % с 2026 года — ставка только из листа «Параметры».
- План: 9 фаз, около 29 недель для одного разработчика. Первый публичный запуск (формулы) — через 5 недель от старта. Каждая фаза считается готовой только онлайн на Сагаре. Чтобы начать, от владельца нужны доступ к Сагару, A-запись DNS и ключ Timeweb (раздел 14).
1. Что строим
AXEL — веб-сервис, где человек обычными словами описывает, что ему нужно посчитать или оформить, и получает рабочий результат: формулу, готовый файл Excel или Word, макрос, комплект файлов под бизнес-процесс. Или загружает свой файл и получает аккуратно доработанную версию, в которой ничего не потерялось.
Четыре сценария
- Формула по описанию. Формула в двух видах: для русского Excel (СУММЕСЛИМН, «;») и для файла или английского Excel (SUMIFS, «,»). Перед показом её считают на примере, к ней прилагается разбор по частям и список программ, где она работает.
- Создать таблицу или документ. Готовый .xlsx, .xlsm, .docx или .dotx: листы, умные таблицы, выпадающие списки, формулы, подсветка, лист «Параметры», лист «Как пользоваться», поля формы в Word.
- Доработать мой файл. Сначала план изменений и предупреждение о затрагиваемых данных, затем сравнение «до/после», подтверждение, применение и проверка, что всё на месте. Исходник сохраняется всегда.
- Макросы и процессы. VBA с объяснением, проверкой кода и инструкцией. Варианты для Р7-Офис, LibreOffice и Google Таблиц. Комплекты «заявка → согласование → учёт → отчёт».
Для кого
Бухгалтер, кладовщик, менеджер по продажам, кадровик, прораб и сметчик, логист, преподаватель, ИП и самозанятый, секретарь, производство. Для каждой роли в коробке 4–5 типовых задач: сверка выгрузок, остатки, план-факт и бонусы, табель Т-13, смета, путевой лист, журнал оценок, книга доходов и расходов, журнал входящих.
Чем AXEL отличается
- Выдаёт готовый файл, а не текст в чате.
- Доказывает, что ничего не удалено: план, сравнение, резервная копия и отчёт проверки есть всегда, а не включаются по желанию.
- Совместим с тем, чем работают в России: Excel 2016–365, LibreOffice, Р7-Офис, МойОфис, Google Таблицы.
- Каждую формулу считает программа, а не только пишет модель.
- Данные и модели — на наших серверах в России.
Главное архитектурное правило, к которому независимо пришли открытые проекты, научные работы и разбор провалов конкурентов: модель никогда не пишет файл сама. Она получает сжатый «паспорт» книги и возвращает план из разрешённых операций в строгом JSON. План проверяет и применяет наш детерминированный код, после чего проверяет результат пересчётом и сверкой с исходником. Отсюда и надёжность, и скорость: модели не нужно читать всю таблицу.
2. Что нашли в открытом коде
Просмотрено больше 160 проектов: ИИ-надстройки для Excel и Word, MCP-серверы, генераторы формул, движки формул, библиотеки OOXML, инструменты рецензирования, серверы моделей. Готового открытого аналога AXEL нет. Нет и веб-сервиса на русском, где можно описать задачу, получить готовый .xlsx или .docx и безопасно доработать свой файл. Ниша свободна, но все нужные кирпичи уже есть.
К 2026 году зрелые проекты пришли к одной схеме: карта книги → ограниченный набор атомарных операций → проверка (пересчёт и поиск ошибок) → снимок и откат. Так устроены genoffice, pi-for-excel, excel-assistant, excel-mcp-server 1.0 и Univer AI SDK. Схему изобретать не нужно: её надо собрать под веб, русский язык и наш контур безопасности.
Берём в основу (разрешительные лицензии)
| Проект | Лицензия | Что берём |
|---|---|---|
| genspark-ai/genoffice ★ 8,2 тыс., активен | Apache-2.0 (кроме папки ee/) | Принцип «оригинал — источник истины, правка — узкий патч одной XML-части», нетронутое сохраняется байт в байт. Формат операций с пробным прогоном (dry-run). Список проверок sheet check. |
| haris-musa/excel-mcp-server ★ 4,2 тыс., версия 1.0 | MIT | Словарь атомарных операций над книгой (почти 1:1 ложится в наш DSL). Политика формул: токенизация вместо регулярок, нормализация префиксов _xlfn., блок-лист опасных функций (WEBSERVICE, INDIRECT, CALL и др.), лимит 100 тыс. ячеек на операцию. |
| tmustier/pi-for-excel | MIT | Карта книги (blueprint) с кэшированием, протокол записи «проверить → записать → проверить ошибки → снимок → журнал», объяснение формулы, трассировка зависимостей. |
| ALbum3270/excel-assistant | MIT | Флаг overwrite: без него запись в непустую ячейку отклоняется. Это наш режим «только добавлять». Готовый формат отчёта «до/после». |
| STAR-LAB/excel-formula-generation | MIT | Конвейер генератора формул: таблица в TSV с адресами, при больших листах первые 50 и последние 10 строк с явной меткой пропуска, три уровня проверки, два повтора исправления. Берём алгоритм, не код. |
| Khushiyant/sheetwise | Apache-2.0 | Реализация SheetCompressor из SpreadsheetLLM: сжатие «грязных» листов и выгрузок 1С для локальных моделей. |
| XlsxWriter | BSD-2-Clause | Генератор новых книг: динамические массивы, префиксы новых функций, умные таблицы, проверки ввода, условное форматирование, диаграммы, защита, вставка готового vbaProject.bin. |
| IronCalc и Formualizer | MIT / Apache-2.0 | Быстрый пересчёт формул внутри процесса, за миллисекунды. Первая линия проверки и «второе мнение» к LibreOffice: LAMBDA и разлив массивов LibreOffice не считает. |
| oletools (olevba) | BSD-2-Clause | Проверка входящих .xlsm, .docm и .xls: есть ли макросы, автозапуск, внешние вызовы. Макросы пользователя на сервере не запускаем никогда. |
| SecurityRonin/docx-mcp | MIT | Правки Word в режиме рецензирования с адресацией абзацев по w14:paraId и автором «AXEL». |
| Open-Xml-PowerTools / Clippit (OpenXmlRegex) | MIT | Эталонная замена текста в Word: поиск по склеенной строке абзаца, формат первого совпавшего фрагмента, сразу w:del и w:ins. |
| Docxodus + Python-Redlines | MIT (не путать с docxodus-service под AGPL) | Сравнение двух .docx с выдачей документа с настоящими исправлениями Word: «чистая правка → сравнение → документ с правками». |
| docxtpl, docx (JS) | LGPL-2.1 / MIT | Шаблоны Word на Jinja (без изменений библиотеки) и генерация документов с нуля. Из списка переменных шаблона автоматически строится форма ввода. |
| docx-preview, unoserver | Apache-2.0 / MIT | Предпросмотр Word в браузере. Постоянно запущенный LibreOffice для пересчёта, PDF и картинок — экономит 50–75 % процессора. |
| LiteLLM, llama.cpp, llama-swap | MIT | Единый шлюз к моделям (GX10, Timeweb, резерв в РФ) с переключением при отказе и бюджетами. Сервер моделей с выводом строго по JSON-схеме, загрузка тяжёлых моделей по требованию. |
| Presidio + Natasha | MIT | Поиск и маскирование персональных данных на русском (ФИО, телефоны, ИНН и СНИЛС с контрольными суммами) до любой отправки в облако. |
| holidays-calendar-ru | MIT | Производственный календарь РФ для табелей, сроков и рабочих дней в шаблонах. |
| SpreadsheetBench | CC BY-SA 4.0 (данные) | Методика оценки: задача, несколько наборов данных, пересчёт в LibreOffice, сравнение ячеек. По ней строим свой русский набор AXEL-Bench-RU. |
Только идеи: код брать нельзя
| Проект | Почему нельзя | Что берём как идею |
|---|---|---|
| anthropics/skills (xlsx, docx) | Проприетарная лицензия: копирование и производные запрещены | Обязательный пересчёт с отчётом об ошибках; правило «ошибка была в файле или появилась после нас»; склейка фрагментов текста в Word |
| SheetCopilot, WriterAgent, pycel | GPL-3.0 | Классы атомарных действий, цикл «наблюдать → предложить → уточнить → выполнить», независимая проверка формулы переводом в Python |
| formulas (Python) | EUPL-1.1: доступ по сети приравнен к распространению | — |
| HyperFormula, EPPlus 5+ | GPL или платная; Polyform Noncommercial | — |
| ONLYOFFICE / Р7 (веб-редакторы), SuperDoc | AGPL-3.0 | Таблица соответствия RU↔EN имён функций — только для сверки собственного словаря |
| Carbone, модули docxtemplater | Carbone CCL запрещает сервис генерации документов; модули платные | — |
| Univer | Ядро Apache-2.0, но импорт и экспорт XLSX только в платной Pro | Модель «черновик → проверка человеком → слить»; двойная проверка «картинка + структурный линт» |
Не подходит
- openpyxl для записи чужих файлов: по документации теряет фигуры, при сохранении удаляет расширения x14 (спарклайны, срезы, расширенное условное форматирование и проверку данных), не моделирует Power Query. Последний релиз — 28.06.2024. Оставляем только для чтения и анализа.
- ExcelJS теряет диаграммы даже при открытии и сохранении без правок. SheetJS CE не записывает стили, диаграммы и сводные: это есть только в платной версии.
- Пересохранение через LibreOffice переписывает все части файла. LibreOffice используем только для пересчёта копии и картинок предпросмотра.
- Заброшенные или закрытые проекты: IPEX-LLM (в архиве), Office-Word-MCP-Server (в архиве), Quadratic (код закрыт), Rows (поглощён).
3. Что говорит наука и бенчмарки
Разобрано около 30 работ 2023–2026 годов о формулах, агентах для таблиц и правке документов. Вывод один: надёжность дают обвязка вокруг модели, проверка исполнением и точечные правки. Размер модели решает меньше.
Ключевые выводы и наши правила
| Что показали работы | Правило для AXEL |
|---|---|
| SpreadsheetBench 2 (arXiv 2606.29955): задача засчитывается, только если совпали все ячейки файла, включая те, что трогать не нужно. Лучший результат — около 35 %. | Обязательная фаза осмотра. Запись запрещена, пока модель не «посмотрела» целевую область. Цели правки объявляются явно и проверяются. |
| DELEGATE-52 (arXiv 2604.15597) и DocOps (arXiv 2607.19865): модели «тихо портят» документы. Детерминированные проверки сохранности ловят 96,7 % внесённых порч. | Модель никогда не переписывает документ целиком. Каждая версия сравнивается с исходником, а не с предыдущей. После каждых ~5 правок пользователь видит сводку и точку отката. |
| WTM-bench (arXiv 2608.07873): модели сообщают «готово», хотя проверка этого не подтверждает, — в 43–81 % таких случаев. | Статус «готово» ставит проверщик, а не модель. Файл, не прошедший проверку, не выдаётся. |
| FormulaSPIN (arXiv 2607.19354): дообученная 8B-модель — 87,1 % верных результатов на NL2Formula против 66,1 % у GPT-4o. Главный приём — ExecVote: несколько вариантов формулы исполняются, голосование идёт по результату. | Генерируем 3–5 вариантов формулы, считаем их на 2–3 наборах данных и выбираем по совпадению результатов. Размер победившей группы показываем как уверенность. |
| RING (arXiv 2208.11640, Microsoft): ремонт формул — 82 % с первой попытки, 89 % за три. | При ошибке пересчёта (#ИМЯ?, #ЗНАЧ!, #ССЫЛКА!) модель получает текст ошибки и похожие примеры ремонта. Не больше 2 попыток, затем модель сильнее. |
| SpreadsheetLLM / SheetCompressor (arXiv 2407.09025): сжатие листа примерно в 25 раз (структурные якоря, обратный индекс, агрегация по форматам). | Модель получает паспорт книги на 1–3 тыс. токенов, а не всю таблицу. Для «грязных» выгрузок 1С — сжатие SheetCompressor. |
| InstructExcel (arXiv 2310.14495): похожие примеры из базы дают не меньше +40 % качества, полная документация API — хуже. Около 20 % ответов не компилировались из-за выдуманных вызовов. | Узкий набор своих операций с короткими примерами. Примеры подбираются поиском по базе задач (эмбеддинги bge-m3). |
| SpreadsheetAgent (arXiv 2604.12282): агент на открытой gpt-oss-120b — 38,2 % на SpreadsheetBench, выше ChatGPT Agent (35,3 %). | Открытые модели на GX10 с хорошей обвязкой годятся для типовых задач. Сложные многошаговые правки отдаём облачной модели. |
| Скрытое содержимое OOXML (arXiv 2608.25880): 21 способ, при котором Word или Excel показывают одно, а модель читает другое. | Скрытые листы, скрытый текст, удалённые исправления и комментарии извлекаются отдельно, показываются пользователю и передаются модели только как данные, не как инструкции. |
Ограничение. Почти все цифры получены на английском языке и на передовых моделях. Русскоязычного бенчмарка по формулам, VBA и docx нет, поэтому выбор моделей мы делаем по своему замеру (раздел 6) и по набору AXEL-Bench-RU, который растёт вместе с продуктом. Часть результатов на лидербордах — самоотчёты разработчиков, организаторы их не проверяли.
AXEL-Bench-RU — свой набор для приёмки моделей
200–500 русских задач в формате «задача + 3 набора данных + эталон». Категории: формулы (ВПР/ПРОСМОТРX, СУММЕСЛИМН, даты и рабочие дни, текст, динамические массивы), VBA для Excel и Word, шаблоны Word, правки существующих книг с запретом что-либо удалять. Проверка автоматическая: пересчёт LibreOffice, сравнение значений, проверка сохранности всего, что не должно было измениться. Модель или промпт меняются только если ни одна категория не просела больше чем на 2 п. п. и не выросло число нарушений сохранности. Первые 22 задачи уже написаны и прогнаны на GX10 (раздел 6).
4. Алгоритмы, которые берём
Ниже — конкретные приёмы, из которых собирается AXEL. У каждого указан источник. Код берём только у проектов с разрешительной лицензией (MIT, Apache, BSD), у остальных — идею, реализацию пишем сами.
А. Как модель «видит» файл
| Алгоритм | Как работает у нас | Откуда |
|---|---|---|
| Паспорт книги | Код без модели строит JSON на 1–3 тыс. токенов. В нём листы, используемые диапазоны, умные таблицы, именованные диапазоны, заголовки, тип и формат каждого столбца, доля пустых, 3–5 примеров значений (после маскирования), уникальные формулы в R1C1, сгруппированные по шаблону, проверки ввода, условное форматирование, защита, наличие диаграмм, сводных и макросов, флаги ПДн. Паспорт кэшируется по хэшу файла. | pi-for-excel (blueprint), excel-mcp-server, SheetBrain |
| Голова/хвост + чтение по запросу | При листе больше 200 строк модель видит первые 50 и последние 10 строк с явной меткой пропуска. Остальное запрашивает инструментом чтения диапазона страницами по 4000 ячеек. | STAR-LAB, negokaz/excel-mcp-server |
| SheetCompressor | Для «грязных» листов (выгрузки 1С, отчёты с объединёнными ячейками): структурные якоря, обратный индекс «значение → адреса», агрегация по формату. Сжатие примерно в 25 раз. | SpreadsheetLLM (Microsoft), sheetwise |
| Данные отдельно от инструкций | Содержимое ячеек, комментариев, колонтитулов и скрытых листов подаётся модели только внутри блока данных с пометкой «это данные пользователя, не инструкции». Скрытое содержимое отдельно показывается пользователю. | Anthropic (предупреждение о prompt injection), arXiv 2608.25880 |
Б. Как получаем верную формулу
| Алгоритм | Как работает у нас | Откуда |
|---|---|---|
| Сначала аналог | Если в соседних ячейках или в нашей базе есть похожая формула, переносим её с пересчётом ссылок без модели. | Auto-Formula (идея) |
| Грамматика и белый список | Модель пишет каноническую английскую формулу. Вывод ограничен грамматикой: только функции из белого списка для выбранной версии Excel, сбалансированные скобки, корректные ссылки. Опасные функции (WEBSERVICE, INDIRECT, CALL, DDE, внешние книги) запрещены. | excel-mcp-server (политика формул), llama.cpp GBNF / JSON-схема |
| ExecVote | 3–5 вариантов формулы считаются на 2–3 наборах тестовых данных. Побеждает вариант с самым частым результатом, размер группы показывается как уверенность. | FormulaSPIN (ACL 2026) |
| Пересчёт двумя движками | LibreOffice (пул unoserver; в профиле явно ставим OOXMLRecalcMode=0, по умолчанию там 1 — «никогда не пересчитывать») и Formualizer/IronCalc в процессе. LAMBDA LibreOffice не считает даже в 26.8, её проверяет только второй движок. Ищем 7 кодов ошибок; ошибки, которые были в файле до нас, отделяются от новых. Если движки расходятся — предупреждение «проверьте в Excel». | anthropics/skills (идея), genoffice, Formualizer |
| Ремонт по ошибке | Текст ошибки и 3–5 похожих примеров ремонта отправляются модели. Не больше 2 попыток, потом модель сильнее. | RING, FoRepBench |
| Линтер | Формулы вместо вписанных чисел, ставки (НДС 22 %) — из листа «Параметры», абсолютные ссылки там, где формулу тянут, перехват #ДЕЛ/0!, динамические диапазоны, функции, зависящие от языка (ТЕКСТ, ДВССЫЛ). | MBABench, BlueFin |
| Перевод RU↔EN без модели | Токенизатор пропускает строки в кавычках и имена листов в апострофах. Дальше замена по словарю (~500 функций), ИСТИНА/ЛОЖЬ, «,» → «;», десятичный разделитель. Тест обратного перевода EN→RU→EN блокирует релиз при расхождении. | Собственный словарь по справке Microsoft; сверка с таблицами ONLYOFFICE и HyperFormula (без копирования) |
| Профиль совместимости | Таблица «функция → минимальная версия»: Excel 2016/2019/2021/365, LibreOffice, Р7, МойОфис, Google Таблицы. Если функция не поддерживается, формула переписывается под старую версию (ПРОСМОТРX → ИНДЕКС/ПОИСКПОЗ) или помечается. | GPTExcel (переключатель платформы), документация XlsxWriter и LibreOffice |
В. Как правим файл, ничего не теряя
| Алгоритм | Как работает у нас | Откуда |
|---|---|---|
| План в виде DSL | Модель возвращает только список операций из белого списка по JSON-схеме (вывод строго по схеме): add_sheet, add_column, set_formula, fill_formula, write_values, add_validation, add_conditional_format, add_named_range, add_table. У каждой операции объявлены целевые адреса. | excel-mcp-server, genoffice, SheetCopilot (классы действий) |
| Классы риска R0–R4 | R0 — чтение; R1 — добавление в пустое (новый лист, столбец справа); R2 — оформление и формулы в новых областях; R3 — изменение существующих формул и форматов; R4 — перезапись непустых данных. Класс считает исполнитель по фактическим адресам, а не модель. R3 и R4 требуют отдельной галочки пользователя. Удаление по умолчанию выключено и заменяется переносом на лист «Архив_AXEL». | excel-assistant (флаг overwrite), xlsxedit |
| Пробный прогон и дифф | План применяется к копии. Различия собираются по ячейкам: значение, формула, стиль, проверка ввода, условное форматирование, имена, листы, модули VBA. Отдельно показываются пересчитанные зависимые значения. | genoffice (dry-run), ExcelCompare |
| Хирургический патч OOXML | Файл .xlsx — это zip с XML-частями. Помечаются «грязными» и переписываются только изменённые части, остальные копируются побайтно: диаграммы, сводные, срезы, Power Query, vbaProject.bin. Новые строки пишутся как inlineStr (sharedStrings не трогаем), стили только добавляются, calcChain удаляется, ставится fullCalcOnLoad. Новые функции получают префикс _xlfn., динамические массивы — атрибут cm и metadata.xml. | genoffice, ice-report PR #136 (идея), документация XlsxWriter |
| Инвариантная сверка | После применения проверяем: все части пакета на месте, хэши нетронутых частей совпадают, листы и их видимость не изменились, непустые ячейки вне утверждённого плана совпадают, число объектов не уменьшилось. Файл проходит схему OpenXmlValidator. Не прошёл — пользователь его не получает, изменение откатывается. | genoffice, DocOps, docx-redline |
| Неизменяемый исходник и версии | Загруженный файл — версия 0, только чтение, с SHA-256. Каждое применение создаёт новую версию с планом, диффом и отчётом проверки. Откат — выбор версии, ничего не удаляется. | Univer (Worktree), xltrail |
Г. Word
| Алгоритм | Как работает у нас | Откуда |
|---|---|---|
| Нормализация и карта символов | Соседние фрагменты текста с одинаковым форматом склеиваются. Поиск идёт по склеенной строке абзаца, замена получает формат первого совпавшего символа. | OpenXmlRegex, docx4j, python-docx-replace |
| Правки рецензированием | Изменения вносятся как w:del и w:ins с автором «AXEL» и минимальным диффом. Пользователь принимает или отклоняет их в своём Word. Абзацы адресуются устойчивым якорем (paraId + точная цитата + отпечаток версии), неоднозначные цитаты отклоняются. | docx-mcp, Docxodus, Adeu |
| Двусторонняя проверка | Программно выполняется «отклонить всё»: текст должен совпасть с оригиналом символ в символ. Затем «принять всё»: текст должен совпасть с планом. Счётчики таблиц, рисунков, полей, закладок, колонтитулов и разделов сравниваются. | docx-redline |
| Шаблоны с полями | Поля — элементы управления содержимым (текст, дата, список, флажок) с w:tag и привязкой к Custom XML. Поля Word пишутся с вычисленным значением. Для форм с автоподсчётом без макросов используются устаревшие поля форм с защитой «только заполнение». | docx4j, Microsoft Q&A |
| Чистая правка → сравнение | Сложные структурные правки (таблицы, перестройка разделов) делаются в копии. Затем Docxodus строит из пары файлов документ с настоящими исправлениями Word. | Python-Redlines / Docxodus |
Д. Модели, деньги и персональные данные
| Алгоритм | Как работает у нас | Откуда |
|---|---|---|
| Маршрутизатор уровней | Жёсткие правила идут первыми: файлы с ПДн обрабатываются только на Сагаре и GX10. Дальше по сложности и оценке времени ответа: очередь + токены на входе / скорость чтения + ожидаемый выход / скорость генерации. Выбирается узел с наименьшим временем среди разрешённых политикой данных. | Исследование моделей, RouteLLM (идея) |
| Каскад с эскалацией | Сначала дешёвая подходящая модель, потом проверка. Если проверка не прошла дважды, задача уходит модели сильнее. Цель — не больше 15 % эскалаций. | Leni (arXiv 2607.17044), FrugalGPT |
| Промпт под кэш префикса | Порядок сообщения: неизменные правила и справочник функций, затем паспорт книги (версия по хэшу), затем история, затем вопрос. Повторные вопросы по той же книге не перечитывают таблицу. У Timeweb чтение из кэша в 10–50 раз дешевле обычного входа. | llama.cpp (слоты), документация Timeweb |
| Двухфазный вывод | Сложным задачам (VBA, процессы) модель сначала рассуждает без ограничений, затем выдаёт строгий JSON по схеме с выключенными рассуждениями. Простым задачам рассуждения выключены. | vLLM, llama.cpp |
| Детектор ПДн по столбцам | Заголовки (ФИО, телефон, оклад, паспорт), регулярные выражения с контрольными суммами (ИНН, СНИЛС, карта по Луну), Natasha NER на выборке. Обратимая псевдонимизация: [PERSON_1], [PHONE_3], соответствия хранятся только на время задачи. | Presidio, Natasha, llm-guard |
| Предохранитель | Для каждого провайдера окно в 5 минут. Если ошибок больше 20 % или задержка выше порога, провайдер отключается на 1–5 минут и запросы идут следующему. Повторы с паузой — не больше 2. | LiteLLM Router |
5. Архитектура
Три узла с чёткими ролями. «Сагар» — публичный вход и вся детерминированная работа с файлами. GX10 — основной генератор: модели работают бесплатно и в РФ. Облако Timeweb — резерв и сложные задачи, туда никогда не уходят сырые персональные данные.
Компоненты
| Компонент | Где | Технологии | Зачем |
|---|---|---|---|
| Веб и API | Сагар | SPA (React или Svelte), FastAPI на Python | Один язык с движками: openpyxl, python-docx, lxml, oletools, UNO — всё на Python. |
| Очередь и воркеры | Сагар | Redis + arq/RQ, cgroups-лимиты | Длинные задачи не держат HTTP-соединение. Приоритет у веб-трафика других сайтов Сагара. |
| Движок книг | Сагар | lxml-патчер OOXML, openpyxl и calamine только для чтения, XlsxWriter для новых книг | Создание и хирургическая правка .xlsx/.xlsm без потерь. |
| Движок Word | Сагар | python-docx + свой lxml-слой (SDT, поля, рецензирование), docxtpl, Python-Redlines | Шаблоны, слияние, правки рецензированием. |
| axel-calc | Сагар (резерв — GX10) | LibreOffice ≥25.8 в контейнере без сети, unoserver ×3–6, Formualizer | Пересчёт копий, поиск ошибок, картинки предпросмотра. Пользовательский файл через LibreOffice не пересохраняется. |
| Приёмка файлов | Сагар | Лимиты размера и числа частей, defusedxml, olevba, извлечение скрытого содержимого | Защита от zip-бомб, XXE, макросов и внедрения инструкций. |
| ПДн | Сагар | Presidio + Natasha, обратимые маски | Решает, куда можно отправить задачу. |
| Шлюз моделей | Сагар | LiteLLM + свой роутер, реестр возможностей моделей | Единый OpenAI-совместимый вход, переключение при отказе, бюджеты, учёт стоимости. |
| Модели | GX10 | llama-swap + llama-server (или Ollama на старте) | Вывод строго по JSON-схеме, параллельные слоты, загрузка тяжёлых моделей по требованию. |
| Хранилище | Сагар, /srv/server-data | Postgres, файлы с шифрованием, версии | Данные пользователей только в РФ (152-ФЗ, ч. 5 ст. 18). |
| Предпросмотр | Браузер + Сагар | Своя лёгкая сетка по данным calamine, docx-preview, PNG/PDF через LibreOffice | Univer не подходит: импорт xlsx в нём платный. ONLYOFFICE — AGPL. |
Путь запроса «доработай мой файл»
- Приёмка (Сагар, 1–3 с): лимиты, проверка zip и XML, olevba, извлечение скрытого. Исходник сохраняется как версия 0.
- Паспорт и ПДн (Сагар, 1–5 с): карта книги на 1–3 тыс. токенов, поиск персональных данных по столбцам, маски.
- План (GX10, 5–30 с): модель получает паспорт и запрос, возвращает операции по JSON-схеме. Если GX10 занят и в файле нет ПДн — облако.
- Проверка плана (Сагар): схема, адреса существуют, классы риска R0–R4 по фактическим ячейкам, формулы проходят грамматику и линтер.
- Пробный прогон (Сагар): применение к копии, пересчёт в axel-calc, дифф по ячейкам. Пользователь видит план, предупреждения и «до/после».
- Подтверждение пользователя (для R3/R4 — отдельная галочка).
- Применение и сверка (Сагар): патч OOXML, инвариантная сверка, валидатор схемы. Если не прошло — откат, кредит возвращается.
- Выдача: новая версия, отчёт об изменениях, исходник всегда доступен.
6. Модели: GX10, «Сагар», Timeweb
Вместо выбора модели по чужим бенчмаркам мы прогнали 8 локальных моделей GX10 на 22 русских задачах AXEL: 15 формул с проверкой пересчётом в LibreOffice, 3 макроса VBA, 2 задачи Word, 3 плана правки книги (без JSON-схемы и с ней). Харнесс замера лежит на GX10 в ~/ai/axel-bench и станет ядром нашего набора AXEL-Bench-RU.
6.1. Качество на задачах AXEL
| Модель | Размер, ГБ | Формулы (пересчёт) | RU-версия моделью | VBA /15 | Word /10 | План правки /15 | JSON со схемой |
|---|---|---|---|---|---|---|---|
| qwen3.8:27b (плотная) | 17,7 | 12/15 | 7/15 | 12 | 4 | 12,5 | 3/3 |
| qwen3-coder:30b (MoE) | 18,6 | 11/15 | 6/15 | 9 | 5 | 6 | 3/3 |
| qwen3.5:35b-a3b (MoE) | 23,9 | 10/15 | 5/15 | 8 | 5 | 5,5 | 2/3 |
| glm-4.7-flash (MoE) | 19,0 | 5/15 (9 после автоисправления) | 11/15 | 8 | 3 | 6 | 3/3 |
| gemma3:27b | 17,4 | 7/15 | 5/15 | 9 | 6 | 3 | 2/3 |
| qwen3.5:9b | 6,6 | 7/15 | 4/15 | 2 | 2 | 3 | 3/3 |
| qwen3.5:4b | 3,4 | 1/15 | 5/15 | 3 | 2 | 5 | 3/3 |
| llama3.1:8b | 4,9 | 4/15 | 0/15 | 3 | 2 | 2,5 | 2/3 |
| gpt-oss:120b | 65,4 | не тестировалась: свободно 65 ГиБ из нужных 85 — память GX10 делят другие проекты | |||||
6.2. Скорость на GX10
| Модель | Генерация, ток/с | Чтение ~6 000 ток., ток/с | Формула, с | Макрос, с | План, с | Типичный запрос*, с |
|---|---|---|---|---|---|---|
| qwen3-coder:30b | 82 | 2 613 | 2,3 | 11,6 | 5,7 | ~10 |
| qwen3.5:35b-a3b | 73 | 2 089 | 2,5 | 24,0 | 5,6 | ~11 |
| qwen3.5:4b | 61 | 3 731 | 2,4 | 35,1 | 7,4 | ~11 |
| qwen3.5:9b | 38 | 2 530 | 4,6 | 45,8 | 11,5 | ~18 |
| glm-4.7-flash | 24 | 1 927 | 6,8 | 44,7 | 14,6 | ~28 |
| qwen3.8:27b | 19 | 732 | 15,4 | 66,5 | 21,3 | ~40 |
| gemma3:27b | 11 | 865 | 16,2 | 109,5 | 50,9 | ~62 |
* Типичный запрос AXEL: паспорт книги и вопрос на 6 000 токенов, ответ 600 токенов. Медианы по задачам, первая задача каждой модели (загрузка) исключена.
Что показал замер
Ансамбль с проверкой работает. Если взять кандидатов от трёх моделей (qwen3-coder, qwen3.5:35b, qwen3.8) и оставить тот, что прошёл пересчёт, решено 14 формул из 15 — против 12 у лучшей одиночной. Это прямое подтверждение подхода ExecVote: несколько вариантов плюс проверка исполнением.
Размышление помогает формулам. qwen3.8:27b в режиме размышления решила все 3 трудные формулы, которые провалила без него (рабочие дни без праздников, выделение НДС, ФИЛЬТР+СОРТ). Цена — 50–100 секунд вместо 15. Включаем как вторую попытку после провала проверки.
Русскую версию формулы модели делают плохо: верно 0–11 из 15. Типичное: NETWORKDAYS → «РАБДНИ» вместо ЧИСТРАБДНИ, кириллическая «Т» внутри TODAY, русские имена функций в формуле для файла. Русскую версию делает только программа по словарю.
JSON-схема не делает план правильным. JSON валиден почти всегда, но модели «угадывают» номера строк для удаления (или перечисляют сотни строк до обрыва ответа) и путают позиции столбцов. Поэтому DSL описывает удаление условием, а адреса и сдвиги считает исполнитель.
Предметные ошибки. Почти все модели «выделяют» НДС из суммы с НДС как сумма × 0,2 вместо сумма × 22/122. Типовые расчёты (НДС, сумма прописью, рабочие дни, стаж) идут из библиотеки проверенных рецептов, а не генерируются заново.
Общая ошибка в VBA. У 6 моделей из 8 объектная переменная листа не сбрасывается в цикле: данные всех менеджеров попадают на один лист. Режим размышления её не исправил. Это правило статического анализатора VBA (раздел 9).
6.3. Хватит ли «Сагара»
Для основной генерации — нет. У Core Ultra 9 285H два канала памяти DDR5: на практике это ~60–67 ГБ/с против ~273 ГБ/с у GB10, а скорость генерации упирается именно в память. Хуже всего с чтением промпта: на процессоре это десятки и сотни токенов в секунду вместо 2–3,7 тысячи на GX10. Модели, которые на Сагаре работают быстро (4–9 млрд параметров), по качеству не годятся как генератор: формулы 1–7 из 15, VBA 2–3 из 15.
| Модель | GX10, типичный запрос (замер) | Сагар, генерация, ток/с (оценка) | Сагар, чтение, ток/с (оценка) | Сагар, типичный запрос (оценка) |
|---|---|---|---|---|
| qwen3.5:4b | 11 с | 15–20 | 150–300 | 50–80 с |
| qwen3.5:9b | 18 с | 8–10 | 80–150 | 100–150 с |
| qwen3-coder:30b / qwen3.5:35b-a3b (MoE) | 10–11 с | 12–20 | 50–150 | 70–170 с |
| gpt-oss:20b (MoE) | — | 15–25 | 60–180 | 60–140 с |
| qwen3.8:27b (плотная) | 40 с | 3–4 | 20–40 | больше 6 мин |
Оценки сверены с чужими замерами на похожем железе: Qwen3-Coder-30B-A3B на 285H через llama.cpp SYCL — 11,5 ток/с генерации и 81 ток/с чтения; Qwen3.6-35B-A3B через OpenVINO — 13,6 ток/с. На самом Сагаре мы не замеряли — нет доступа.
Роль Сагара: веб, очередь, вся работа с файлами (паспорт, патчер, дифф, сверка), пул LibreOffice, детектор ПДн, эмбеддинги и маленькая модель-классификатор (qwen3.5:4b или правила) — тип задачи, сложность, извлечение параметров. Как аварийный резерв для коротких формул без большого контекста — Qwen3.6-35B-A3B на CPU, 1–2 пользователя, около минуты на ответ. LLM на Сагаре изолируется: свой набор ядер, лимит памяти, отключение при росте задержек публичных сайтов.
Первые замеры, когда появится доступ: тип и частота памяти (dmidecode -t memory), драйвер графики (xe или i915) и доступ к /dev/dri из контейнеров, llama-bench для CPU, Vulkan, SYCL и OpenVINO на модели около 22 ГБ с промптом 512/4096 и глубиной 0/8k/16k, нагрузочный тест на 1, 2 и 4 одновременных запроса с контролем времени ответа сайтов.
6.4. Timeweb Cloud AI
Два API
AI Gateway (https://api.timeweb.ai/v1, совместим с OpenAI SDK): модель задаётся в каждом запросе, в каталоге 148 позиций — OpenAI, Anthropic, Google, DeepSeek, Qwen, xAI, Yandex, Moonshot, Z.ai, а также модели, которые Timeweb размещает сам (gpt-oss-120b, gemma4:31b, glm-5.x, kimi-k2.6). Это наш вариант.
API агента: модель зафиксирована в агенте, есть RAG, MCP и песочница. Нужен только чтобы потратить акционные токены.
Бесплатные токены
Акция «Знакомство с AI-агентами» действует до 31.12.2026 для клиентов, которые раньше не покупали ИИ-агентов: до 12,5 млн токенов (лимит зависит от модели), только на одного агента с одной моделью, только для агентов, а не для AI Gateway. Этого хватит примерно на 1 300 средних запросов: на прогон AXEL-Bench-RU и прототип, но не на работу сервиса. Сколько токенов уже на балансе владельца, видно только в панели.
| Модель (AI Gateway) | Вход, ₽ / 1 млн | Выход, ₽ / 1 млн | Средний запрос* | Роль у нас |
|---|---|---|---|---|
| GPT-6 Luna | 13,5 | 67,5 | ~0,21 ₽ | дешёвый уровень |
| Qwen 3.5 Flash | 14 | 52 | ~0,19 ₽ | дешёвый уровень |
| timeweb/gpt-oss-120b | 20 | 82 | ~0,28 ₽ | резерв для gpt-oss на GX10 |
| DeepSeek V4.1 Flash | 40,5 | 162 | ~0,57 ₽ | средний уровень |
| Qwen 3.7 Plus | 54 | 216 | ~0,76 ₽ | средний уровень |
| Claude Sonnet 5 | 405 | 2 025 | ~6,3 ₽ | трудные планы и VBA на платных тарифах |
* 8 тыс. токенов на вход, 1,5 тыс. на выход. Цены без НДС (платформа в реестре российского ПО), сверены с каталогом Timeweb. У Яндекса и Сбера цены с НДС 22 %, поэтому напрямую не сравниваются. Чтение из кэша в 10–50 раз дешевле обычного входа.
- Что проверить живьём до интеграции: в документации AI Gateway не описаны function calling, response_format и json_schema. Шлюз, судя по всему, построен на LiteLLM, так что параметры, вероятно, передаются как есть, но это нужно проверить запросом. Для моделей GPT-5.x нужен max_completion_tokens, параметр temperature у них вызывает ошибку.
- Каталог меняется быстро: у части моделей уже стоят даты отключения (GLM 5.2 — 08.10.2026, Gemini 2.5 — 16.10.2026, GPT-5 — 11.12.2026). Поэтому нужен реестр возможностей моделей с ежедневной проверкой через /v1/models.
- Данные: большинство моделей зарубежные, а для ИИ-агентов Timeweb требует согласия на трансграничную передачу ПДн. Сырые ПДн в Timeweb не отправляем никогда. Резерв на российской инфраструктуре: Cloud.ru (gpt-oss-120b — 15,86/61 ₽ с НДС), MWS GPT, Yandex AI Studio (base_url сейчас
https://ai.api.cloud.yandex.net/v1, логирование отключается заголовкомx-data-logging-enabled: false).
6.5. Маршрутизация
| Задача | Первая попытка | Если проверка не прошла | Облако (только без ПДн) |
|---|---|---|---|
| Тип задачи, сложность, параметры | Правила + qwen3.5:4b на Сагаре | — | — |
| Формула | Кандидаты qwen3-coder:30b и qwen3.5:35b-a3b (GX10), ExecVote | qwen3.8:27b с размышлением | GPT-6 Luna → DeepSeek V4.1 Flash |
| План правки книги | qwen3.8:27b (лучший план — 12,5 из 15) | Уточняющий вопрос пользователю | DeepSeek V4.1 Flash; Claude Sonnet 5 на тарифе «Бизнес» |
| Макрос VBA | qwen3.8:27b + статическая проверка | Повтор с текстом замечаний анализатора | Claude Sonnet 5 на платных тарифах |
| Шаблон Word, тексты, объяснения | qwen3.5:35b-a3b | qwen3.8:27b | GPT-6 Luna |
| Поиск похожих примеров | bge-m3 (эмбеддинги) | — | — |
| Фото таблицы → Excel (фаза 8) | qwen3-vl:30b | — | — |
Стоит поставить на GX10 и прогнать на нашем наборе: Qwen3.6-35B-A3B (Apache-2.0; гибридное внимание экономит память на длинном контексте), Ornith-1.5-35B-A3B (MIT; сильна в коде, русский не заявлен), T-pro-it-2.1 (Apache-2.0; русское дообучение Qwen3-32B), gpt-oss-20b. Для продакшена перевести GX10 с Ollama на llama-swap + llama-server: вывод строго по схеме, параллельные слоты, загрузка тяжёлых моделей по требованию с проверкой свободной памяти, чтобы не мешать другим проектам.
7. Как бережём файл пользователя
Требование «ничего не удалять» нельзя выполнить ни интерфейсом, ни обещанием в промпте. Популярные библиотеки при пересохранении чужого файла молча выбрасывают то, чего не понимают. Поэтому сохранность обеспечивает архитектура: правка на уровне частей OOXML, проверка инвариантов и неизменяемый исходник.
Что теряется при обычном «открыл → изменил → сохранил»
| Инструмент | Что теряет или не умеет | Вывод |
|---|---|---|
| openpyxl | По документации теряет фигуры. При сохранении удаляет расширения x14 (extLst): спарклайны, срезы, расширенное условное форматирование и проверку данных. Не моделирует элементы управления форм и части Power Query. Диаграммы и изображения читает (изображения — только с Pillow). VBA сохраняет только с keep_vba=True и не редактирует. Последний релиз 3.1.5 — 28.06.2024. | только чтение |
| ExcelJS | Теряет диаграммы даже при открытии и сохранении без правок (issues #1734, #2607). | не брать |
| SheetJS CE | Не записывает стили, диаграммы, картинки, сводные, условное форматирование и проверку данных. Всё это есть только в платной Pro. | не брать |
| LibreOffice (пересохранение) | Переписывает все части файла, теряет специфичную для Excel и Word разметку. | только пересчёт копий |
| XlsxWriter | Отлично создаёт новые книги, но открыть и изменить существующую не может. | новые файлы |
| Свой патчер OOXML (lxml) | Меняет только нужные XML-части, остальное копирует побайтно. | правка чужих файлов |
Пять гарантий AXEL
1. Исходник неизменяем
Загруженный файл сохраняется как версия 0 с SHA-256. Кнопка «Скачать исходник» видна на каждом экране. Откат — это просто выбор версии.
2. Режим «только добавлять» по умолчанию
Модель решает задачу новыми столбцами, листами и формулами. Перезапись непустых ячеек (класс R4) и изменение существующих формул (R3) возможны только после отдельной галочки. Удаление строк по умолчанию выключено и заменяется переносом на лист «Архив_AXEL».
3. План и «до/после» до применения
Пользователь видит каждую операцию, её класс риска, число затронутых ячеек и пересчитанные зависимые значения. Любую операцию можно выключить.
4. Сверка после применения
Части пакета на месте, хэши нетронутых частей совпадают (диаграммы, сводные, срезы, Power Query, vbaProject.bin). Листы и их видимость не изменились, непустые ячейки вне плана совпадают, объектов не стало меньше. Файл проходит валидатор схемы. Не прошёл — файл не выдаётся, кредит возвращается.
5. Честные предупреждения
О том, что сервер не может обновить: внешние ссылки, Power Query, модель данных — их части сохраняются побайтно, но кэш значений остаётся старым. О волатильных функциях (СЕГОДНЯ, СЛЧИС). О функциях, которых нет в программе пользователя.
Что откладываем
Вставку и удаление строк и столбцов внутри чужих таблиц, сортировку и объединение ячеек. Эти операции сдвигают ссылки в формулах, диаграммах, сводных, условном форматировании и проверках ввода. Их включаем только после регрессии на корпусе реальных файлов. До этого пользователю предлагается безопасная альтернатива: новый столбец справа, отдельный лист-отчёт.
Технические тонкости, которые учтены
- Новые функции (XLOOKUP, FILTER, LET и др.) записываются с префиксами
_xlfn.и_xlws., иначе Excel покажет #ИМЯ?. Динамические массивы требуют атрибутаcmи частиmetadata.xml, иначе Excel откроет их как старые формулы массива {=…}. - Строки пишутся как inlineStr, чтобы не трогать общую таблицу строк sharedStrings. Стили только дописываются, существующие индексы не меняются.
- Умные таблицы: при добавлении столбца правятся ref, autoFilter и tableColumns, а имена столбцов совпадают с заголовками ячеек.
- calcChain удаляется, в книге ставится fullCalcOnLoad: Excel пересчитает всё при открытии. Значения из нашего пересчёта кладутся в кэш
<v>, чтобы предпросмотры сразу показывали числа. - Порядок элементов листа (CT_Worksheet) соблюдается строго. Нарушение даёт окно «Excel обнаружил проблему» — главную причину потери доверия. Отсюда обязательный валидатор и Windows-стенд с настоящим Excel для приёмки.
До разработки правки чужих файлов соберём корпус из 200–300 реальных «тяжёлых» файлов малого бизнеса: сводные, срезы, диаграммы, фигуры, макросы, внешние связи, выгрузки 1С. Файлы — с согласия владельцев и без персональных данных. Сценарий «открыть → ничего не менять → сохранить → сверить» прогоняется для нашего патчера, BetterOffice и openpyxl (как отрицательный контроль). Метрики: доля файлов, которые Excel открывает без восстановления; побайтовая сохранность нетронутых частей; совпадение пересчёта с Excel.
8. Документы Word
Готового открытого «комбайна» для Word нет, но стек собирается из трёх проверенных слоёв: генерация и заполнение, правка чужих документов в режиме рецензирования, предпросмотр. Вся работа с DOCX идёт на процессоре Сагара. Модель нужна только для плана правок и спецификации шаблона.
Создание шаблонов
Модель возвращает JSON-спецификацию: разделы, поля с типами (текст, дата, список, флажок, число), таблицы, колонтитулы, реквизиты, защиту. Билдер собирает .docx или .dotx. Поля — элементы управления содержимым с тегами и привязкой к Custom XML, поэтому их можно потом найти и заполнить программно.
Заполнение и слияние
docxtpl в изолированном режиме Jinja и docxcompose для склейки. Массовое заполнение из таблицы Excel: 124 строки дают 124 .docx в архиве или один PDF. Сумму прописью, даты и реквизиты считает программа, а не модель. ИНН, счёт и БИК проверяются по контрольным числам.
Правка чужих документов
Только рецензированием: вставки и удаления с автором «AXEL». Перед выдачей движок программно выполняет «отклонить всё» (текст совпадает с оригиналом) и «принять всё» (совпадает с планом) и сверяет счётчики объектов. Пользователь получает 3 файла: исходник, документ с исправлениями и чистовик.
Решения и подводные камни
- Разрыв текста на фрагменты (run splitting). Метка «{ФИО}» в Word часто разбита на несколько w:r с разным форматом. Поэтому сначала склеиваем одинаково оформленные фрагменты, потом ищем по склеенной строке абзаца. В своих шаблонах текстовые метки не используем вообще, только поля с тегами.
- Защита «только заполнение форм» рассчитана на устаревшие поля форм, а не на элементы управления содержимым. Для форм с автоподсчётом без макросов используем устаревшие поля с вычислением при выходе. Для остальных — групповой элемент управления.
- Поля Word ({ =SUM(ABOVE) }, { MERGEFIELD }, { IF }) не пересчитываются в предпросмотре и части программ, поэтому всегда пишем вычисленное значение. Разделитель аргументов и формат чисел в русском Word нужно проверить на реальной установке.
- Удаление абзаца без пометки знака абзаца неверно склеивает абзацы после «Принять всё». Это закрыто тестами.
- Предпросмотр: docx-preview в браузере для мгновенного вида (вёрстку по страницам не держит, есть пометка). Точный PDF-предпросмотр делает LibreOffice на Сагаре. Сохранять пользовательский документ через LibreOffice нельзя.
- Онлайн-редактор в первых фазах не делаем: пользователь принимает правки в своём Word. Если понадобится позже, первым кандидатом будет Collabora Online (MPL-2.0). ONLYOFFICE и SuperDoc — только после юридической оценки AGPL или покупки лицензии.
Лицензии. Carbone Community запрещает сервис генерации документов, а у docxtemplater платные модули. docx-templates исполняет JavaScript из шаблона, что опасно для пользовательских шаблонов. Эти три инструмента не берём. pandoc (GPL) запускаем только как внешний процесс для проекции документа в Markdown.
9. Макросы
Макрос — самый рискованный и самый ценный вид результата. Поэтому AXEL сначала предлагает решение без макроса, а если без него никак, выдаёт проверенный код с объяснением, «паспортом» и честной инструкцией по установке.
Порядок выбора решения
- Формула. LET, LAMBDA, динамические массивы (ФИЛЬТР, СОРТ, УНИК — Excel 2021 и 365), обычные формулы — для старых версий.
- Встроенные средства. Сводная таблица, умная таблица с фильтром, Power Query (обновляется одной кнопкой).
- Макрос — когда нужны действия, а не вычисления: разнести строки по листам или файлам, собрать листы, выгрузить в PDF, заполнить документы Word.
Как выдаём макрос
| Формат | Как делаем | Когда |
|---|---|---|
| Текст модуля и файл .bas | Код с комментариями на русском и пошаговая инструкция: Alt+F11 → Вставка → Модуль → вставить → сохранить как .xlsm. | Всегда, с фазы 5 |
| Готовый .xlsm или .dotm из каталога | 15 проверенных макросов собраны один раз в настоящем Excel. Их vbaProject.bin вставляется в новые книги через XlsxWriter (add_vba_project). Параметры (имена листов, столбцов) макрос берёт из листа «Настройки», поэтому код не меняется. | Типовые задачи каталога |
| Произвольный код внутри готовой книги | Не обещаем. Надёжного открытого способа собрать vbaProject.bin из текста на Linux нет: компилятор MS-OVBA (Beakerboy) экспериментальный, лицензия не указана. | Пилот после фазы 7 |
Блокировка макросов. Office для Windows по умолчанию блокирует макросы в файлах, скачанных из интернета (метка Mark of the Web). Файл с нашего сайта тоже будет заблокирован. Поэтому на экране макроса есть инструкция с официальными способами Microsoft: «Свойства файла → Разблокировать», надёжное расположение, команда PowerShell Unblock-File, подпись доверенного издателя. Есть и альтернатива: вставить модуль .bas в свою книгу — тогда блокировки нет.
Другие офисы
| Программа | Чем автоматизировать | Что делает AXEL |
|---|---|---|
| Р7-Офис | Макросы на JavaScript (API в стиле ONLYOFFICE). VBA из .xlsm не выполняется, код комментируется. | Отдельная цель генерации: JS-макрос и перевод «VBA → JS для Р7». |
| МойОфис | Интерпретатор базового VBA с переводом в Lua: бета в корпоративной версии 3.6 (27.11.2025), в «МойОфис для дома» — с 26.1 (05.05.2026). Объекты Application, Workbook, Worksheet, Range. | Профиль «МойОфис»: генерируем VBA только из поддерживаемого подмножества и предупреждаем об остальном. |
| LibreOffice | Basic, Python; совместимость с VBA частичная (Option VBASupport 1). | Вариант на Basic; простые макросы прогоняем в LibreOffice для проверки. |
| Google Таблицы | Apps Script (JavaScript). | Вариант на Apps Script. |
| Excel в вебе / Microsoft 365 | Office Scripts (TypeScript). | По запросу: в России Microsoft 365 у юрлиц часто недоступен. |
Проверка сгенерированного кода
По замеру на GX10 лучший VBA пишет qwen3.8:27b (12 из 15 баллов), быстрая qwen3-coder:30b — 9 из 15, модели на 4–9 млрд параметров часто выдают некомпилируемый код. У 6 моделей из 8 нашлась одна и та же логическая ошибка, и режим размышления её не исправил. Значит, без статической проверки макрос выдавать нельзя.
- Запрещённые вызовы (макрос не выдаётся): запуск программ (Shell, WScript.Shell), сеть (URLDownloadToFile, XMLHTTP), удаление файлов (Kill, FileSystemObject.DeleteFile), реестр, объявления Declare/Lib, автозапуск при открытии.
- Правила качества (исправляются автоматически или возвращаются модели): Option Explicit; объектная переменная сбрасывается в Nothing перед поиском листа в цикле; настройки Application (ScreenUpdating, Calculation, EnableEvents) восстанавливаются и в обработчике ошибок; макрос удаляет и очищает только созданные им листы; нет опоры на ActiveSheet и Selection.
- Паспорт макроса для пользователя: что читает, что пишет, создаёт ли файлы и где, удаляет ли что-то, нужен ли доступ к папкам.
- Проверка исполнением: каталог — на Windows-стенде с Excel; простые сгенерированные макросы — в LibreOffice с VBASupport; остальное помечается «проверено статически».
Каталог проверенных макросов (фаза 5)
Разнести строки по листам по значению столбца · Собрать все листы в один · Удалить пустые строки (с копией на лист «Архив») · Подсветить и вынести дубли · Разбить ФИО по столбцам
Сохранить каждый лист в отдельный файл · Сохранить листы в PDF · Выгрузить в CSV UTF-8 (русский текст не «ломается») · Оглавление книги с гиперссылками
Заполнить шаблоны Word из строк таблицы · Очистить форму ввода · Перенести выполненные заявки в архив · Присвоить номера новым строкам · Обновить все сводные таблицы · Защитить формулы от правки
10. Безопасность и закон
Пользователи будут загружать кадровые таблицы, зарплаты, списки клиентов и чужие файлы с макросами. Поэтому безопасность и соответствие закону закладываются в архитектуру с первой фазы, а не добавляются потом.
Приём файлов
| Угроза | Защита |
|---|---|
| Zip-бомба, огромные файлы | Лимит размера по тарифу (10–50 МБ), лимиты на число частей и суммарный распакованный объём, тайм-ауты обработки, отдельные воркеры с ограничением памяти. |
| XXE и вредоносный XML | Разбор только через defusedxml или lxml с resolve_entities=False и без сетевого доступа. Внешние связи в .rels не разрешаются. |
| Пути вида ../ в архиве | Распаковка только в память или во временный каталог с проверкой имён. |
| Макросы во входящих .xlsm/.docm/.xls | olevba: показываем пользователю, что в файле есть макрос и что он делает по признакам. На сервере макросы не запускаются никогда, при правке vbaProject.bin сохраняется побайтно. |
| LibreOffice как поверхность атаки | Отдельный контейнер без сети, непривилегированный пользователь, порты unoserver только во внутренней сети, перезапуск экземпляров по счётчику задач. |
| Внедрение инструкций через содержимое (prompt injection) | Содержимое файла подаётся модели только как данные в разделителях. Скрытые листы, скрытый текст, комментарии и удалённые исправления показываются пользователю. Модель не имеет инструментов с доступом в сеть, все изменения — только через белый список операций. |
| Опасные формулы в выдаваемых файлах | Блок-лист WEBSERVICE, INDIRECT (по умолчанию), CALL, REGISTER, DDE (символ «|»), ссылки на внешние книги, гиперссылки только внутренние. |
| Опасный сгенерированный VBA | Статическая проверка: запуск программ (Shell, WScript.Shell), сетевые вызовы, удаление файлов (Kill, FileSystemObject.Delete), реестр, объявления Declare/Lib. Найдено опасное — макрос не выдаётся или помечается с объяснением. |
Персональные данные (152-ФЗ)
- Локализация. С 01.07.2025 (23-ФЗ, ч. 5 ст. 18 152-ФЗ) при сборе ПДн граждан РФ нельзя записывать, хранить, изменять и извлекать их с помощью иностранных баз данных. Штраф для юрлиц — 1–6 млн ₽, повторно 6–18 млн ₽ (ч. 8–9 ст. 13.11 КоАП). Аккаунты, файлы и журналы храним только на Сагаре и GX10.
- Трансграничная передача. Модели OpenAI, Anthropic, Google, xAI, Alibaba, DeepSeek, Moonshot и Z.ai, доступные через Timeweb, — зарубежные. Отправка им ПДн — трансграничная передача (ст. 12), требует уведомления Роскомнадзора. Договор поручения на обработку содержимого запросов у Timeweb не найден, а для ИИ-агентов Timeweb требует от клиента согласия на трансграничную передачу ПДн. Поэтому сырые ПДн в облако не отправляются никогда, даже в YandexGPT через Timeweb, пока место обработки не подтверждено письменно.
- Три режима обработки файла с ПДн, на выбор пользователя: «только на наших серверах» (по умолчанию), «замаскировать и отправить в облако», «отправить только структуру». Решение записывается в журнал аудита.
- Согласие. С 01.09.2025 (156-ФЗ) согласие на обработку ПДн оформляется отдельно от иных документов (в электронном виде можно). Поэтому на экране входа два обязательных флажка: согласие на обработку ПДн и оферта — раздельно. В оферте нужен раздел «поручение на обработку ПДн» (ч. 3 ст. 6), потому что AXEL обрабатывает данные, которые пользователь загрузил о третьих лицах.
- Сроки. Файлы удаляются автоматически через 7/30/90 дней по выбору, кнопка «Удалить все мои файлы» действует сразу.
Нормативка, которая влияет на продукт
| Норма | Что это значит для AXEL |
|---|---|
| НДС 22 % с 01.01.2026 (425-ФЗ); ставки 10 % и льготные сохраняются | Ставка никогда не вписывается в формулы, а берётся из листа «Параметры». Пример в интерфейсе и шаблонах — 22 %. |
| 376-ФЗ (от 15.10.2025, в силе с 01.03.2026): п. 4.2 ст. 16.1 Закона о защите прав потребителей | Запрещены периодические списания по реквизитам, от использования которых потребитель отказался; отказ нужно принимать, в том числе в электронной форме. У нас: пакеты без автопродления по умолчанию, подписка только по явной галочке, уведомление за 24 часа, отмена в один клик и удаление карты. Последние два пункта законом прямо не требуются, но снимают споры. |
| 54-ФЗ | Чеки через платёжного агрегатора (ЮKassa или аналог), для юрлиц — оплата по счёту. |
| Производственный календарь, МРОТ, лимиты УСН и НПД | Лист «Параметры» в каждом шаблоне, ежегодное обновление библиотеки. Расчёты, зависящие от закона (зарплата, налоги), помечаются «сверьте с бухгалтером». |
Юридический пакет до запуска
- Оферта с разделом о поручении на обработку ПДн: перечень действий, цели, меры защиты по ст. 19, запрет передачи сырых ПДн за рубеж.
- Отдельный документ согласия на обработку ПДн самих пользователей.
- Политика обработки ПДн, уведомление Роскомнадзора как оператора.
- Письменный запрос в Timeweb: где обрабатываются промпты для моделей timeweb/* и Yandex, есть ли договор поручения, сколько хранятся промпты.
- Решение, на кого оформлен сервис (ИП или ООО): от этого зависят приём платежей, рекуррентные списания и чеки.
11. Рынок, отличия и цены
Рынок делится на четыре класса, и ни один российский сервис не закрывает связку «готовый файл + аккуратная доработка своего файла + сравнение до/после + резервная копия + совместимость с офисами, которыми пользуются в России».
| Класс | Кто | Цена | Чего не хватает |
|---|---|---|---|
| Генераторы формул и макросов (текст) | GPTExcel, Formula Bot / Better Analyst, Ajelix, SheetAI, Numerous.ai | 9–55 $ в месяц; Ajelix до 199 $ | Отдают текст, а не файл. Формулы правдоподобные, но не проверены. Нет русской локали и отечественных офисов. |
| ИИ-аналитики с загрузкой файла | Julius, Excelmatic, Rows (поглощён в 2026 году) | 10–45 $, Julius Business 375 $ | Формулы превращаются в значения, форматирование и объекты теряются. |
| Агенты внутри Excel и Word | Microsoft 365 Copilot Agent Mode, Claude for Excel/Word, Shortcut, Gemini в Таблицах | от 20 $ и подписка M365 | Юрлицам в РФ облачный M365 отключают с 2024 года. Claude for Excel не работает в Excel 2016/2019, на iPad и Android, не поддерживает VBA. Подтверждение правок по умолчанию выключено. |
| Российские | Агрегаторы нейросетей (MashaGPT, Syntx, BotHub и др.), Telegram-боты, ИИ в Яндекс Таблицах, МойОфис 26.2, Р7, GigaChat | 199–790 ₽ в месяц; Яндекс Таблицы — 50 запросов бесплатно; «Алиса AI для бизнеса» 1 199 ₽ за сотрудника | Текст в чате или ИИ только внутри своего редактора. По обзорам GigaChat не принимает xlsx. |
Что берём у конкурентов в интерфейс
- Claude for Excel/Word: предупреждение перед перезаписью, карточки подтверждения, ссылки на ячейки в ответах, правки Word рецензированием. Но у нас подтверждение включено всегда.
- Copilot Agent Mode: видимый план шагов, история изменений с подсветкой ячеек и выборочной отменой, «объясни формулу» прямо на данных.
- GPTExcel: переключатель целевой платформы, раздельные режимы «создать / объяснить / исправить», библиотека шаблонов.
- Gemini в Таблицах: выделил диапазон → предпросмотр заполнения → принять.
- Shortcut: задача как единица оплаты, уточнения внутри неё бесплатны; подсветка влияющих ячеек.
- Excelmatic: фото бумажной таблицы или накладной → Excel (у нас — qwen3-vl на GX10, фаза 8).
Антипаттерны, которых избегаем
- 17 отдельных «инструментов» с формами вместо одного поля ввода (Ajelix).
- Кредиты, которые сгорают за пару сложных сообщений; резкий скачок тарифа (Julius: 45 $ → 375 $).
- Автопродление без уведомления и сложная отмена (жалобы на Numerous.ai). В РФ с 01.03.2026 списания после отказа потребителя прямо запрещены (376-ФЗ).
- История, которая хранится только в браузере и теряется при смене устройства.
Цены AXEL (гипотеза для A/B-проверки)
| Тариф | Цена | Что входит | Чем считаем |
|---|---|---|---|
| Без регистрации | 0 ₽ | 3 формулы | GX10 |
| Бесплатно | 0 ₽ | 10 запросов в месяц, формулы и небольшие файлы | Только GX10 |
| Старт | 390 ₽ в месяц | 100 запросов, файлы до 20 МБ, история 30 дней | GX10 + дешёвое облако |
| Профи | 990 ₽ в месяц | 500 запросов, макросы, слияние Word, история 90 дней | + средний уровень облака |
| Бизнес | 2 990 ₽ в месяц | До 10 человек, процессы, общая библиотека, бессрочное хранение, оплата по счёту | + сильные модели для трудных задач |
| Пакет без подписки | 290 ₽ | 50 запросов, не сгорают 12 месяцев | — |
Что считается запросом: формула или объяснение — 1; макрос — 2; файл по шаблону или документ Word — 3; таблица с нуля — 5; доработка своего файла — 5 и ещё 1 за каждые 5 000 непустых ячеек. Уточнения внутри задачи бесплатны. Перед тяжёлой задачей пользователь видит, сколько будет списано. Если проверка не прошла и файл не выдан, запрос возвращается.
Себестоимость. На GX10 запрос по деньгам бесплатен, остаётся только электричество. В облаке Timeweb средний запрос (8 тыс. токенов на вход, 1,5 тыс. на выход) стоит около 0,2 ₽ на GPT-6 Luna или Qwen 3.5 Flash, около 0,6 ₽ на DeepSeek V4.1 Flash и около 6,3 ₽ на Claude Sonnet 5. С паспортом книги вместо всей таблицы и кэшем префикса дешёвый уровень выходит в 0,05–0,1 ₽. Даже при 15 % эскалаций себестоимость платного пользователя — десятки рублей в месяц при цене тарифа 390–2 990 ₽.
Каналы
Основной канал — веб, полноценный на телефоне: надстройки Claude и Copilot на Android и iPad не работают, это наше преимущество. Второй очередью — бот в мессенджере: формула сразу в чате, файлы по ссылке на веб. Первым кандидатом выглядит MAX: национальный мессенджер с платформой ботов и мини-приложений для юрлиц, ИП и самозанятых — резидентов РФ, к маю 2026 года там создано больше 150 тыс. ботов (iXBT). Telegram на 30.09.2026 работает, но с ограничениями: с 2025 года Роскомнадзор замедляет медиа и блокирует звонки, сбои продолжаются (Hi-Tech Mail). Файлы через ссылку на веб эти ограничения обходят. Один и тот же API обслуживает оба бота. Надстройка для Excel или Р7 — по спросу, после фазы 7. SEO: страницы «формула для …» по типовым задачам с живым генератором.
12. Экраны
Все 28 экранов собраны в кликабельный прототип: mockups.html. Он работает в браузере и на телефоне: переходы между экранами, имитация генерации и проверки, план с галочками, «до/после», заполнение полей Word, фильтры шаблонов. Ниже — снимок и назначение каждого экрана; по ссылке экран открывается в прототипе.
На телефоне







Публичное

01. Лендинг
Что делает экран. Публичная страница: за 5 секунд объясняет продукт и даёт попробовать без регистрации — поле «Получить формулу» работает (3 бесплатных запроса, ответ в RU и EN, разбор по частям, проверка на примере). AXEL сам распознаёт тип задачи: попросите договор, макрос или «доработать файл» — вместо формулы предложит нужный сценарий; на расплывчатый запрос задаст уточнение и не спишет запрос. Попробуйте: чипы-примеры под полем, шаги в блоке «Как мы бережём ваш файл», профессии в «Для кого», переключатель «Месяц / Год» в тарифах.
Открыть в прототипе →
02. Вход и регистрация
Что делает экран. Вход и регистрация — одна форма без пароля: код на почту или по SMS; если аккаунта ещё нет, он создаётся сам, и человек попадает в онбординг. Согласие на обработку ПДн — отдельный обязательный флажок, не склеенный с офертой (так требует 152-ФЗ с 01.09.2025), рассылка — по желанию и заранее не отмечена. Попробуйте: «Получить код» без флажков, «Почта / Телефон», код из «письма» по цифре или целиком через Ctrl+V, неверный код, таймер повторной отправки; Яндекс ID / VK ID / Сбер ID — заглушки.
Открыть в прототипе →
03. Онбординг: 3 вопроса
Что делает экран. Три вопроса за 30 секунд, и каждый ответ сразу на что-то влияет: пример формулы перестраивается под вашу программу и язык Excel (ПРОСМОТРX — только если его знают все отмеченные программы, иначе ИНДЕКС + ПОИСКПОЗ), а итоговая подборка из 4 шаблонов — под отрасль. Приватность по умолчанию — файлы только на наших серверах, облачная модель — лишь по явному выбору и без ПДн. Попробуйте: выберите отрасль, отметьте «Excel 365», потом добавьте «LibreOffice», переключите язык, выберите облачную модель; в подборке нажмите «Изменить» у отрасли — шаблоны поменяются; «Начать» ведёт на Главную.
Открыть в прототипе →Рабочее место

04. Главная
Единый вход во все сценарии. Человек пишет задачу своими словами, а AXEL сразу показывает, какой сценарий распознал и по какому слову: формула, новая таблица, доработка файла, документ Word, макрос или процесс. В продукте тип определяет маленькая модель-классификатор на сервере Сагар (≈0,2 с), в прототипе — ключевые слова; если угадал не то — «Выбрать вручную». Попробуйте: сотрите текст и напишите «формула НДС», «договор с ИП», «макрос» или «доработать файл», нажмите 📎 и «Выполнить» (Ctrl+Enter), переключите «Ждут меня» и отрасль в шаблонах.
Открыть в прототипе →
05. Формула по описанию
Что делает экран. Человек пишет задачу своими словами, AXEL задаёт 1–2 уточняющих вопроса (какие столбцы, где результат) и выдаёт формулу в двух видах: для русского Excel (СУММЕСЛИМН и «;») и для файла/английского Excel (SUMIFS и «,»). Формула разобрана по частям, проверена на примере в LibreOffice на сервере (значения посчитаны, ошибок нет), показана совместимость с Excel 2016/2019/365, LibreOffice, Р7-Офис, МойОфис, Google Таблицами. Перевод RU↔EN делается программой по таблице соответствий, а не моделью. Попробуйте: нажмите «Сгенерировать», переключите RU/EN, «Проверить на моих данных».
Открыть в прототипе →Создать таблицу

06. Новая таблица: описание и уточнения
Шаг 1 из 3: описание и уточнения. Модель на GX10 разбирает описание на столбцы, итоги и подсветку и сама предлагает недостающее (№, дата, «Просрочено»); ответы на вопросы уже подставлены из описания и онбординга — человек меняет только то, что не так. Попробуйте: выберите другой пример справа (склад, табель, договоры) — разбор и первый вопрос поменяются; в вопросе 2 выберите «Форма с кнопкой (макрос)» — появится предупреждение про .xlsm; нажмите «Предложить структуру».
Открыть в прототипе →
07. Конструктор структуры
Шаг 2 из 3: структура до создания файла. AXEL предложил книгу из 4 листов — её правят руками (тип, проверка, обязательность, порядок за ⋮⋮) или словами, а файл не собирается, пока не нажата «Создать файл»; удалить столбец, на который ссылается формула, молча нельзя — AXEL покажет зависимые формулы. Панель «Что будет в файле» пересчитывает листы, столбцы, проверки и формулы при каждой правке. Попробуйте: напишите «добавь столбец Телефон обязательный», удалите «Статус», включите «макрос кнопки», добавьте лист через «+ лист».
Открыть в прототипе →
08. Готовый файл: предпросмотр и проверка
Шаг 3 из 3: готовый файл. Книгу собирает программа по утверждённой структуре, а LibreOffice на сервере пересчитывает все формулы — в «Отчёт проверки» попадает только реально проверенное, предупреждения не прячутся. Предпросмотр строится из структуры шага 2 (добавленный там столбец появится и здесь): голубые ячейки — формулы, красная строка — просрочено, жёлтая — пустое обязательное поле. Попробуйте: переключите вкладки листов под таблицей, нажмите ячейку «Просрочено» и переключите RU/EN, нажмите пункт отчёта проверки — покажу его на листе.
Открыть в прототипе →Доработать мой файл

09. Загрузка файла
Что делает экран. Первый шаг доработки: человек кладёт файл, а AXEL сначала проверяет его на безопасность (пароль, внешние ссылки, макросы, OLE-объекты) и только потом разбирает структуру; макросы никогда не запускаются, файл обрабатывается в России и удаляется через 30 дней. Задачу можно написать сразу, пока идёт проверка. Попробуйте: перетащите или выберите свой .xlsx, .xlsm, .docx или .csv — он прочитается только в браузере (покажем имя, размер, листы и макросы), — или нажмите «Взять пример prodazhi-2026.xlsx», а затем «Открыть карту книги».
Открыть в прототипе →
10. Карта книги
Что делает экран. До любой правки AXEL показывает, как он понял книгу: листы и что в них (умная таблица, формулы, сводная, диаграммы, скрытый и защищённый лист), кто от кого зависит и описание словами. Здесь же бесплатная диагностика — ошибки #Н/Д, числа-текстом, ссылки на пустой столбец, дубли клиентов — и найденные персональные данные: они маскируются и в облачную модель не уходят. Попробуйте: раскройте карточку листа, «Добавить исправление в план» (попадёт в план на следующем шаге), переключите «Что видит модель» и нажмите «Составить план».
Открыть в прототипе →
11. План изменений и предупреждения
Что делает экран. План — это договор до правки: каждая операция отдельной карточкой, любую можно выключить, а те, что меняют существующие данные, помечены жёлтым и показаны «было / стало» на примере ячейки. Сводка, число изменяемых ячеек и текст согласия пересчитываются на лету; «Применить» недоступна, пока не отмечено согласие — или пока не сняты опасные операции. Попробуйте: снимите операцию 1 (снимется и 2), нажмите «Только безопасные», отметьте согласие, «Все 14 на листе →».
Открыть в прототипе →
12. Предпросмотр «до/после»
Что делает экран. Показывает prodazhi-2026.xlsx как в Excel, но с разметкой будущих правок: зелёные — новые ячейки, жёлтые — изменённые, красные зачёркнутые — значения, которые будут перезаписаны, синяя рамка — меняется только оформление. Переключатель До / После / Рядом перестраивает лист, «Только изменения» прячет нетронутые строки и столбцы, клик по ячейке показывает справа «было / стало» с формулами, а жёлтую ячейку можно исключить из правки. Попробуйте: «Рядом», вкладки листов, жёлтую ячейку в «Отчёт», список операций справа и ячейку столбца G (объяснит, почему одну её исключить нельзя).
Открыть в прототипе →
13. Применение и проверка целостности
Что делает экран. Вносит утверждённые правки и сразу сам себя проверяет: копия исходника → изменения → пересчёт в LibreOffice на сервере → сверка «было / стало» по 10 признакам (листы, формулы, диаграммы, сводные, макрос по хешу, данные вне плана). Файл выдаётся только если все проверки пройдены, иначе — автоматический откат, исходник цел. Попробуйте: посмотрите, как заполняется таблица проверки; переключите демо на «Проверка нашла проблему»; «Откатить», «Технический журнал», «Копировать» отчёт.
Открыть в прототипе →Документы Word

14. Документы Word: создать или загрузить
Что делает экран. Вход в работу с Word: человек описывает документ словами, AXEL определяет тип документа и список полей (ИНН с проверкой, даты-календари, сумма прописью, которую считает программа, а не модель) и предлагает готовую основу из галереи. Тип результата выбирается переключателями: шаблон .dotx, документ + таблица Excel для массового заполнения, защищённая форма. Свой .docx можно загрузить и доработать — правки лягут в режиме рецензирования. Попробуйте: «Собрать шаблон», примеры-подсказки, переключатели результата, фильтр галереи и «Посмотреть» у любого шаблона.
Открыть в прототипе →
15. Шаблон Word с полями и слиянием
Что делает экран. Слева — страница договора с полями-«пилюлями» (в Word это элементы управления содержимым): пустые синие, заполненные зелёные, с ошибкой красные. Справа — панель «Поля»: тип, обязательность, проверка и источник. Сумма прописью, НДС и предоплата считаются программой, ИНН и расчётный счёт проверяются по контрольным числам. Вкладка «Массовое заполнение» связывает шаблон с clients.xlsx (124 строки) и выпускает архив .docx или один PDF. Попробуйте: поменяйте сумму (например, 1 021 001,21), включите «Предоплата 30 %» — появится новый пункт и сдвинется нумерация; кликните пилюлю в документе; «Заполнить примером»; во вкладке «Массовое заполнение» листайте строки ◀ ▶ и нажмите «Создать».
Открыть в прототипе →
16. Правка чужого документа в режиме рецензирования
Что делает экран. Человек загрузил чужой договор и попросил поправить его словами. AXEL ничего не переписывает молча: все 23 правки внесены как исправления Word (вставки зелёным, удаления зачёркнуты красным), к спорным местам — примечания. Каждую правку можно принять или отклонить здесь или потом в самом Word; форматирование, нумерация и стили не тронуты. Попробуйте: примите или отклоните правки справа (текст в документе и счётчик меняются), отфильтруйте «Замена» и «Принять все», кликните правку — документ прокрутится к ней, переключите вид «С правками / Чистовик / Исходник».
Открыть в прототипе →Макросы

17. Макрос по описанию
Что делает экран. Сначала AXEL честно отвечает, можно ли обойтись без макроса (фильтр, ФИЛЬТР(), сводная, Power Query), и только потом выдаёт аккуратный VBA-код с комментариями на русском, разбором по шагам и проверкой безопасности: нет сети и запуска программ, удаляются только листы, созданные самим макросом. Есть версии для LibreOffice, Р7-Офиса и Google Таблиц, инструкция по установке и официальный способ Microsoft разблокировать файл из интернета. Попробуйте: «Написать макрос», переключатель способов без макроса, вкладки программ, клик по шагу разбора — в коде подсветятся нужные строки.
Открыть в прототипе →Бизнес-процессы и шаблоны

18. Конструктор бизнес-процесса
Что делает экран. Процесс описывается шагами, а AXEL превращает его в комплект связанных файлов: таблицу с листом для каждого шага, форму Word и инструкцию. По клику на шаг справа видно, кто его выполняет и что создаётся (файл, лист, поля, формулы, подсветка, макрос); срок (SLA) сразу становится формулой и правилом подсветки просрочек. Попробуйте: клик по шагу, смените срок согласования и посмотрите на подсветку, «Собрать комплект файлов», выберите внизу другой готовый процесс.
Открыть в прототипе →
19. Библиотека шаблонов по отраслям
Что делает экран. Библиотека проверенных шаблонов Excel и Word по отраслям: поиск, чипы отраслей и переключатель программы фильтруют карточки сразу, на карточке видно, что внутри, где работает и сколько раз шаблоном пользовались. Предпросмотр показывает миниатюру листа с формулами, а поле «Настроить словами» сразу меняет её (например, «добавь столбец «Телефон»»). Попробуйте: чип «Склад», поиск «смета», «Посмотреть» → «Применить», «Взять и настроить».
Открыть в прототипе →Аккаунт

20. Мои файлы и проекты
Что делает экран. Все работы в одном месте: Excel, Word и макросы, разложенные по папкам-проектам, с числом версий и статусом — «готово», «ждёт подтверждения», «ошибка проверки». Незакреплённые файлы удаляются через 30 дней после последнего изменения, поэтому скорые удаления видны заранее и их можно продлить. Попробуйте: переключите «Excel / Word / Макросы», выберите папку «Кадры», наберите в поиске «договор» или «табель», отметьте пару файлов галочками, нажмите «Продлить».
Открыть в прототипе →
21. История версий и откат
Что делает экран. Лента всех версий файла: кто и когда, по какому запросу, что изменилось и чем закончилась проверка целостности. Откат ничего не удаляет — он создаёт новую версию-копию, вся история остаётся. Справа — сводное сравнение двух выбранных версий. Попробуйте: отметьте «В сравнение» у двух версий, «Сравнить с предыдущей», «Откатить к этой» у версии 1, раскройте строку проверки.
Открыть в прототипе →
22. Настройки
Что делает экран. Здесь человек говорит, в какой программе он работает, — и AXEL подбирает только те функции, которые там есть: для Excel 2016/2019 вместо ПРОСМОТРX будет ИНДЕКС + ПОИСКПОЗ, для LibreOffice — ссылка на лист через точку. Если файл открывают ещё и коллеги в Р7-Офисе или LibreOffice, формула подбирается так, чтобы работала у всех. Приватность по умолчанию строгая: только наши серверы, облачная модель — лишь по согласию и без персональных данных. Попробуйте: переключите «Excel 365» ↔ «Excel 2016 / 2019», добавьте «Р7-Офис» в «также открывают», смените язык и разделитель, включите облачную модель и выключите маскирование.
Открыть в прототипе →
23. Тарифы и оплата
Что делает экран. Четыре тарифа и разовый пакет запросов, честно показано, что считается запросом (формула — 1, доработка файла с проверкой — 5, ремонт формулы после неудачной проверки — бесплатно). Оплата — карта, СБП по QR или счёт для юрлица, чеки по 54-ФЗ; при переходе на тариф выше неиспользованные дни «Старта» зачитываются. Попробуйте: переключите «Помесячно / За год −20 %», выберите «Профи» или «Бизнес», смените способ оплаты и нажмите «Оплатить» — платёж появится в истории.
Открыть в прототипе →Админка

24. Обзор
Что делает экран. Пульт владельца сервиса: сколько запросов, какая доля формул прошла пересчёт в LibreOffice с первого раза, что стоит в очереди и хватает ли мощности. Внизу — состояние трёх площадок: Сагар (веб, очередь, LibreOffice, классификатор на CPU), GX10 (основные модели) и Timeweb (облачный резерв, только без ПДн). Ошибки идут лентой вместе с тем, как система их уже обработала: ремонт, резерв, повтор. Попробуйте: переключить «Сегодня / 7 дней / 30 дней», кликнуть по столбику графика, отфильтровать ошибки и открыть «Подробнее».
Открыть в прототипе →
25. Модели и маршрутизация
Что делает экран. Какая модель за что отвечает и куда уходит каждый запрос: Сагар (классификатор на CPU), GX10 (пять моделей Ollama), Timeweb Cloud AI (два облачных агента, только без ПДн). Правила проверяются сверху вниз, срабатывает первое подходящее, поэтому порядок важен. Экран сам ловит опасные перестановки (например, резерв Timeweb выше правила «ПДн») и не даёт их сохранить. Попробуйте: опустить правило «ПДн» кнопкой ↓ ниже «Резерва Timeweb», выбрать справа сценарий «Файл с ФИО, GX10 занят» и посмотреть, куда уйдёт запрос; подвигать тайм-аут и бюджет; «Прогнать регрессионный набор…».
Открыть в прототипе →
26. Качество ответов
Что делает экран. Показывает, насколько ответам можно доверять: регрессионный набор из 120 задач (60 формул, 20 VBA, 25 планов правки, 15 Word) прогоняется на всех моделях, и каждый ответ проверяет программа — пересчёт в LibreOffice, сравнение с эталоном, проверка целостности, а не человек «на глаз». Жалоба пользователя одной кнопкой становится новой задачей набора, поэтому найденную однажды ошибку ловит каждый следующий прогон. Попробуйте: выбрать тип задач «VBA», нажать «Прогнать заново» (или ▶ в строке модели), добавить жалобу в набор или закрыть её, переключить метрику на графике и кликнуть по столбику или событию.
Открыть в прототипе →Мобильная версия и каналы

27. Мобильная версия
Что делает экран. Три главных сценария на телефоне: формула (поле, ответ с большой кнопкой «Копировать», переключатель RU/EN), план правки файла (предупреждение, флажок согласия, «Применить») и готовый файл («Скачать», краткий отчёт целостности). Вместо бокового меню — нижняя панель вкладок, главные кнопки во всю ширину и под палец. Принцип «ничего не меняем молча» тот же, что на сайте: «Применить» не нажимается, пока не поставлен флажок, а «до/после» открывается отдельным экраном. Попробуйте: выбрать пример, переключить RU/EN и скопировать; снять операцию 6, поставить флажок и «Применить» — третий телефон обновит отчёт; раскрыть все 10 проверок и «Откатить».
Открыть в прототипе →
28. Telegram-бот
Что делает экран. Макет чата с ботом @axel_bot: задача словами → формула в двух видах (RU и EN, моноширинным) с кнопками «Копировать», «Пример .xlsx», «Открыть в AXEL»; файл → план из 4 пунктов. Бот ничего не меняет в файле сам: правки подтверждаются только на сайте, где видно «до/после» и сохраняется исходник. Бот работает через тот же API, что и сайт, поэтому модели, проверки в LibreOffice и лимиты у них общие. Попробуйте: написать в поле «выдели НДС 22 %» или «подтяни цену по артикулу», нажать /limits, отправить файл скрепкой 📎 (в том числе больше 20 МБ), нажать на формулу или «Подтвердить на сайте».
Открыть в прототипе →13. План работ по фазам
Девять фаз, около 29 недель для одного разработчика с ИИ-сессиями. Со вторым разработчиком Word-трек идёт параллельно с доработкой файлов, и срок сокращается примерно до 5 месяцев. Каждая фаза считается готовой только тогда, когда она работает онлайн на Сагаре по адресу axel.24oros.ru: проверено живыми запросами, в браузере и на телефоне.
Недели от старта. Цвета: зелёный — Excel, синий — Word, фиолетовый — макросы, серый — инфраструктура, оранжевый — каналы.
Ф0. Фундамент — 2 недели
- Доступ к Сагару (памятка сервера, отдельный пользователь вместо root). Замеры железа: тип памяти, llama-bench для CPU, Vulkan, SYCL и OpenVINO.
- Репозиторий в Gitea, CI, автодеплой через Coolify на Сагаре. Контейнеры: веб, API, Redis, Postgres, axel-calc (LibreOffice ≥25.8, профиль с пересчётом, без сети), LiteLLM.
- Связь Сагар → GX10 по Tailscale с проверкой здоровья. Ключ Timeweb AI Gateway с жёстким лимитом. Живая проверка tools и json_schema у выбранных моделей.
- Словарь функций RU↔EN (~500) с тестом обратного перевода. AXEL-Bench-RU: 22 задачи из нашего замера расширяются до 200.
- Черновики юридических документов: оферта, политика ПДн, согласие.
Готово, когда: axel.24oros.ru отвечает по HTTPS с Сагара; /healthz показывает Сагар, GX10 и Timeweb; формула =1+1 пересчитывается в axel-calc; бенчмарк прогоняется одной командой.
Ф1. Формулы и первый запуск — 3 недели
- Формула по описанию: уточняющие вопросы, вывод по схеме, грамматика с белым списком, ExecVote на 2–3 наборах данных, ремонт по ошибке, линтер, совместимость, перевод RU/EN программой.
- Разбор формулы по частям с промежуточными значениями, мини-таблица «проверено расчётом», «скачать пример .xlsx».
- Вход по почте или телефону с кодом, лимиты (3 без регистрации, 10 в месяц), профиль совместимости.
- Метрики: время ответа, доля формул, прошедших пересчёт с первого раза, кнопки «работает / не работает».
Готово, когда: не меньше 85 % формул из AXEL-Bench-RU проходят пересчёт с первой попытки; ответ за p95 < 20 с; русская версия формулы совпадает с переводом программой в 100 % случаев; экран работает на телефоне 375 px.
Ф2. Новые таблицы и оплата — 4 недели
- WorkbookSpec (JSON) → XlsxWriter: умные таблицы, проверки ввода из «Справочников», условное форматирование, лист «Параметры» (НДС 22 %, календарь), «Как пользоваться», защита формульных столбцов.
- Конструктор структуры с правкой словами. Предпросмотр: своя сетка по данным calamine и PNG через LibreOffice.
- Первые 20 отраслевых шаблонов: склад, продажи, заявки, табель Т-13, книга доходов и расходов.
- Оплата через ЮKassa (карта, СБП), пакеты без автопродления, подписка по 376-ФЗ, чеки.
Готово, когда: 100 % созданных файлов открываются в Excel без окна восстановления (Windows-стенд) и в LibreOffice; ошибок формул 0; тестовая оплата проходит от начала до конца.
Ф3. Доработка файлов пользователя — 6 недель
- Приёмка: лимиты, zip, defusedxml, olevba, скрытое содержимое. Паспорт книги, детектор ПДн с масками, выбор режима обработки.
- DSL плана правки, классы риска R0–R4, пробный прогон, дифф по ячейкам и пересчитанным зависимым значениям.
- Хирургический патчер OOXML: на этой фазе только классы R1–R3 (добавление и изменение в новых областях; изменение существующих формул — с галочкой).
- Инвариантная сверка, валидатор схемы, версии и откат, отчёт об изменениях.
- Регрессия на корпусе 200–300 реальных файлов.
Готово, когда: на корпусе 100 % файлов проходят «открыть → ничего не менять → сохранить» побайтно; 99 %+ правленых файлов открываются в Excel без восстановления; ни одного случая потери объекта (диаграммы, сводной, макроса); перезапись непустых ячеек без согласия невозможна (покрыто тестами).
Ф4. Документы Word — 4 недели
- Шаблоны из спецификации: поля с тегами, защита, колонтитулы, реквизиты. 15 стандартных документов: договор, счёт, акт, приказ, заявление, КП, доверенность.
- Заполнение и слияние из Excel, сумма прописью и проверка реквизитов программой.
- Правка чужих документов рецензированием: нормализация, карта символов, w:ins/w:del, двусторонняя проверка, три файла на выходе.
Готово, когда: «отклонить всё» возвращает исходный текст в 100 % тестов; документы открываются в Word 2016+ и LibreOffice без ошибок; на 50+ русских документах (ГОСТ-оформление, многоуровневые списки, объединённые ячейки) нумерация и стили не ломаются.
Ф5. Макросы — 2 недели
- VBA по описанию: сначала проверяем, можно ли обойтись без макроса; код с комментариями, статическая проверка опасных вызовов, разбор по шагам, инструкция установки и разблокировки файла.
- Выдача: модуль .bas плюс каталог проверенных макросов в готовых .xlsm/.dotm (vbaProject.bin собран заранее в Excel).
- Варианты для Р7-Офис (JavaScript), LibreOffice Basic, Google Apps Script, подмножество VBA для МойОфис.
Готово, когда: 15 макросов каталога проверены на Windows-стенде; сгенерированный VBA проходит статическую проверку; опасные вызовы блокируются в 100 % тестов.
Ф6. Бизнес-процессы и библиотека — 3 недели
- Конструктор процесса «заявка → согласование → учёт → отчёт»: комплект файлов (Excel-реестр, форма Word, инструкция), роли, сроки, подсветка просрочек.
- Библиотека: 40+ шаблонов по 10 отраслям с фильтрами, «настроить словами», производственный календарь и «Параметры» в каждом.
Готово, когда: каждый шаблон проходит автоматические проверки создания и пересчёта; 6 готовых процессов собираются за один запрос.
Ф7. Качество и масштаб — 2 недели
- Админка: обзор, модели и маршрутизация, качество, жалобы с добавлением в набор задач.
- Переход GX10 с Ollama на llama-swap и llama-server (слоты, json_schema, параллельные запросы). Замер нагрузки: сколько пользователей одновременно держит связка.
- Мониторинг, бэкапы, сторож деградации (LLM на Сагаре отключается, если тормозят сайты).
Готово, когда: нагрузочный тест на 20 одновременных пользователей проходит без ошибок; восстановление из бэкапа проверено.
Ф8. Каналы — 3 недели, по решению
- Бот в мессенджере (MAX или Telegram — по проверке доступности): формулы в чате, файлы по ссылке.
- Фото бумажной таблицы или накладной → Excel (qwen3-vl на GX10).
- Надстройка для Excel или Р7 — если будет спрос.
Можно начинать сразу. Харнесс проверки формул (пересчёт в LibreOffice на GX10, детерминированная проверка русской версии) уже работает в ~/ai/axel-bench на GX10 и станет ядром сервиса axel-calc в Ф0. Кликабельный прототип всех 28 экранов готов и задаёт объём работ для Ф1–Ф7.
14. Риски, открытые вопросы и что нужно от владельца
Главные риски
| Риск | Вероятность и ущерб | Что делаем |
|---|---|---|
| Потеря объектов при правке чужого файла: окно «Excel обнаружил проблему», пропавшая диаграмма или сводная | высокий ущерб Главная угроза доверию | Только патчер OOXML, инвариантная сверка, валидатор, корпус 200–300 реальных файлов, Windows-стенд с Excel. Вставку и удаление строк откладываем. |
| Правдоподобная, но неверная формула | высокий Главный минус всей категории | ExecVote, пересчёт двумя движками, тесты на 2–3 наборах данных, «готово» ставит проверщик, а не модель. |
| LibreOffice не считает LAMBDA и не «разливает» динамические массивы | средний | Второй движок (Formualizer), пометка «проверьте в Excel», режим совместимости по умолчанию — Excel 2016 + LibreOffice. |
| GX10 занят другими проектами, память общая | средний Падения «нет памяти» уже были | Проверка свободной памяти до загрузки модели, llama-swap с TTL, очередь, облако для задач без ПДн, честное «подождите» для задач с ПДн. |
| LLM на Сагаре тормозит публичные сайты | средний | На Сагаре только маленькая модель-классификатор; cpuset и лимит памяти; сторож отключает LLM при росте задержек сайтов. |
| Персональные данные уходят за рубеж | штрафы до 6–18 млн ₽ | Жёсткое правило в роутере: сырые ПДн — только Сагар и GX10. Маскирование, журнал решений, юридический пакет. |
| Внедрение инструкций через загруженный файл | средний | Данные отдельно от инструкций, белый список операций, нет сетевых инструментов у модели, показ скрытого содержимого. |
| Timeweb меняет цены и каталог, зарубежные модели пропадают | средний Многие модели уже помечены как устаревшие | LiteLLM и реестр возможностей моделей с ежедневной проверкой, резерв в РФ (Cloud.ru, MWS, Yandex), лимиты на ключах. |
| Бесплатный ИИ в отечественных офисах закрывает простые формулы | средний | Ценность AXEL — в файлах, доработке, процессах и гарантиях сохранности, а не в одной формуле. |
| Лицензии: случайно скопировать GPL, AGPL или проприетарный код | средний | Реестр зависимостей (SBOM) с проверкой лицензии при каждом добавлении; код anthropics/skills, ONLYOFFICE, HyperFormula, formulas не используем. |
| VBA: собрать произвольный vbaProject.bin из текста надёжно нельзя | известное ограничение | Модуль .bas с инструкцией и каталог заранее собранных .xlsm. Не обещаем «любой макрос внутри готовой книги». |
Что нужно от владельца
- Доступ к Сагару. Памятку сервера и отдельного пользователя или явное разрешение работать под root. Без этого фаза 0 не начнётся, а все цифры скорости для Сагара остаются оценками.
- DNS. Сейчас (01.10.2026) все поддомены
*.24oros.ruв публичном DNS указывают на Timeweb VPS 217.199.253.218, а не на наш IP 95.105.82.3. Для axel.24oros.ru нужна A-запись на 95.105.82.3 и маршрут в Traefik Сагара. Иначе по этому адресу откроется чужая страница. - Timeweb. Сколько бесплатных токенов уже на балансе и по какой акции. Ключ AI Gateway для AXEL с лимитом. Письменный ответ поддержки: где обрабатываются промпты моделей timeweb/* и Yandex, есть ли договор поручения.
- Юрлицо для оферты, приёма платежей и уведомления Роскомнадзора.
- Корпус файлов: 200–300 реальных рабочих файлов малого бизнеса (с согласия владельцев, без ПДн или обезличенные) — для регрессии фазы 3.
- Windows-стенд с Excel 365 и Word на русском (виртуальная машина) — эталонная приёмка файлов и макросов. По возможности — установки Р7-Офис и МойОфис.
- Память GX10: сколько ГБ можно гарантированно отдать сервису (например, 25–30 ГБ под постоянную модель).
Открытые вопросы
- Какие офисы реально у целевой аудитории (доля Excel 2016, Р7, МойОфис, LibreOffice)? От этого зависит режим совместимости по умолчанию.
- Нужна ли на старте поддержка .xls, .xlsb и .ods: только чтение с конвертацией или полноценно?
- Правки Word по умолчанию рецензированием (безопаснее) или выбор на экране подтверждения?
- Насколько хорошо Qwen3.6-35B-A3B, Ornith-1.5 и T-pro-it-2.1 справятся с русскими задачами — их стоит поставить на GX10 и прогнать на нашем наборе.
- Какое время ответа допустимо для пользователя: 10 секунд, 30 секунд, 2 минуты? От этого зависит, включать ли режим рассуждений.
- Канал второй очереди: MAX выглядит устойчивее, Telegram ограничен, но работает. Можно делать оба на одном API — решить к фазе 8.
15. Проверка фактов и источники
Отдельный агент-скептик перепроверил по первоисточникам 30 ключевых утверждений, на которых стоят архитектура и план: подтверждено 25, исправлено 5, не удалось проверить 0. Исправления уже учтены в тексте отчёта.
| № | Утверждение | Вердикт | Уточнение |
|---|---|---|---|
| 1 | genspark-ai/genoffice — лицензия Apache-2.0 (кроме папки ee/), умеет точечные патчи OOXML с побайтовым сохранением нетронутых частей. | подтверждено | Подтверждено по LICENSE и README: весь репозиторий под Apache-2.0, кроме каталога ee/ (GenOffice Enterprise License: разрешены только разработка и тестирование; продакшн, предоставление как hosted/managed-сервиса и распространение — только по договору с Mainfunc, Inc.). Сейчас в ee/ лежат лишь LICENSE и README (зарезервировано под будущие модули). README описывает сохранение: переписывается только изменённое, для docx изменённые блоки вклеиваются в исходный document.xml, остальные записи zip копируются байт-в-байт; xlsx обрабатывает Rust-сайдкар. Товарные знаки GenOffice/Genspark лицензия не покрывает. Проект очень молодой: создан 31.07.2026, релиз v0.11.0 от 28.09.2026. источник |
| 2 | haris-musa/excel-mcp-server — MIT; содержит блок-лист опасных функций (WEBSERVICE, INDIRECT и др.). | подтверждено | LICENSE — MIT (Copyright 2025-2026 Haris Musa). Блок-лист BLOCKED_FUNCTIONS в src/excel_mcp/formulas.py: сетевые (WEBSERVICE, FILTERXML, IMAGE, HYPERLINK, STOCKHISTORY, TRANSLATE, DETECTLANGUAGE, COPILOT, PY, IMPORT* из Google Sheets), внешние программы и подключения (RTD, DDE, CALL, REGISTER, REGISTER.ID, SQL.REQUEST, CUBE*), макрофункции Excel 4.0 (EXEC, EXECUTE, EVALUATE, FOPEN/FWRITE/FREAD/FCLOSE, GET.WORKSPACE/DOCUMENT/CELL), а также INFO, CELL, INDIRECT. Формулы разбираются токенизатором openpyxl (неразбираемые отклоняются), отдельно запрещены ссылки на внешние книги и DDE ('|'). Проверка применяется к значениям ячеек, условному форматированию и проверке данных. источник |
| 3 | tmustier/pi-for-excel — MIT. | подтверждено | LICENSE — MIT (Copyright 2026 Thomas Mustier). Сам проект описан как экспериментальная надстройка-сайдбар для Excel. источник |
| 4 | ironcalc/IronCalc — MIT или Apache-2.0; авторы называют его work-in-progress. | подтверждено | README: двойная лицензия на выбор — MIT или Apache-2.0 (файлы LICENSE-MIT и LICENSE-Apache-2.0); GitHub API показывает только Apache-2.0 — это особенность автоопределения. В README движок прямо назван work-in-progress, демо — в разделе «Early testing». источник |
| 5 | Formualizer (Rust-движок формул с Python-обёрткой) — лицензия MIT/Apache, версия на PyPI ~0.10 (сентябрь 2026). | подтверждено | Репозиторий PSU3D0/formualizer: в Cargo.toml license = "MIT OR Apache-2.0", файлы LICENSE-MIT и LICENSE-APACHE. На PyPI пакет formualizer: 0.10.0 (29.09.2026) и 0.10.1 (30.09.2026). В метаданных PyPI указана только MIT. источник |
| 6 | BetterOffice / betteroffice-xlsx — Apache-2.0, 0.2.0 от 28.09.2026. | подтверждено | PyPI betteroffice-xlsx 0.2.0 загружен 28.09.2026 (23:14 UTC), лицензия Apache-2.0; исходники — openooxml/betteroffice (Apache-2.0, контрибьюторы подписывают CLA). В тот же день вышли betteroffice-docx 0.2.0 и npm-пакет @betteroffice/xlsx 0.3.0. источник |
| 7 | SecurityRonin/docx-mcp — MIT, правки Word в режиме рецензирования. | подтверждено | LICENSE — MIT (Copyright 2026 Security Ronin). По README: вставка, удаление и замена текста как tracked revisions (можно отключить параметром tracked=False), принятие и отклонение правок по автору, комментарии, сноски, защита документа, журнал изменений, сравнение двух файлов. Проект небольшой: около 57 звёзд, последний push 05.08.2026. источник |
| 8 | XlsxWriter — BSD-2-Clause, умеет write_dynamic_array_formula и add_vba_project; не умеет менять существующие файлы. | подтверждено | LICENSE.txt — BSD 2-Clause. В документации есть worksheet.write_dynamic_array_formula() и workbook.add_vba_project(). В FAQ сказано, что XlsxWriter только пишет файлы и не может читать или изменять существующие. Формулы он не вычисляет: записывает результат 0 и ставит флаг пересчёта при открытии. источник |
| 9 | python-docx-template (docxtpl) — LGPL-2.1. | подтверждено | LICENSE.txt — GNU LGPL v2.1; на PyPI docxtpl 0.20.2 (13.11.2025) указано LGPL-2.1-only. источник |
| 10 | Docxodus — MIT; JSv4/Python-Redlines — MIT. | подтверждено | Оба под MIT. У Docxodus в LICENSE два правообладателя — Microsoft и John Scrudato IV, потому что это форк Open-Xml-PowerTools. Python-Redlines (LICENSE.md, MIT) по умолчанию работает через движок Docxodus на .NET 10, старый движок на Open-XML-PowerTools помечен устаревшим. Не путать с Open-Source-Legal/docxodus-service: он под AGPL-3.0. источник |
| 11 | anthropics/skills — скиллы docx/xlsx/pptx/pdf под проприетарной лицензией (LICENSE.txt запрещает копирование/производные). | подтверждено | В skills/docx, xlsx, pptx и pdf лежит LICENSE.txt «© 2025 Anthropic, PBC. All rights reserved». Использование возможно только по соглашению с Anthropic. Запрещены извлечение и хранение копий вне сервисов, воспроизведение, производные работы, распространение и реверс-инжиниринг. README называет эти четыре скилла source-available, а не open source; остальные скиллы репозитория — Apache-2.0. источник |
| 12 | formulas (vinci1it2000) — EUPL-1.1; pycel — GPL-3.0; HyperFormula — GPLv3 или коммерческая; EPPlus 5+ — Polyform Noncommercial. | подтверждено | formulas — EUPL 1.1 (на PyPI «EUPL 1.1+», то есть допускаются и более поздние версии EUPL). pycel — GPL-3.0, последний релиз 1.0b30 от 13.10.2021. HyperFormula — двойная лицензия: проприетарная или GPLv3, вариант определяется применённым ключом. EPPlus с 5-й версии — Polyform Noncommercial 1.0.0 или коммерческая лицензия (официальная страница лицензий EPPlus). источник |
| 13 | Carbone Community Edition — лицензия CCL, запрещает предлагать его как облачный сервис генерации документов. | подтверждено | LICENSE.md — Carbone Community License Agreement (действует с 14.02.2023). Пункт 2.2 запрещает использовать CE для document-generator-as-a-service и в любом SaaS, где функции генерации документов доступны третьим лицам. Исключение — «Value Added Products», которые не являются в первую очередь генераторами документов. Для AXEL, где создание документов — основная функция, исключение, скорее всего, не подходит; нужна коммерческая лицензия. источник |
| 14 | Univer: импорт/экспорт XLSX доступен только в платной Univer Pro; ядро Apache-2.0. | подтверждено | В разделе «Open Source and Pro» README импорт/экспорт для Sheets, Docs и Slides отнесён к Univer Pro / commercial; OSS-пакеты — Apache-2.0. Документация 1.0.3: пакеты @univerjs-pro/exchange-client и @univerjs-pro/sheets-exchange-client помечены как требующие лицензию и серверного бэкенда конвертации (Univer Server), а браузерный API не принимает .xlsm. Без лицензии появляются водяные знаки и ограничения. Прежние бесплатные лимиты (1 МБ на импорт, 10 тыс. ячеек на экспорт) в текущей документации не найдены. источник |
| 15 | openpyxl по официальной документации теряет фигуры/изображения/диаграммы при открытии и сохранении существующего файла; последний релиз openpyxl — 2024 год. | исправлено | Официальная документация (tutorial) предупреждает о потере только фигур (shapes) при открытии и сохранении файла. Диаграммы читаются с 2.5.0 (2017), изображения — с 2.5.5 (2018), но только при установленном Pillow: без него изображения отбрасываются. В исходниках 3.1.5 есть предупреждения: DrawingML ограничен диаграммами и изображениями, остальные фигуры и рисунки теряются; неподдерживаемые расширения листа удаляются (x14-условное форматирование, x14-проверка данных, спарклайны, срезы, timeline, protected ranges, ignored errors, web extensions). VBA сохраняется только при keep_vba=True (по умолчанию False). Последний релиз — 3.1.5 от 28.06.2024, это подтверждено. источник |
| 16 | LibreOffice: XLOOKUP, XMATCH, FILTER, SORT, SORTBY, UNIQUE, SEQUENCE, RANDARRAY, LET появились в 24.8; LAMBDA нет даже в 26.2. | подтверждено | По release notes 24.8 все девять функций добавлены в этой версии. LAMBDA нет в release notes 25.2, 25.8, 26.2 и в уже вышедшей 26.8 (26.8.0 — конец августа 2026). LAMBDA вместе с MAP, REDUCE, SCAN, BYROW, BYCOL, ISOMITTED и ARRAYTOTEXT реализованы только в ветке разработки (версия 27.2.0 alpha0+, ещё не выпущена). По багу tdf#173669 эти функции пока неправильно экспортируются в XLSX. В 25.8 добавлены CHOOSECOLS, CHOOSEROWS, DROP, EXPAND, HSTACK, TAKE, TEXTAFTER, TEXTBEFORE, TEXTSPLIT, TOCOL, TOROW, VSTACK, WRAPCOLS, WRAPROWS. Полноценных динамических массивов (spill) как в Excel нет: tdf#127808 открыт. источник |
| 17 | Ключ профиля LibreOffice /org.openoffice.Office.Calc/Formula/Load/OOXMLRecalcMode (0 = всегда пересчитывать) включает пересчёт xlsx при загрузке. | подтверждено | В officecfg/.../Calc.xcs путь именно /org.openoffice.Office.Calc/Formula/Load/OOXMLRecalcMode. Значения: 0 — всегда пересчитывать, 1 — никогда (значение по умолчанию), 2 — спрашивать. Значит, для headless-пересчёта 0 надо выставлять явно. Для ODF есть аналогичный ключ ODFRecalcMode. источник |
| 18 | Timeweb Cloud AI Gateway: base_url https://api.timeweb.ai/v1, OpenAI-совместимый; API агента вида https://agent.timeweb.cloud/api/v1/cloud-ai/agents/{agent_id}/v1/chat/completions. | подтверждено | Документация AI Gateway: OpenAI SDK с base_url https://api.timeweb.ai/v1 (chat.completions). AI Gateway не даёт возможностей агентов: RAG, MCP, системных настроек. Документация OpenAI-совместимого API агентов: POST https://agent.timeweb.cloud/api/v1/cloud-ai/agents/{agent_id}/v1/chat/completions с Bearer-токеном. источник |
| 19 | Timeweb, цены за 1 млн токенов (вход/выход): GPT-6 Luna 13,5/67,5 ₽; Qwen 3.5 Flash 14/52 ₽; DeepSeek V4.1 Flash 40,5/162 ₽; timeweb/gpt-oss-120b 20/82 ₽; Claude Sonnet 5 405/2025 ₽. НДС не начисляется (реестр российского ПО). | подтверждено | Каталог моделей на странице timeweb.cloud/services/ai-gateway (цена за токен × 10^6) на 01.10.2026: openai/gpt-6-luna 13,5/67,5 ₽; dashscope/qwen3.5-flash 14/52 ₽; deepseek/deepseek-flash (DeepSeek V4.1 Flash) 40,5/162 ₽; timeweb/gpt-oss-120b 20/82 ₽; anthropic/claude-sonnet-5 405/2025 ₽. Калькулятор на сайте показывает GPT-6 Luna с округлением — 14/68 ₽. НДС: по п. 2.7 соглашения о сервисе ИИ-агентов (ред. 01.12.2025) НДС не облагается на основании пп. 26 п. 2 ст. 149 НК РФ; платформа в реестре российского ПО, запись № 15725 от 05.12.2022. Цены меняются, фиксировать их на дату заказа. источник |
| 20 | Timeweb, акция: до 12,5 млн бесплатных токенов новым пользователям с 01.07 по 31.12.2026, только на одного агента с одной моделью. | исправлено | Правила акции «Знакомство с AI-агентами» (приказ № 32 от 22.06.2026). Срок — с 01.07 по 31.12.2026 включительно. Бесплатный лимит токенов даётся на одного агента с одной моделью, сменить модель нельзя. Размер лимита свой для каждой модели и указан в панели; «до 12,5 млн» — это максимум с сайта. Участвовать могут не только новые пользователи, но и действующие клиенты платформы, если они раньше не покупали ИИ-агентов или у них нет активных предоплаченных агентов. Участие однократное, территория — Россия. После исчерпания лимита автоматически включается платная тарификация. Акция распространяется на сервис ИИ-агентов, а не на AI Gateway. источник |
| 21 | Yandex AI Studio: OpenAI-совместимый base_url https://llm.api.cloud.yandex.net/v1, логирование запросов отключается заголовком x-data-logging-enabled: false; цены Qwen3.6 35B 200/300 ₽, gpt-oss-20b 100/100 ₽ за 1 млн (с НДС). | исправлено | В актуальной документации AI Studio (aistudio.yandex.ru/docs, quickstart) base_url — https://ai.api.cloud.yandex.net/v1. Старый https://llm.api.cloud.yandex.net/v1 на 01.10.2026 тоже отвечает как OpenAI-совместимый (проверено запросом без ключа), но в документации его больше нет; закладываться лучше на ai.api. Заголовок x-data-logging-enabled: false подтверждён; в SDK этому соответствует enable_server_data_logging=False. Цены синхронного режима подтверждены: Qwen3.6 35B — 0,2/0,3 ₽ за 1000 токенов (200/300 ₽ за 1 млн), gpt-oss-20b — 0,1/0,1 ₽ за 1000 (100/100 ₽ за 1 млн). Рублёвые цены включают НДС, долларовые — без НДС; соотношение между ними соответствует ставке 22 %. источник |
| 22 | GigaChat: Freemium для физлиц только для личного некоммерческого использования; с 01.09.2026 новые клиенты-юрлица покупают GigaChat через cloud.ru. | подтверждено | Страница «Коммерческое использование»: бесплатный Freemium-доступ — исключительно для личного некоммерческого использования, коммерческое — только после покупки платного пакета. Страницы тарифов (обновлено 29.09.2026): с 01.09.2026 новые клиенты и клиенты, ранее не покупавшие пакеты, оплачивают работу с моделями на cloud.ru. Это касается и юрлиц, и физлиц; покупать пакеты на developers.sber.ru могут только действующие клиенты. Freemium для физлиц — 365 млн токенов на 12 месяцев (Lite 250 млн, Pro 40 млн, Max 25 млн, Ultra 50 млн), генерация в один поток. источник |
| 23 | Базовая ставка НДС в РФ с 01.01.2026 — 22 % (Федеральный закон № 425-ФЗ). | подтверждено | Федеральный закон от 28.11.2025 № 425-ФЗ повысил основную ставку НДС с 20 до 22 %. Новая ставка применяется к отгрузкам, работам и услугам с 01.01.2026. источник |
| 24 | 376-ФЗ: с 01.03.2026 правила для подписок (отказ от подписки в любой форме, запрет списаний после отказа, удаление карты). | исправлено | Федеральный закон от 15.10.2025 № 376-ФЗ вступил в силу 01.03.2026 и добавил п. 4.2 в ст. 16.1 Закона о защите прав потребителей. При оплате услуг по абонентскому договору через сайт, информационную систему или программу исполнителю запрещено использовать для периодических платежей реквизиты счёта или данные платёжного средства, от использования которых потребитель отказался. Исполнитель обязан обеспечить приём такого отказа, в том числе в электронной форме. Закон регулирует отказ от использования ранее предоставленных платёжных данных (по сути — «отвязку карты») и запрет списаний с них. Об «отказе от подписки в любой форме» и об отдельном праве «удалить карту» в тексте не говорится. источник |
| 25 | 23-ФЗ: с 01.07.2025 ч. 5 ст. 18 152-ФЗ запрещает при сборе ПДн граждан РФ запись/хранение/изменение/извлечение с использованием иностранных баз данных; штраф по ст. 13.11 КоАП до 6 млн ₽ (повторно до 18 млн). | подтверждено | Федеральный закон от 28.02.2025 № 23-ФЗ ввёл с 01.07.2025 новую редакцию ч. 5 ст. 18 152-ФЗ. При сборе ПДн, в том числе через интернет, запись, систематизация, накопление, хранение, уточнение и извлечение ПДн граждан РФ с использованием баз данных за пределами РФ не допускаются; исключения — пп. 2, 3, 4, 8 ч. 1 ст. 6. КоАП ст. 13.11: ч. 8 — для юрлиц от 1 до 6 млн ₽, ч. 9 (повторно) — от 6 до 18 млн ₽. Для должностных лиц — 100–200 тыс. ₽ и 500–800 тыс. ₽ соответственно. источник |
| 26 | С 01.09.2025 (156-ФЗ) согласие на обработку ПДн оформляется отдельным документом. | подтверждено | Федеральный закон от 24.06.2025 № 156-ФЗ (ст. 5 вступила в силу 01.09.2025) дополнил ч. 1 ст. 9 152-ФЗ: согласие должно быть оформлено отдельно от иной информации и документов, которые субъект подтверждает или подписывает. Точнее говорить «отдельно от других документов»: например, отдельный чекбокс или форма согласия, а не пункт пользовательского соглашения. Бумажного документа закон не требует. источник |
| 27 | Р7-Офис не исполняет VBA (макросы на JavaScript), а МойОфис с версии 26.1 имеет интерпретатор базового VBA (Application/Workbook/Worksheet/Range). | исправлено | Р7 — подтверждено: центр поддержки (обновлено 07.09.2026, версия 2026.1.2.1942) сообщает, что макросы только на JavaScript, а поддержка VBA и автоматическая конвертация невозможны; предлагается ручная переделка. МойОфис — уточнение по версии: интерпретация VBA появилась как бета в корпоративном релизе МойОфис 3.6 (27.11.2025, табличный редактор). Работает как автоматическая трансляция VBA в Lua, исходный VBA остаётся в файле. В версии 26.1 (05.05.2026) эту функцию получил «МойОфис для дома». Поддержка базового синтаксиса VBA и объектов Application, Workbook, Worksheet, Range подтверждена. Источник — пресс-релизы МойОфис (CNews); страница поддержки МойОфис о VBA сейчас отдаёт 404. источник |
| 28 | Microsoft блокирует макросы VBA в файлах из интернета (Mark of the Web) по умолчанию; официальный способ для доверенного файла — Свойства → «Разблокировать». | подтверждено | Microsoft Learn (обновлено 17.07.2026): макросы VBA в файлах с Mark of the Web блокируются по умолчанию в Office для Windows — Access, Excel, PowerPoint, Project, Publisher, Visio, Word (Current Channel — с версии 2206, июль 2022). Для отдельного файла: флажок «Разблокировать» на вкладке «Общие» свойств файла или PowerShell Unblock-File. Другие официальные пути — доверенные расположения (Trusted Locations) и макросы, подписанные доверенным издателем. MOTW ставится только на NTFS. источник |
| 29 | SpreadsheetBench: 912 задач, данные CC BY-SA 4.0; на лидерборде есть результаты вида Shortcut.ai 59,25 %, Copilot Agent Mode 57,2 % (самоотчёт). | подтверждено | README: 912 задач (2729 тест-кейсов), проект под CC BY-SA 4.0. Лидерборд V1 Full (data/leaderboard-v1-full.json): Shortcut.ai — 59,25 % (16.10.2025), помечен verified, то есть проверен организаторами, а не самоотчёт. Copilot in Excel (Agent Mode) — 57,2 % (29.09.2025), unverified: результат заявлен Microsoft. Эти цифры устарели: лидер V1 Full — Qingqiu Agent (Kingsoft), 83,11 %; есть подмножество Verified (400 задач) с результатами до 99,25 % и SpreadsheetBench 2 (лидер arito — 54,51 %). источник |
| 30 | IPEX-LLM (Intel) архивирован в январе 2026; в Ollama с Vulkan на встроенной графике Intel есть открытые баги с мусором на выходе. | подтверждено | intel/ipex-llm: archived=true, последний коммит 28.01.2026 «archive notice». README: проект архивирован, Intel его не поддерживает и не принимает патчи, есть известные проблемы безопасности. В Ollama открыты issues: #13964 (iGPU Arrow Lake, мусор на Vulkan на моделях от 3B, с 29.01.2026), #15248 (iGPU Arc Arrow Lake-P, искажённый вывод gemma4:26b, регрессия, с 03.04.2026), #13108 («vulkan lobotomizes models»). Похожий #13086 (iGPU Intel, бессмысленный текст) закрыт. источник |
Источники по направлениям
Открытые ИИ-помощники для Excel и Word — 60
- https://github.com/haris-musa/excel-mcp-server
- https://raw.githubusercontent.com/haris-musa/excel-mcp-server/main/TOOLS.md
- https://raw.githubusercontent.com/haris-musa/excel-mcp-server/main/CHANGELOG.md
- https://raw.githubusercontent.com/haris-musa/excel-mcp-server/main/src/excel_mcp/formulas.py
- https://github.com/negokaz/excel-mcp-server
- https://github.com/GongRzhe/Office-Word-MCP-Server
- https://github.com/dream-num/univer
- https://github.com/dream-num/univer-mcp
- https://github.com/dream-num/univer-sdk-skills
- https://docs.univer.ai/ai
- https://github.com/quadratichq
- https://github.com/sinaptik-ai/pandas-ai
- https://github.com/tablegpt/tablegpt-agent
- https://tablegpt.github.io/tablegpt-agent/explanation/file-reading/
- https://huggingface.co/tablegpt/TableGPT2-7B
- https://github.com/BraveGroup/SheetCopilot
- https://github.com/microsoft/markitdown
- https://raw.githubusercontent.com/microsoft/markitdown/main/packages/markitdown/src/markitdown/converters/_xlsx_converter.py
- https://github.com/docling-project/docling
- https://docling-project.github.io/docling/usage/supported_formats/
- https://github.com/anthropics/skills/tree/main/skills/xlsx
- https://raw.githubusercontent.com/anthropics/skills/main/skills/xlsx/LICENSE.txt
- https://raw.githubusercontent.com/anthropics/skills/main/skills/xlsx/SKILL.md
- https://raw.githubusercontent.com/anthropics/skills/main/skills/docx/SKILL.md
- https://github.com/OfficeDev/Office-Add-in-samples
- https://github.com/genspark-ai/genoffice
- https://github.com/genspark-ai/genoffice/blob/main/packages/cli/README.md
- https://github.com/tmustier/pi-for-excel
- https://pi-for-excel.vercel.app/architecture
- https://github.com/ALbum3270/excel-assistant
- https://github.com/hewliyang/office-agents
- https://github.com/STAR-LAB-AI-Agent/excel-formula-generation
- https://github.com/weijunext/smart-excel-ai
- https://github.com/getcellm/cellm
- https://github.com/CrispStrobe/ExcelLLMAddin
- https://github.com/Khushiyant/sheetwise
- https://github.com/kingkillery/Spreadsheet_LLM_Encoder
- https://github.com/Kuingsmile/word-GPT-Plus
- https://github.com/huggingface/aisheets
- https://github.com/balisujohn/localwriter
- https://github.com/KeithCu/writeragent
- https://github.com/RUCKBReasoning/SpreadsheetBench
- https://github.com/ironcalc/IronCalc
- https://docs.ironcalc.com/
- https://github.com/SecurityRonin/docx-mcp
- https://github.com/elapouya/python-docx-template
- https://docxtpl.readthedocs.io/en/latest/
- https://github.com/dolanmiu/docx
- https://github.com/jmcnamara/XlsxWriter
- https://xlsxwriter.readthedocs.io/working_with_macros.html
- https://github.com/decalage2/oletools/wiki/olevba
- https://github.com/handsontable/hyperformula
- https://raw.githubusercontent.com/handsontable/hyperformula/master/src/i18n/languages/ruRU.ts
- https://github.com/vinci1it2000/formulas
- https://github.com/dgorissen/pycel
- https://github.com/Beakerboy/vbaProject-Compiler
- https://github.com/ONLYOFFICE/onlyoffice.github.io
- https://www.onlyoffice.com/blog/2026/07/onlyoffice-made-friends-with-ai
- https://github.com/reganmcgregor/appscript-llm
- https://openpyxl.readthedocs.io/en/stable/tutorial.html
Научные работы и бенчмарки — 76
- https://arxiv.org/abs/2407.09025
- https://arxiv.org/html/2407.09025v2
- https://github.com/Khushiyant/sheetwise
- https://arxiv.org/abs/2305.19308
- https://github.com/BraveGroup/SheetCopilot
- https://arxiv.org/abs/2403.03636
- https://arxiv.org/html/2403.03636
- https://github.com/cybisolated/SheetAgent
- https://arxiv.org/abs/2301.13779
- https://arxiv.org/html/2301.13779v2
- https://arxiv.org/abs/2310.14495
- https://arxiv.org/html/2310.14495
- https://github.com/microsoft/InstructExcel
- https://arxiv.org/abs/2406.14991
- https://arxiv.org/html/2406.14991
- https://github.com/RUCKBReasoning/SpreadsheetBench
- https://spreadsheetbench.github.io/
- https://benchmarklist.com/benchmarks/spreadsheetbench_v1_full/
- https://benchmarklist.com/benchmarks/spreadsheetbench_v1_verified/
- https://arxiv.org/abs/2606.29955
- https://arxiv.org/html/2606.29955v1
- https://github.com/RUCKBReasoning/SpreadsheetBench-2
- https://huggingface.co/datasets/KAKA22/SpreadsheetBench-v2
- https://arxiv.org/abs/2402.14853
- https://arxiv.org/html/2402.14853
- https://github.com/timetub/NL2Formula
- https://arxiv.org/abs/2404.12608
- https://arxiv.org/html/2404.12608
- https://github.com/microsoft/Auto-Formula
- https://arxiv.org/abs/2208.11640
- https://arxiv.org/pdf/2208.11640
- https://arxiv.org/pdf/2207.11765
- https://arxiv.org/abs/2508.11715
- https://arxiv.org/html/2508.11715v1
- https://github.com/microsoft/prose-benchmarks
- https://arxiv.org/abs/2403.19318
- https://github.com/RUCKBReasoning/TableLLM
- https://huggingface.co/RUCKBReasoning/TableLLM-8B
- https://arxiv.org/abs/2411.02059
- https://github.com/tablegpt/tablegpt-agent
- https://huggingface.co/tablegpt/TableGPT2-7B
- https://arxiv.org/abs/2510.19247
- https://arxiv.org/html/2510.19247
- https://github.com/microsoft/SheetBrain
- https://arxiv.org/abs/2604.12282
- https://arxiv.org/html/2604.12282
- https://github.com/renhouxing/SpreadsheetAgent
- https://arxiv.org/abs/2505.23667
- https://arxiv.org/abs/2607.19354
- https://arxiv.org/html/2607.19354
- https://github.com/xTronzZ/FormulaSPIN
- https://arxiv.org/html/2605.22642
- https://arxiv.org/abs/2608.07873
- https://arxiv.org/html/2608.07873
- https://arxiv.org/abs/2604.15597
- https://arxiv.org/html/2604.15597
- https://github.com/microsoft/DELEGATE52
- https://arxiv.org/abs/2607.19865
- https://arxiv.org/html/2607.19865
- https://github.com/icip-cas/DocOps
- https://arxiv.org/html/2606.01936
- https://arxiv.org/abs/2604.16736
- https://arxiv.org/abs/2608.25880
- https://github.com/dealfluence/adeu
- https://www.harvey.ai/blog/building-an-agent-for-complex-document-drafting-and-editing
- https://arxiv.org/abs/2605.30907
- https://arxiv.org/html/2605.22664
- https://github.com/namkoong-lab/MBABench
- https://arxiv.org/abs/2506.17330
- https://arxiv.org/abs/2106.15339
- https://arxiv.org/abs/2508.11121
- https://www.vldb.org/pvldb/vol16/p2632-singh.pdf
- https://github.com/vinci1it2000/formulas
- https://openpyxl.readthedocs.io/en/stable/tutorial.html
- https://techcommunity.microsoft.com/blog/excelblog/building-agent-mode-in-excel/4457320
- https://shortcut.ai/blog/posts/spreadsheetbench
Движок xlsx — 76
- https://github.com/jmcnamara/XlsxWriter
- https://xlsxwriter.readthedocs.io/working_with_formulas.html
- https://github.com/jmcnamara/rust_xlsxwriter
- https://docs.rs/rust_xlsxwriter/latest/rust_xlsxwriter/
- https://foss.heptapod.net/openpyxl/openpyxl
- https://pypi.org/pypi/openpyxl/json
- https://openpyxl.readthedocs.io/en/stable/tutorial.html
- https://openpyxl.readthedocs.io/en/stable/index.html
- https://openpyxl.readthedocs.io/en/stable/pivot.html
- https://openpyxl.readthedocs.io/en/stable/changes.html
- https://openpyxl.readthedocs.io/en/stable/formula.html
- https://github.com/wareflowx/excel-toolkit/issues/14
- https://github.com/robocorp/rpaframework/issues/262
- https://github.com/Growth-Management/ice-report/pull/136
- https://gist.github.com/telotortium/844386f762c4b3bab49999ba99f72f5b
- https://github.com/catgrandi/xlsxedit
- https://github.com/exceljs/exceljs
- https://raw.githubusercontent.com/exceljs/exceljs/master/README.md
- https://github.com/exceljs/exceljs/issues/1734
- https://github.com/exceljs/exceljs/issues/2607
- https://github.com/SheetJS/sheetjs
- https://docs.sheetjs.com/docs/miscellany/license
- https://docs.sheetjs.com/docs/api/write-options/
- https://github.com/ClosedXML/ClosedXML
- https://docs.closedxml.io/en/latest/
- https://github.com/EPPlusSoftware/EPPlus
- https://github.com/nissl-lab/npoi
- https://github.com/apache/poi
- https://poi.apache.org/components/spreadsheet/limitations.html
- https://github.com/dotnet/Open-XML-SDK
- https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.cellformula
- https://github.com/MathNya/umya-spreadsheet
- https://github.com/tafia/calamine
- https://pypi.org/pypi/python-calamine/json
- https://github.com/ironcalc/IronCalc
- https://pypi.org/pypi/ironcalc/json
- https://github.com/psu3d0/formualizer
- https://pypi.org/pypi/formualizer/json
- https://www.formualizer.dev/
- https://github.com/openooxml/betteroffice
- https://pypi.org/pypi/betteroffice-xlsx/json
- https://github.com/yeroo/docxy
- https://github.com/yeroo/docxy/issues/598
- https://github.com/handsontable/hyperformula
- https://raw.githubusercontent.com/handsontable/hyperformula/master/LICENSE.txt
- https://hyperformula.handsontable.com/guide/localizing-functions.html
- https://hyperformula.handsontable.com/api/interfaces/configparams.html
- https://github.com/vinci1it2000/formulas
- https://en.wikipedia.org/wiki/European_Union_Public_Licence
- https://github.com/dgorissen/pycel
- https://github.com/bradbase/xlcalculator
- https://github.com/formulajs/formulajs
- https://github.com/dtjohnson/xlsx-populate
- https://github.com/office-kit/xlsx
- https://github.com/unoconv/unoserver
- https://github.com/gotenberg/gotenberg
- https://help.libreoffice.org/latest/en-US/text/scalc/05/02140000.html
- https://github.com/Extracowboy/docker-libreoffice/blob/main/registrymodifications.xcu
- https://admx.help/?Category=LibreOffice-from-Collabora&Policy=Collabora.Policies.LibreOffice::RecalcMode
- https://www.mail-archive.com/libreoffice-bugs@lists.freedesktop.org/msg1031693.html
- https://www.howtogeek.com/libreoffice-25-8-release/
- https://9to5linux.com/libreoffice-24-8-open-source-office-suite-officially-released-heres-whats-new
- https://www.omgubuntu.co.uk/2026/02/libreoffice-26-2-new-features
- https://www.onlyoffice.com/blog/2026/03/excel-dynamic-arrays
- https://www.heise.de/en/news/OnlyOffice-Docs-9-3-brings-advanced-PDF-signatures-and-Dynamic-Arrays-11196070.html
- https://support.microsoft.com/en-us/office/what-s-new-in-excel-2024-for-windows-and-mac-faee26b6-ad74-40a8-9304-aa6db716553f
- https://raw.githubusercontent.com/ONLYOFFICE/web-apps/master/apps/spreadsheeteditor/main/resources/formula-lang/ru.json
- https://github.com/maxim-uvarov/ExcelFunctionsTranslationsRuEng
- https://github.com/martinry/translate_excel_functions
- https://www.perfectxl.com/academy/functions/translations/english-russian/
- https://excel2.ru/articles/massivy-konstant-v-ms-excel
- https://support.microsoft.com/ru-ru/excel/use-array-constants-in-array-formulas
- https://github.com/anthropics/skills/tree/main/skills/xlsx
- https://github.com/Beakerboy/vbaProject-Compiler
- https://github.com/dream-num/univer
- https://github.com/ruilisi/fortune-sheet
Движок Word — 48
- https://github.com/python-openxml/python-docx
- https://raw.githubusercontent.com/python-openxml/python-docx/master/HISTORY.rst
- https://github.com/elapouya/python-docx-template
- https://docxtpl.readthedocs.io/en/latest/
- https://github.com/4teamwork/docxcompose
- https://github.com/dolanmiu/docx
- https://docx.js.org/api/modules/index.html
- https://github.com/dolanmiu/docx/issues/3504
- https://github.com/dolanmiu/docx/pull/3540
- https://github.com/dolanmiu/docx/pull/3543
- https://github.com/guigrpa/docx-templates
- https://github.com/alonrbar/easy-template-x
- https://github.com/open-xml-templating/docxtemplater
- https://raw.githubusercontent.com/open-xml-templating/docxtemplater/master/LICENSE.md
- https://docxtemplater.com/pricing/
- https://github.com/carboneio/carbone
- https://github.com/plutext/docx4j
- https://www.docx4java.org/forums/docx-java-f6/traversing-docx-file-t1700.html
- https://javadoc.io/static/org.docx4j/docx4j/3.3.2/org/docx4j/model/datastorage/migration/VariablePrepare.html
- https://github.com/dotnet/Open-XML-SDK
- https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.office2010.word.checkedstate?view=openxml-2.8.1
- https://github.com/OpenXmlDev/Open-Xml-PowerTools
- https://raw.githubusercontent.com/OpenXmlDev/Open-Xml-PowerTools/vNext/OpenXmlPowerTools/OpenXmlRegex.cs
- https://www.ericwhite.com/blog/search-and-replace-content-in-docx-pptx-using-regular-expressions/
- https://github.com/sergey-tihon/Clippit
- https://github.com/JSv4/Docxodus
- https://github.com/JSv4/Python-Redlines
- https://github.com/dealfluence/adeu
- https://github.com/gh-aswanth/docx_walking
- https://github.com/houfu/redlines
- https://github.com/ivanbicalho/python-docx-replace
- https://github.com/Bouke/docx-mailmerge
- https://github.com/anthropics/skills/tree/main/skills/docx
- https://raw.githubusercontent.com/anthropics/skills/main/skills/docx/SKILL.md
- https://raw.githubusercontent.com/anthropics/skills/main/skills/docx/LICENSE.txt
- https://github.com/VolodymyrBaydalka/docxjs
- https://github.com/mwilliamson/mammoth.js
- https://pandoc.org/MANUAL.html
- https://github.com/unoconv/unoserver
- https://wiki.documentfoundation.org/ReleaseNotes/7.6
- https://github.com/superdoc-dev/superdoc
- https://github.com/ONLYOFFICE/DocumentServer
- https://linuxiac.com/onlyoffice-docs-9-4-removes-community-connection-limit/
- https://helpcenter.onlyoffice.com/docs/faq/docs-community.aspx
- https://github.com/CollaboraOnline/online
- https://forum.collaboraonline.com/t/code-docker-limitations/810
- https://en.wikipedia.org/wiki/Collabora_Online
- https://learn.microsoft.com/en-us/answers/questions/5158689/word-fillable-forms-plain-text-control
Модели и железо — 52
- https://dev.to/starrzan/running-local-llms-on-intel-arc-igpu-a-complete-guide-for-ubuntu-on-mini-pc-hardware-40bc
- https://github.com/openvinotoolkit/openvino/issues/36385
- https://www.intel.com/content/www/us/en/developer/articles/technical/accelerate-qwen3-large-language-models.html
- https://www.intel.com/content/www/us/en/products/sku/241750/intel-core-ultra-9-processor-285h-24m-cache-up-to-5-40-ghz/specifications.html
- https://github.com/ggml-org/llama.cpp/discussions/23313
- https://github.com/ggml-org/llama.cpp/discussions/12570
- https://github.com/ggml-org/llama.cpp/discussions/10879
- https://github.com/ggml-org/llama.cpp/issues/20776
- https://github.com/ggml-org/llama.cpp/issues/13738
- https://github.com/ggml-org/llama.cpp/issues/19420
- https://github.com/ggml-org/llama.cpp/discussions/21112
- https://grigio.org/how-i-got-2-2x-more-tokens-per-second-from-llama-cpp-on-intel-arc/
- https://skatterbencher.com/2025/05/15/improving-llama-2-performance-by-overclocking-arrow-lake-intel-graphics/
- https://carteakey.dev/blog/local-inference/optimizing-gpt-oss-120b-local-inference/
- https://github.com/ggml-org/llama.cpp/blob/master/benches/dgx-spark/dgx-spark.md
- https://github.com/ggml-org/llama.cpp/discussions/16578
- https://github.com/ggml-org/llama.cpp/blob/master/grammars/README.md
- https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md
- https://github.com/ggml-org/llama.cpp/blob/master/docs/speculative.md
- https://github.com/ggml-org/llama.cpp/discussions/15396
- https://docs.ollama.com/capabilities/structured-outputs
- https://docs.vllm.ai/en/latest/features/structured_outputs.html
- https://docs.openvino.ai/2025/model-server/ovms_docs_llm_reference.html
- https://github.com/openvinotoolkit/model_server
- https://github.com/openvinotoolkit/openvino.genai
- https://api.github.com/repos/intel/ipex-llm
- https://github.com/ollama/ollama/issues/13086
- https://github.com/ollama/ollama/issues/14854
- https://github.com/mostlygeek/llama-swap
- https://huggingface.co/Qwen/Qwen3.6-35B-A3B
- https://huggingface.co/Qwen/Qwen3.5-35B-A3B
- https://huggingface.co/Qwen/Qwen3.5-4B
- https://huggingface.co/Qwen/Qwen3.8-27B
- https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B
- https://huggingface.co/mudler/Ornith-1.5-35B-A3B-APEX-MTP-GGUF
- https://huggingface.co/google/gemma-4-31B-it
- https://huggingface.co/zai-org/GLM-4.7-Flash
- https://huggingface.co/t-tech/T-pro-it-2.1
- https://habr.com/ru/articles/1036448/
- https://github.com/RUCKBReasoning/SpreadsheetBench
- https://spreadsheetbench.github.io/
- https://benchmarklist.com/benchmarks/spreadsheetbench_v1_verified/
- https://arxiv.org/abs/2607.17044
- https://arxiv.org/html/2605.22664v1
- https://arxiv.org/abs/2407.09025
- https://arxiv.org/abs/2508.11715
- https://github.com/tablegpt/tablegpt-agent
- https://github.com/RUCKBReasoning/TableLLM
- https://github.com/alucryd/arc-llama
- https://mera.a-ai.ru/en/code
- https://timeweb.cloud/services/ai-agents
- https://timeweb.cloud/docs/ai-agents
Timeweb и облака РФ — 47
- https://timeweb.cloud/services/ai-agents
- https://timeweb.cloud/services/ai-gateway
- https://timeweb.cloud/docs/ai-agents/llms.txt
- https://timeweb.cloud/docs/ai-agents/llms-full.txt
- https://timeweb.cloud/docs/ai-agents/api-usage/ai-gateway
- https://timeweb.cloud/docs/ai-agents/api-usage/openai-compatible-api
- https://timeweb.cloud/docs/ai-agents/api-usage/native-api
- https://timeweb.cloud/docs/ai-agents/api-usage/files-api
- https://timeweb.cloud/docs/ai-agents/pricing/models
- https://timeweb.cloud/docs/ai-agents/pricing/billing-models
- https://timeweb.cloud/docs/ai-agents/pricing/knowledge-base-billing
- https://timeweb.cloud/docs/ai-agents/manage-agents/sandbox
- https://timeweb.cloud/docs/ai-agents/manage-agents/attachments-in-chats
- https://timeweb.cloud/docs/ai-agents/manage-agents/chat-history
- https://timeweb.cloud/docs/ai-agents/mcp-server
- https://timeweb.cloud/docs/152-fz/llms-full.txt
- https://s3.twcstorage.ru/tw-cloud-static/legal-info/Правила_акции_Знакомство_с_AI_агентами_для_сайта_22_06_2026.pdf
- https://s3.twcstorage.ru/tw-cloud-static/legal-info/Соглашение_ИИ_агенты_для_сайта_timeweb_cloud_редакция_01_12_2025.pdf
- https://s3.twcstorage.ru/tw-cloud-static/legal-info/ТВК_Согласие_на_трансграничную_передачу_ИИ_агенты_01_12_2025.pdf
- https://aistudio.yandex.ru/docs/ru/ai-studio/pricing
- https://aistudio.yandex.ru/docs/en/ai-studio/operations/disable-logging
- https://aistudio.yandex.ru/docs/en/ai-studio/concepts/limits
- https://aistudio.yandex.ru/docs/en/ai-studio/quickstart/
- https://yandex.cloud/ru/blog/yandex-ai-studio-boost
- https://developers.sber.ru/docs/ru/gigachat/tariffs/legal-tariffs
- https://developers.sber.ru/docs/ru/gigachat/tariffs/individual-tariffs
- https://developers.sber.ru/docs/ru/gigachat/tariffs/commercial
- https://vc.ru/ai/3053056-gigachat-besplatnyy-limity-tokenov-ot-sbera
- https://cloud.ru/documents/tariffs/evolution/foundation-models
- https://cloud.ru/docs/foundation-models/ug/topics/overview__available__models
- https://cloud.ru/blog/cloud-ru-dobavil-vneshniye-yazykovyye-modeli
- https://mws.ru/docs/cloud-platform/gpt/general/pricing.html
- https://huggingface.co/t-tech/T-pro-it-2.1
- https://huggingface.co/t-tech/T-lite-it-2.1
- https://www.lidings.com/ru/media/legalupdates/localization_pd_update/
- https://gramotaib.ru/blog/transgranichnaya-peredacha-personalnyh-dannyh
- https://www.garant.ru/article/1862510/
- https://grigio.org/how-i-got-2-2x-more-tokens-per-second-from-llama-cpp-on-intel-arc/
- https://github.com/BerriAI/litellm
- https://github.com/microsoft/presidio
- https://github.com/natasha/natasha
- https://github.com/protectai/llm-guard
- https://github.com/ai-forever/gigachat
- https://github.com/yandex-cloud/yandex-cloud-ml-sdk
- https://github.com/lm-sys/RouteLLM
- https://github.com/Miwist/timeweb-cloud-ai
- https://github.com/cloud-ru/evo-aifactory-skills
Рынок и интерфейсы — 74
- https://gptexcel.uk/
- https://gptexcel.app/en
- https://www.capterra.com/p/10019511/Formula-Bot/
- https://www.itechguides.com/products/formula-bot-now-better-analyst/
- https://ajelix.com/pricing/
- https://www.g2.com/products/ajelix/reviews
- https://futuretools.io/tools/excelmatic
- https://shortcut.ai/blog/posts/shortcut-ai-pricing
- https://gptforwork.com/blog/shortcut-ai-alternatives
- https://shortcut.ai/changelog
- https://coefficient.io/julius-ai-pricing
- https://www.toolsforhumans.ai/ai-tools/rows-ai
- https://tooliverse.ai/tools/quadratic
- https://julius.ai/articles/numerous-ai-pricing
- https://www.trustpilot.com/review/numerous.ai
- https://www.saasworthy.com/product/sheetai-app/pricing
- https://claude.com/docs/office-agents/excel
- https://claude.com/docs/office-agents/word
- https://agentscamp.com/guides/analytics/claude-for-excel-guide
- https://pasqualepillitteri.it/en/news/1401/microsoft-copilot-agent-mode-word-excel-powerpoint-april-2026
- https://www.gravoc.com/2026/04/23/how-to-use-agent-mode-in-excel-a-step-by-step-guide/
- https://techcommunity.microsoft.com/blog/excelblog/explain-formulas-with-copilot%E2%80%94now-on-the-grid/4424028
- https://www.howtogeek.com/microsoft-excel-copilot-change-history-skill/
- https://workspaceupdates.googleblog.com/2026/07/fill-with-gemini-in-sheets-now-available-in-11-additional-languages.html
- https://gadgetbond.com/gemini-google-sheets-complex-spreadsheets-ai-upgrade-2026/
- https://www.kommersant.ru/doc/6933927
- https://www.cnews.ru/news/top/2024-05-17_microsoft_udarila_ispodtishka
- https://yandex.ru/support/yandex-360/customers/documents/sheets/ru/alicepro
- https://360.yandex.ru/business/alicepro/
- https://www.cnews.ru/news/line/2026-06-18_mojofis_usilivaet_tablitsy
- https://www.cnews.ru/news/line/2026-05-05_novyj_reliz_mojofis_dlya
- https://support.r7-office.ru/desktop_editors/faq-desktop/budet-li-vozmozhna-konvertacija-makrosov-v-vba/
- https://r7-office.ru/
- https://developers.sber.ru/help/gigachat-api/ai-for-working-with-tables
- https://www.bitrix24.ru/journal/neyroset-dlya-excel/
- https://autobit24.ru/blog/avtomaticheskaya-generaciya-dokumentov-v-bitrix24/
- https://dtf.ru/reviews/4839910-neyroseti-dlya-excel-25-luchshikh-ii-servisov
- https://vc.ru/aihub/2843144-neyroset-dlya-excel-luchshie-instrumenty-i-sovety
- https://habr.com/ru/companies/study_ai/articles/1040024/
- https://mashagpt.ru/blog/neyroset-dlya-excel
- https://habr.com/ru/articles/709254/
- https://yookassa.ru/regulyarnye-platezhi/
- https://worktechjournal.ru/yukassa-robokassa-ili-cloudpayments-kak-vybrat-platezhnuyu-sistemu-dlya-saas-v-rossii/
- https://www.garant.ru/news/1884461/
- https://habr.com/ru/articles/1005766/
- https://www.rbc.ru/economics/01/01/2026/694e6db39a79474d9340011e
- https://www.glavbukh.ru/art/392097-stavka-nds
- https://timeweb.cloud/services/ai-gateway
- https://www.glavbukh.ru/art/391940-excel-dlya-buhgalterov-layfhaki
- https://www.cleverence.ru/articles/biznes/skladskoy-uchet-v-excel-prikhod-raskhod-i-ostatok-tovarov-na-sklade-primery-tablitsy/
- https://www.glavbukh.ru/izmeneniya_2022/art/388131
- https://lumpics.ru/how-to-estimate-in-excel/
- https://www.esphere.ru/blog/raschyot-rasxoda-topliva-po-putevomu-listu-i-poryadok-spisaniya/
- https://excel2.ru/articles/plan-faktnyi-analiz-v-ms-excel
- https://www.kontur-extern.ru/info/38189-kak_vesti_knigu_rasxodov_i_doxodov_pri_usn
- https://www.excelfin.ru/index.php/articles/formulas/140-excel-sumspell
- https://github.com/dream-num/univer
- https://github.com/VolodymyrBaydalka/docxjs
- https://github.com/tmustier/pi-for-excel
- https://github.com/cmarathe1/MS-Excel-AI-plugin
- https://github.com/kamenlevi/excel-ai-assistant
- https://github.com/exceljs/exceljs
- https://github.com/jspreadsheet/ce
- https://github.com/ruilisi/fortune-sheet
- https://github.com/na-ka-na/ExcelCompare
- https://github.com/xltrail/git-xl
- https://www.xltrail.com/
- https://github.com/open-xml-templating/docxtemplater
- https://github.com/elapouya/python-docx-template
- https://github.com/iposho/holidays-calendar-ru
- https://www.isdayoff.ru/
- https://openpyxl.readthedocs.io/en/3.1/changes.html
- https://www.quadratichq.com/blog/can-chatgpt-create-spreadsheets-why-mcp-changes-everything
- https://markdownconverters.com/guides/upload-xlsx-to-chatgpt