Tesserack: LLM как компилятор наград для RL-агентов | Кейс Pokémon Red | AiManual
AiManual Logo Ai / Manual.
28 Янв 2026 Инструмент

Как Tesserack превращает LLM в компилятор наград для обучения агентов: кейс с Pokémon Red

Как инструмент Tesserack использует LLM для генерации детерминированных функций вознаграждения из гайдов. Пример с 675 тестами для Pokémon Red.

Проблема: ручное создание наград — это ад

Если вы когда-либо пытались написать функцию вознаграждения для RL-агента, вы знаете, что это похоже на попытку объяснить коту, как играть в шахматы. Вы описываете правила, кот смотрит на вас пустым взглядом, а потом идет спать. В обучении с подкреплением эта «награда» — единственный сигнал, который говорит агенту, что он делает что-то правильно. И обычно ее пишут вручную. Это долго, мучительно и почти всегда ошибочно.

Теперь представьте, что вы хотите обучить агента проходить Pokémon Red. Нужно учесть сотни событий: победы в битвах, получение предметов, движение по карте. Ручное кодирование этого — проект на несколько месяцев. Именно здесь появляется Tesserack.

На 28 января 2026 года инструмент Tesserack использует последние мультимодальные LLM, такие как Claude Vision 4.0 и OLMoCR-2, для анализа визуальных данных и текста. Это не старые модели вроде GPT-3 — речь идет о системах, которые понимают контекст игрового процесса почти как человек.

Tesserack: когда LLM становится компилятором

Tesserack — это открытый инструмент, который берет текстовые гайды (например, пошаговое руководство по прохождению игры) и превращает их в детерминированные тесты для функции вознаграждения. Он не просто генерирует код. Он создает компилятор, который преобразует человеческие инструкции в машиночитаемые проверки.

Вот как это работает: вы подаете на вход гайд по Pokémon Red. Tesserack с помощью LLM разбирает его на атомарные шаги. Каждый шаг — это потенциальный тест: «получите покемона в Паллет-Тауне», «победите Брока в Пьютер-сити». Затем он компилирует эти шаги в код на Python, который проверяет состояние игры (например, через скриншоты или эмулятор) и выдает награду.

Как из гайда по Pokémon Red выжали 675 тестов

В кейсе, который взорвал GitHub, разработчики взяли подробный текстовый гайд и пропустили его через Tesserack. На выходе — 675 детерминированных тестов. Каждый тест соответствует конкретному игровому событию. Например, тест «игрок получил Squirtle» проверяет, появился ли нужный покемон в инвентаре.

Это не случайные промпты. Tesserack использует многоуровневую архитектуру для извлечения смысла. Если вы думали о создании AI-агента для Pokémon Red, то теперь у вас есть готовый набор наград. Больше не нужно гадать, какую цифру поставить за победу над диким Раттата.

1 Три уровня тестов: от пикселей до логики

Tesserack генерирует тесты трех типов, что делает систему невероятно гибкой.

  • Пиксельные тесты: Самые простые. Проверяют наличие определенных пикселей на экране. Например, появление диалогового окна «You got a Charmander!». Быстрые, но хрупкие.
  • OCR-тесты: Используют модели вроде OLMoCR-2 (актуальной на 2026 год) для распознавания текста в игре. Проверяют, что на экране написано «HP: 20/20» или «Badges: 1». Надежнее пиксельных.
  • Логические тесты: Самые сложные. Анализируют состояние игровой памяти или эмулятора. Проверяют флаги событий, количество покемонов в команде, пройденные локации. Почти неубиваемые.
💡
Именно комбинация этих уровней позволяет Tesserack создавать robust-ные функции вознаграждения. Агент не получит награду просто за то, что на экране мелькнул нужный цвет — система проверит и текст, и игровую логику.

Под капотом: мультимодальные LLM и детерминизм

Здесь кроется главная магия. Tesserack использует LLM не для прямого кодирования, а как интерпретатор спецификаций. Вы даете ему описание на человеческом языке, а он производит код, который всегда дает одинаковый результат для одинакового состояния игры. Это детерминизм, критичный для воспроизводимости экспериментов в RL.

Например, для шага «купить Poké Ball в магазине» LLM генерирует тест, который проверяет: уменьшилось ли количество денег, увеличилось ли количество Poké Ball в инвентаре, и было ли диалоговое окно покупки. Все это через анализ данных эмулятора. Это похоже на то, как работают AI-кодинг-агенты, но с фокусом на тестировании, а не генерации.

Важный нюанс: Tesserack не полагается на одну LLM. Он использует каскад моделей — одна разбирает текст гайда, другая (мультимодальная) анализирует скриншоты, третья валидирует логику. Это снижает риск галлюцинаций, которые убивают детерминизм.

А что с альтернативами? (Spoiler: их почти нет)

До Tesserack были попытки использовать LLM для генерации наград, но они упирались в два вопроса: как сделать это детерминированно и как масштабировать. Промпты вроде «напиши функцию награды для Pokémon» дают разный код каждый раз и полны ошибок.

Инструмент/Подход Детерминизм Масштабируемость Пример
Ручное кодирование Да Нет (месяцы работы) Собственные проекты RL
Прямые промпты к LLM Нет Средняя GPT-4o для генерации кода
Tesserack Да (через тесты) Высокая (гайды как вход) 675 тестов для Pokémon Red

Другие подходы, например, RAG-агенты для объяснения правил, хороши для извлечения знаний, но не для компиляции в код. Tesserack занимает уникальную нишу.

Где это работает, кроме покемонов?

Идея превращать гайды в тесты применима везде, где есть последовательность шагов и состояние, которое можно проверить.

  • Другие видеоигры: От классических RPG до современных стратегий. Скорость обучения агентов взлетает, когда награды точные.
  • Бизнес-процессы: Автоматизация софта через UI. Гайд «как оформить заказ в CRM» превращается в тесты для RPA-бота.
  • Образовательные симуляторы: Проверка выполнения заданий в обучающих программах. Tesserack может генерировать тесты из учебных пособий.
  • Тестирование ПО: Генерация интеграционных тестов из документации. Мечта QA-инженера, если инструмент адаптировать.

По сути, это следующий шаг после упаковки знаний для агентов в виде Skills. Не просто знания, а исполняемые спецификации.

Кому стоит попробовать Tesserack прямо сейчас?

Инструмент не для всех. Он требует технического бэкграунда, но окупается сполна.

  1. Исследователи в RL: Кто устал от ручного создания reward shaping. С Tesserack можно быстро прототипировать сложные сценарии.
  2. Разработчики игровых AI: Особенно те, кто работает с ретро-играми или эмуляторами. Получайте готовые функции награды за часы, а не недели.
  3. Инженеры по автоматизации: Которые видят потенциал в использовании LLM для генерации тестов. Tesserack дает рабочий пример.
  4. Энтузиасты AI-агентов: Которые собирают системы из компонентов как LEGO. Tesserack — это мощный блок для работы с наградами.

Но предупреждение: Tesserack не волшебная палочка. Он зависит от качества гайда и возможностей LLM. Если гайд расплывчатый, тесты будут такими же. И вам все равно нужно интегрировать сгенерированный код в свой эмулятор или среду. Это не плагин в один клик.

Что дальше? Я вижу, как подобные инструменты смещают фокус с «написания кода» на «написание спецификаций». В будущем мы будем описывать желаемое поведение агента на естественном языке, а компилятор (вроде Tesserack) будет превращать это в детерминированные тесты, код и даже бенчмарки для оценки. И самое интересное — это произойдет не через десятилетие, а в ближайшие пару лет. Pokémon Red был только разминкой.

Неочевидный совет: если вы экспериментируете с Tesserack, начните не с огромного гайда, а с одной главы. Например, с прохождения первой арены в Pokémon. Так вы поймете, как инструмент интерпретирует текст, и настроите пайплайн без лишней сложности. А потом масштабируйте. И да, обязательно загляните в исходники — архитектура того стоит.