Я изучаю литовский. Приложений и контента для изучения, которые мне нравятся, нет. Можно, конечно, быстро сгенерировать очередное низкокачественное приложение, но зачем мне писать ещё одно приложение для изучения языка в 2026 году? Куда интереснее пойти агентским путём: посадить Hermes работать с моими заметками, словами и грамматикой, а самому дизайнить для него инструменты вместо того, чтобы пилить очередной интерфейс.

Это не пост про лучший способ учить литовский. И не туториал по Hermes. Скорее заметка о маленьком сдвиге в дизайне софта: приложение перестаёт быть просто экраном для человека и становится рабочей средой для пары «человек + агент».

Итерация 1. Obsidian + агент поверх

Самый простой старт занял буквально несколько минут: Obsidian-vault со словами и правилами грамматики, сверху Hermes как чат-учитель.

Чат с агентом Mokytojas: агент читает обсидиан-vault и задаёт первое слово

Работает плохо. Но забавно: я даю ему фидбек прямо в чате, и он доучивается. Добавляет карточки, перелинковывает их с грамматикой, сохраняет важные вещи в долгосрочную память. Взаимодействие уже ощущается не как «я пишу скрипт», а как «я менторю стажёра».

Проблемы быстро становятся очевидными:

  • около 20 секунд ожидания на каждое слово, для тренировки это смерть;
  • токенов сжигается прилично;
  • модель «один вопрос, один ответ в чате» плохо масштабируется;
  • контекст урока живёт слишком близко к переписке, а не к устойчивому продукту.

Первый вывод: агент как учитель возможен, но чат это плохая поверхность для ежедневной тренировки.

Итерация 2. Ретро с агентом

Тут случился любопытный ход. Я не стал сам придумывать следующую архитектуру. Устроил ретро и спросил у агента, что он сам предложит поменять.

Агент анализирует обратную связь и предлагает идею HTML-урока

Он предложил: «давай я буду генерировать тебе HTML-урок, ты проходишь его локально и отправляешь результат обратно мне на разбор».

Звучит сомнительно, но прикольно. Попробуем.

Мне нравится в этом моменте не сама HTML-идея, а способ работы. Я не просто промпчу модель на очередной ответ. Я даю ей опыт, фидбек и право предложить следующий шаг.

Итерация 3. HTML-уроки

Получилось вполне рабочее. Hermes собирает мини-урок на 5-10 минут под мой уровень и отдаёт HTML-файлом. Я прохожу его в браузере, в конце копирую JSON с ответами и комментариями, скидываю в чат, агент разбирает результат и обновляет SRS.

Агент присылает HTML-файл с уроком, пользователь возвращает JSON с ответами

Скрин HTML-урока в браузере с заданием по литовскому падежу

На первый взгляд кайф. Уже не чат, а маленький персональный урок: задания, прогресс, ответы, комментарии, разбор ошибок.

На второй взгляд всё ещё бесполезная поделка:

  • HTML генерится долго, на каждый урок уходит много токенов;
  • обмен данными неудобный, копировать JSON туда-сюда быстро надоедает;
  • нет постоянства: каждый урок немного другой UI, немного другая структура;
  • агент каждый раз заново изобретает поверхность вместо того, чтобы работать через стабильный контракт.

И тут стало понятно: проблема не в том, что HTML плохой. Проблема в том, что агенту нужен не красивый экран. Агенту нужны устойчивые команды, понятные файлы, схема данных, состояние уроков, история ошибок и возможность создавать задачи.

То есть ему нужен CLI.

Итерация 4. CLI и продукт для двух пользователей

Следующий шаг: сделать CLI, через который агент эффективно управляет контентом и уроками.

Я пошёл дальше и сделал то, что хочется называть agent-first продуктом. Не уверен, что мне нравится этот термин, но пока он неплохо обозначает идею: продукт, где агент не прикрученная AI-фича, а один из основных пользователей системы.

В моём случае это выглядит так:

  • агент через CLI управляет контентом: карточками, грамматикой, расписанием SRS, генерацией уроков;
  • я как человек прохожу уроки в нормальном маленьком интерфейсе и оставляю комментарии;
  • у меня нет отдельной админки для ручного редактирования содержимого, и это нарочно;
  • если появляется баг или хорошая идея, агент может сам открыть issue в GitHub-репозитории CLI.

Сейчас у меня там порядка ста слов и около десятка кастомных уроков, собранных под мои запросы. Цифры маленькие, но в этом и смысл: это всё ещё личный эксперимент, а не продукт «для всех».

Тут логичный вопрос: можно же было взять Anki или Quizlet и подключить к ним агента?

Можно, конечно. Но любая интеграция с готовым продуктом это полумера и набор ограничений поверх чужой ментальной модели. Для эксперимента мне нужна полная гибкость: менять схему карточек, формат уроков, поведение SRS и процесс обратной связи под то, как со мной работает агент, а не наоборот.

В обычном приложении я бы думал: какой экран нужен пользователю? Здесь вопрос стал другим: какой интерфейс нужен агенту, чтобы он мог быть хорошим учителем?

Ему не нужны кнопки. Ему нужны стабильные команды, понятные файлы, состояние уроков, история ошибок и возможность создавать задачи. А мне, человеку, наоборот, нужен простой экран на 5 минут без ожидания чата.

Получается странная, но полезная конструкция: один продукт, два разных интерфейса, два разных пользователя.

Агент как учитель и продакт-менеджер

Самое интересное оказалось не в самом CLI, а в том, как я начал работать с агентом.

Я назначил своему Hermes сразу две роли: учитель и продакт-менеджер. Он ведёт меня по урокам, а параллельно анализирует мои фидбеки и логи. Если ловит баг или хорошую идею, сам открывает issue в GitHub-репозитории. А оттуда задача уходит уже другому агенту, на имплементацию. Я в этой цепочке прихожу разбирать бэклог, который появился по результатам моих же уроков, но был сформулирован агентом.

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

Что я понял

Главное, что вылезло из эксперимента:

Agent-first продукты, похоже, отдельный класс маленьких продуктов. Не «AI внутри приложения», а система, где агент полноценный второй пользователь и всё специально спроектировано под совместную работу человека и агента. Приложение это вообще не конечная форма инструмента: need остался тем же (выучить язык), а форма поменялась с «приложение для человека» на «пространство и инструменты, где агент работает вместе с человеком».

Дальше три ощущения, которые из этого вытаскиваются.

1. Менторишь коллегу, а не пишешь скрипт.
С агентом работаешь как со стажёром-коллегой: даёшь фидбек, объясняешь контекст, поправляешь поведение, иногда хвалишь. Главная единица не промпт, а обратная связь и долгосрочная память. Без памяти всё быстро рассыпается, и ты каждый раз начинаешь с нуля.

2. Дизайнишь не приложение, а инструменты.
CLI, файлы, форматы, состояния, схемы данных. Всё ради того, чтобы агент мог быть эффективным. Это менее эффектно, чем красивый UI, но часто важнее: хороший набор инструментов даёт агенту рычаги, которых у него иначе не было бы.

3. У продукта появляется второй пользователь, и местами он становится основным.
Первый пользователь это я, человек, которому надо быстро и приятно повторять литовский. Второй это агент, которому надо читать состояние, менять карточки, видеть ошибки, планировать уроки и создавать задачи. По объёму операций агент уже сейчас работает с системой больше, чем я. Я скорее тот, для кого агент эту систему ведёт.

Магически из коробки это не работает: чтобы довести такой процесс до нормального ежедневного использования, нужно ещё много возиться. Но сам опыт радикально другой.

Что дальше

В следующий раз планирую разобрать сам CLI и agent-first приложение для литовского: команды, SRS, как агент генерирует уроки и как задачи попадают в GitHub.