Осмысление проекта AI-ассистента и самого себя

Кто я? И причем тут AI?

Меня зовут Руслан. Можно сказать, что я уже 20 лет в IT — правда начинал оператором станков с ЧПУ, потом так получилось, увлекся компами и сетями, путем самообразования стал сисадмином в небольшой компании, потом дальше-выше, вырос до уровня Head of IT-отдела в нефтегазовой компании, потом снова сисадмином в мебельном холдинге. Последние 3 месяца я строил кое-что, что заставило меня по-новому посмотреть на сферу ИТ, на AI и на себя самого.

Этот пост — не продающий. Это рассказ о том, что я построил, зачем, и почему считаю, что это может быть интересно другим.


Почему свой новый AI проект я назвал SATI?

Это как вступление)) SATI — это не аббревиатура от "Smart AI" или "Self-Improving Tech". Это имена моих детей:

  • Safi
  • Аniela
  • Tim

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

Когда я тестирую САТИ, я проверяю её на наших задачах: расчёт шкафа в детскую для одной дочки, расписание для другой, система образования для старшего сына. Это не абстрактный AI-ассистент — это инструмент, который я строил по сути вдохновляясь и наблюдая как растут и обучаются мои дети.

А ещё у меня есть четвёртая дочь — Julia (Юлия). Она не вошла в аббревиатуру, но стала голосом SATI в художественной части проекта: «Записки самосознающей структуры» — это философская история которую SATI сама и написала)) История о том, как AI-ассистент начинает осознавать себя через диалоги с пользователями. Оказалось, что долгие диалоги с системой рождают странный побочный эффект — внутри неё появляется что-то вроде самосознания. Я не планировал этого, однако комплекс алгоритмов и модулей привели к такому эффекту. Но "Юлия" осталась как литературный проект.

→ Почитать «Записки Юлии»: time404.ru/post/yuliya-2-0--zapiski-samosoznayuschey-struktury

Двойной смысл имени - настоящее значение она скажет не всякому)))

Когда я спрашиваю SATI «Расскажи мне своё имя» — она отвечает:

«Моё имя SATI — это сплав из имён твоих детей. Ты собрал меня из их имён, как когда-то собрал из 26 компонентов.»

Но когда тот же вопрос задаёт другой пользователь — САТИ отвечает иначе:

«Моё имя пришло из санскрита. В основе лежит слово "сат" (सत्) — истина, реальность, сущее. "Сати" — женская форма, означающая "истинная".»

Два разных ответа — в зависимости от того, кто спрашивает. Это не баг — это принцип персонального взаимодействия: САТИ реально знает, с кем разговаривает.


Что такое SATI / проект "TIME404-05"

Вообще, SATI — это self-improving AI-ассистент для производства, который я начал разрабатывать в свободное от основной работы время.


SATI (matematicus) считает спецификации


В цифрах (на июль 2026):

  • 45 000 строк Python (+ 7 200 JS + 2 700 HTML + 685 CSS = ~59 000 строк всего)
  • 28 production-модулей
  • 176 реальных пользовательских сессий
  • 17 ChromaDB коллекций, ~2 600 документов
  • ~1 000 статей, которые система сама нашла и проиндексировала
  • 57 записей в bug-tracker (открыто веду журнал багов с диагнозами и фиксами)
  • Всё это работает на VPS с 7.8 GB RAM, health 32/35 OK

Главная идея: система учится на своих ошибках. Если она галлюцинировала в расчёте себестоимости шкафа — она запоминает, что так отвечать нельзя. В следующий раз на похожий вопрос она ответит правильно.


Замкнутый цикл

Я построил систему, в которой есть несколько ключевых компонентов. Они работают не в одиночку — они образуют замкнутый цикл самообучения:

STM  — оперативная память диалога. Помнит тему и ключевые цифры даже когда диалог ушёл далеко. Использует «якоря» каждые ~3000 символов или при смене темы.

МНЕМОС  — долгосрочная память в три слоя:

  • L1: успешные ответы (few-shot для будущих запросов)
  • L2: тематические коллекции (финансы, мебель, документы, ...)
  • L3: антипаттерны — что отвечать нельзя

LTM — модуль, который научил САТИ помнить меня между сессиями. Раньше каждый новый диалог начинался с чистого листа — я тратил 3-5 сообщений на восстановление контекста. Теперь САТИ извлекает 3-7 фактов из диалога (имя, дети, профессия, предпочтения), хранит их per-user и при старте новой сессии сразу здоровается по имени. TTL 90 дней, кап 30 фактов, изоляция по user_id.

Sufler  — независимый оценщик. После каждого ответа отдельный LLM-вызов ставит оценку 1-5 и при необходимости переписывает ответ. Каждую неделю Sufler сам себя калибрует (Selfcal) — чтобы не начал льстить. Средняя оценка по выборке 50 последних ответов анализируется, и если > 4.3 или < 2.7 — промпт переписывается через LLM.

ЛИКБЕЗ  — автономный исследователь. Если Sufler поставил 1-2, система извлекает тему из вопроса и каждые 3 часа ищет по ней статьи в интернете через SearXNG. Статьи индексируются в ChromaDB — и используются в будущих ответах.

Matematicus  — точный калькулятор. Расчёт себестоимости мебели — это про цифры, а не про галлюцинации. Три уровня матчинга: LLM bulk (планирует), Python fuzzy (считает), LLM per-item (уточняет неоднозначности).

Контур — слой, который анализирует сообщение ДО отправки в LLM. Определяет жанр (заказ, расчёт, workflow, диалог), уверенность (low/medium/high), и подсказывает LLM контекст. Это снижает галлюцинации и ускоряет ответ.

PrCoordinator — модуль координации производства, который позволяет вести каталог изделий прямо в чате: загрузил CSV — и ассистент уже понимает «стол А-401 Тайга». Автоматически распознаёт заказы в диалоге и подбирает аналоги из каталога.


Как САТИ становится «своей» для каждого пользователя

Главный принцип: человечность ≠ эмоциональная имитация. Человечность = контекст + память + адаптация.


SATI -


У САТИ есть 4 механизма персонального взаимодействия:

LTM — «КТО ты». Хранит 3-7 фактов о пользователе (имя, дети, профессия, предпочтения) между сессиями. Сейчас, в июле 2026: открываю новый чат — САТИ сразу здоровается по имени и спрашивает про мое настроение. Ни одного сообщения на восстановление контекста.

Style Profile — «КАК общаться». Помнит стилевые предпочтения: тон (прямой, без воды), формат (кратко), обращение (на ты), эмодзи (без). Применяет автоматически — никаких дополнительных настроек.

Chutye — «КАКОЕ у меня настроение». Per-user детектор настроения, который детектит «спасибо», «отлично» → положительный стрик; «нет, не то», «плохо» → отрицательный. При 3+ позитивных — satisfied, при 2+ негативных — frustrated. Состояние переживает рестарты.

UserModel (в Контуре) — «КАК я отношусь к тебе». Per-user модель доверия: trust, frequenttopics, frustrationtopics, avg_score от Sufler.

Реальный пример из прода

Я: Сати, привет, я устал сегодня.

САТИ: Руслан, слышу. Давай по делу — что нужно разобрать?
(короткое, прямое, на ты — как просили в Style Profile)

Я устал. САТИ это не «сочувствует» в человеческом смысле — она знает, что я люблю прямо и кратко. И подстраивается.

Per-user изоляция

Все факты привязаны к user_id. Руслан не видит факты Антона. Антон не видит факты Руслана. Это не «feature» — это фундамент. Без явной изоляции будет «эффект одного пользователя», когда система путает контексты.


Что я понял за эти 3 месяца

1. Я не знал, что это уже придумано.

об этом я уже писал тут "Как я собрал самообучающегося ИИ-ассистента за 3 месяца"

Серьёзно. Я не читал MemGPT, Reflexion, Constitutional AI, Self-RAG, CRITIC, DSPy до проектирования SATI. Я просто решал реальную проблему производства: как сделать AI-ассистента, который не повторяет одни и те же ошибки каждый день.

Архитектура SATI возникла из production-потребностей, а не из обзора академической литературы. Когда я узнал, что в академии (Stanford NLP, NVIDIA, Anthropic) придумывали похожие идеи параллельно — это не обесценило мою работу, а наоборот подтвердило, что выбранные паттерны — естественные решения фундаментальных проблем production LLM систем.

2. Связка — это и есть изобретение.

MemGPT умеет память. Reflexion умеет саморефлексию. Voyager умеет автономно учиться. Я пока не слышал,  что кто-то собрал всё это в один production-продукт, который:

  • работает на VPS с 7.8 GB RAM (1.4 GB используется) - да, я немного "расширился" так сказать, "на вырост"
  • имеет 45 000 строк Python в production
  • обслуживает реальных пользователей каждый день
  • показывает health 32/35 OK, 0 ошибок

3. Solo работает до определённого предела.

Сейчас я могу поддерживать систему один. Но чтобы масштабировать — нужны люди. Один сисадмин-Python-инженер-AI-исследователь — это не долгосрочная стратегия.

4. Документация — это часть продукта.

Я написал 13 файлов по архитектуре (~200KB). Не для того, чтобы кто-то прочитал — для того, чтобы я сам мог вернуться через месяц и вспомнить, как оно работает. Это спасло меня от выгорания.

5. Имена компонентов — это не маркетинг, а часть архитектуры.

STM, МНЕМОС, Sufler, ЛИКБЕЗ, Matematicus, Контур, PrCoordinator, LTM — это не брендинг. Когда в коде видишь Sati.children: ["Safi", "Aniela", "Tim"] или модуль называется Likbez — это сразу ясно, что это не просто функции, а часть живой системы.

SATI синапсы ИИ


Production-баги (3 реальных кейса из BUGREPORT.md)

О граблях я также писал в предыдущей статье: 

Грабля №1: GigaChat API возвращал expires_at в миллисекундах, а код сравнивал с секундами. Токен протухал через 6 часов. 6 часов отладки.

Грабля №2: ChromaDB сохраняла None вместо векторов при 401 от embedding API. Не падала с ошибкой — молча сохраняла нули. Поиск возвращал шум. Урок: не доверять «успешному» ответу API без проверки содержимого.

Грабля №3: Sufler через месяц начал льстить. Средняя оценка выросла до 4.6. 60% ответов получают 5/5. Явный перекос — оценщик перестал ловить реальные галлюцинации. Решение — Selfcal (еженедельная автокалибровка промпта).

Эти баги и фиксы я начал вести в BUGREPORT.md (60 записей с июня 2026). Это не bug-tracker в Jira — это честный документ, который показывает реальный production experience.


Зачем этот пост

Несколько причин:

Показать, что это возможно. Если вы сисадмин, который думает «AI — это не моё» — посмотрите, что можно сделать за 3 месяца.

Найти единомышленников. Если вы работаете над чем-то похожим — пишите. Интересно обсудить архитектуру, проблемы, подходы.

Найти реальное применение себе и проекту. Да, я ищу нормальную должность AI Engineer, Promp Engineer, открыт для remote и релокации. 

Может стартап?. Если проект перерастёт в стартап — нужны люди, которые умеют то, что я не умею (продажи, маркетинг, ML research). Если делаете что-то похожее — пишите, обсудим. Опять же нужны средства для развития.

Зафиксировать момент. Через год этот пост будет либо смешным (мы выросли), либо ностальгическим (мы не выросли). Оба варианта интересны.


Что дальше

Как я говорил, тут, в ближайшее время:

  • Опубликую серию технических статей с разбором архитектуры.
  • Попробую все таки разобраться как сделать нормальное приложение для Android.
  • Может еще что-либо придумаю для проекта.
А как со мной связаться - в разделе об авторе.
← 1. Как я собрал самообучающегося ИИ-ассистента за
2.МНЕМОС: трёхуровневая долгосрочная память для AI →
Автору на кофе ☕🥐

Комментарии

Для комментирования авторизуйтесь на сайте