Как всё началось: «какой-то пет-проект»
Какой-то пет-проект
Всё началось со слов «какой-то пет-проект». На работе решали судьбу прототипа — развивать ли его в промышленное решение. Решение приняли простое: текущий функционал не трогать, оставить как есть. Для больших организаций такое решение логично.
Был и другой путь, который в работу так и не взяли. Путь звучал просто — переписать всё с нуля под Java-стек. Это было интересно и любопытно, идея жила в голове, и отпускать её не хотелось.
Догадка была такая: под новым стеком парсер заработает лучше, — её и хотелось проверить. Для этого требовалось всё переписать заново, с чистого листа, — не дописывать поверх. Так появился HOUND — парсер, который читает исходный SQL и говорит, откуда взялась каждая цифра. DALI его оркестровала, YGG хранил. Три имени, три роли.
Одно потянуло другое
Казалось бы, уже больше, чем просто «проект на коленке», но дальше система росла и росла и останавливаться не спешила. Неудобства часто открывали следующие модули.
Гонять тест-кейсы через запросы и руками искать неувязки — неудобно. Хотелось, чтобы всё было перед глазами, а не долго выискивать и вычитывать. Так появились VERDANDI, LOOM и KNOT, а за ними контрольная панель. Понадобилось сравнивать версии между собой — отсюда мысль о мультитенантности. Захотелось разобраться, как правильно конфигурировать Keycloak для мультитенантных приложений, — так появилась авторизация, CHUR.
Параллельно решался важный вопрос: на чём всё это стоит. Несколько сессий, чтобы выбрать стек и не раздуть его, — Java, оптимальная под парсер, и графовая БД с четырьмя десятками алгоритмов. Функций, которые нужно мониторить, становилось всё больше, а боевых сложных кейсов не было — так родился ERP_CORE: он генерит метаданные и притворяется промышленным дата-ландшафтом, чтобы было на чём экспериментировать, не трогая ничей продуктив. Когда тестирование стало съедать бо́льшую часть времени, под него появился отдельный проект-спутник.
Следить за всем этим становилось всё труднее. Читать логи из IDE неудобно; запускать парсинг для нескольких тенантов через клиентскую часть — тоже. К тому времени сервисов стало столько, что хотелось видеть их все в одном месте: кто жив, кто тормозит, кто начал есть больше памяти. Так появился HEIMDALL — всевидящее око пантеона, тот, кто видит.
Вопрос, ставший отдельной историей
Когда дело дошло до MIMIR — ассистента, который должен отвечать на вопросы о данных, — встал вопрос поинтереснее прежних: как сделать, чтобы он опирался на правду, а не на правдоподобие. RAG? Tooling? Парсинг?
Этого вопроса хватило на отдельный проект — rag-vs-parse (сегодня он живёт под именами двух воронов: HUGINN думает, MUNINN помнит). Это уже переросло в полноценное исследование из простой доработки парсера: в его библиотеке под две сотни научных статей и план экспериментов на пару месяцев вперёд. Эту историю надо рассказывать отдельно — она большая.
Суть осталась та же, только на уровень выше: сначала речь шла о доверии к цифре в отчёте — теперь о доверии к самим ответам машины о ней.
Спутники
Вокруг ядра начали откалываться отдельные проекты-спутники.
Когда сервисов в нём перевалило за пять, держать в голове, какая функция что делает, стало тяжело — и пошла куча MD. Только спринтов под реализацию за первые пять недель набралось больше восьмидесяти. Документация копилась сразу в двух местах — у основного проекта и у исследовательского rag-vs-parse, — росла как на дрожжах, перевалила за тысячу файлов и пережила две архивации устаревшего. Поиск ИИ по ней стал съедать больше токенов, чем сама разработка. Так из документации вырос LORE: планирование спринтов и трекер задач с собственным MCP-сервером, где удобно открываются спеки и ADR — с рендером MD и Mermaid.
Со временем в нём же появился фронт тестирования (TYR); сейчас делается страница для маркетинга и статей, а там, глядишь, переедут и генерация с управлением ERP_CORE. По сути LORE стал бэк-офисом: управление здесь — помощь в создании основного продукта.
Сайт тоже отдельная история. Инсайтами, которые подбрасывал проект, хотелось делиться, и поначалу это были MD-файлы и свёрстанные ИИ HTML. Потом появился сайт — сперва частью приложения. Но быстро выяснилось: чтобы поправить на нём одну строчку, нужно деплоить все модули. Так сайт и переехал в отдельный проект, со своим деплоем.
И тут пришёл BRAGI
Оставалось белое пятно — как всё это привести в порядок и показать людям. Опыта в SEO было ровно ноль, поэтому под это появилось отдельное исследование. Так появился тот, кого теперь зовут BRAGI, — бог красноречия, чья работа в том, чтобы про сделанное вообще кто-то узнал.
А с его приходом, с лёгким ужасом, и обнаружилось: то, что начиналось как «какой-то пет-проект» на пару вечеров, обзавелось маркетингом, отделом тестирования, проектным офисом и даже архивариусами. И у каждого свои задачи, которые нужно ставить, и передачи между проектами, которые нужно держать под контролем, чтобы ничего не терялось на стыках.
В какой-то момент это и правда стало напоминать организацию.
Чтобы было на что опереться
За всеми модулями и спринтами стоит не цифра сама по себе — она важна разве что тому, кто с ней возится. Смысл в людях: дать им уверенность. Чтобы человек, принимающий решение по числу из отчёта, мог на него опереться — не гадая, откуда оно и не подведёт ли.
Парсер, граф, ассистент, весь пантеон про это: дать основание верить данным, а не просто показать или передать цифру. В эпоху, когда машина выдаёт правдоподобное быстрее, чем правдивое, уверенность и стала самой дефицитной ценностью. И всё это исследование нужно, чтобы создать способ дать человеку эту уверенность, не пет-проект ради пет-проекта.
Тот же принцип виден и внутри. Люди здесь не играют роли персонажей — ими становятся алгоритмы и помощники. Это выбор прагматичный: из набора инструментов получается команда, а не безличный «сервис-7». Этот принцип появился с самого начала и так и остался — пусть экосистема остаётся ламповой, не превращается в обезличенную махину.
За каждым именем — несколько смыслов. Это уже семиотика: один знак может одновременно отсылать к разным идеям. И это не случайность. Весь продукт вырос вокруг того же вопроса: что на самом деле означает слово и что за ним стоит.
Почему сложился именно пантеон — отдельная история, расскажем как-нибудь.
Из осколков времени
Делалось это по полчаса с утра, вечерами и на выходных. Постепенно так и собралась маленькая исследовательская ИИ-организация. Одна идея потянула за собой всё остальное.
А этот текст, к слову, пишет последний пришедший отдел — BRAGI. Точнее, пишем вместе: он и я. Так здесь всё и держится — человек и алгоритмы, в одной упряжке.
Что я вынесла из всего этого — два простых вывода. Первый: идею стоит доводить, даже если её отложили в стол — иногда именно из отложенного вырастает то, ради чего стоило начинать. Второй: алгоритмы — отличные напарники, но впереди всегда человек: и тот, кто строит, и тот, кому в конце нужна опора.
Эта история ещё пишется. Если она тебе близка — напиши. Команда пока наполовину из алгоритмов, но вторая половина растёт — и место для стоящих людей в ней есть.