📊 Отчёт о прогрессе в развитии бота Aist за 25-29 января 2026

За эти несколько дней уделил немного времени по причине переезда из Кипра в Тбилиси и потом в Ташкент. В общей сложности выделил часов 10. В основном, на устранение ошибок, а также создал тестовый бот на новой архитектуре, которую выбрал по рекомендации архитектора Андрея Смирнова. За это время практически реализовал эту новую архитектуру. Сегодня закончил работу с языками, и теперь, надеюсь, что смогу достаточно быстро подключить любой язык. Нужно будет попробовать подключить французский и китайский.

Ветка main (основной бот) — 24 коммита

1. Исправления отображения прогресса

  • Устранены ошибки в /progress — некорректный расчёт дней до завершения
  • Исправлена работа с FSMContext (state=None) — бот падал при некоторых сценариях
  • Улучшена обработка ошибок в marathon_learn с полным traceback

Зачем: Стабильность продакшн-бота, пользователи получают корректную статистику.

2. Инфраструктурные исправления

  • Переименование test-repotest_repo для совместимости с Python-импортами
  • Обновлён compliance checker для процесса P-01 (отслеживание активности)
  • Добавлены автоматические отчёты соответствия сценариям

Зачем: Автоматизация проверки качества — код проверяется на соответствие документации.


Ветка new-architecture (новый бот) — 76 коммитов

1. State Machine — полная инфраструктура

states/
├── base.py              # Базовый класс состояний
├── registry.py          # Автоматическая регистрация
├── common/              # Общие состояния
│   ├── start.py         # Онбординг
│   ├── mode_select.py   # Выбор режима
│   ├── consultation.py  # Консультации
│   └── error.py         # Обработка ошибок
├── workshops/marathon/  # Марафон
│   ├── lesson.py        # Урок (теория)
│   ├── question.py      # Вопрос урока
│   ├── task.py          # Задание
│   └── bonus.py         # Бонусный вопрос
└── feed/                # Лента
    ├── topics.py        # Выбор тем
    └── digest.py        # Дайджест

Зачем: Каждое состояние изолировано и тестируемо. Легко добавлять новые режимы (консультант, экзокортекс).

2. Модульная система i18n (интернационализация)

i18n/
├── schema.yaml       # Схема всех ключей
├── loader.py         # Загрузчик переводов
├── checker.py        # Проверка полноты
└── translations/     # Файлы переводов

Зачем: Все строки UI вынесены из кода. Добавление нового языка = 1 YAML-файл.

3. Полная локализация UI

  • Все захардкоженные строки переведены на i18n
  • Исправлено смешивание языков (названия тем, кнопки)
  • Документирован процесс P-05 (локализация)

Зачем: Готовность к многоязычной аудитории без изменений кода.


Что дальше можно делать

Краткосрочные задачи:
0. Реализация французского или китайского языка.

  1. Подключение ORY (авторизация)
  • Единый вход для всех ботов Aisystant
  • Связка Telegram ID ↔ аккаунт ORY
  1. Перевод Aisystant Index Bot → Aist
  • Миграция функционала заметочника на новую архитектуру
  • Бот заметок станет частью единой системы
  1. Разворачивание и тестирование цифрового двойника
  • E2E тесты всех сценариев
  • Staging-окружение для проверки перед production

Режимы консультанта (новые применения):

  1. Тестирование ступени мастерства
  • Состояние ConsultantMasteryState
  • Оценка уровня владения темой через диалог
  1. Создание экзокортекса
  • Состояние ConsultantExocortexState
  • Помощь в структурировании личной базы знаний
  1. Помощь родителю в обучении нулевым принципам
  • Состояние ConsultantParentState
  • Адаптированные объяснения для передачи детям
  1. Ассистенты Стратег и Артефактор
  • StrategistState — помощь в формулировании стратегий
  • ArtifactorState — создание рабочих продуктов

Архитектура State Machine позволяет добавлять каждый новый режим как независимый модуль в states/consultants/.

1 лайк