РАЗРАБОТКА

KillSwitch: язык программирования, который путает LLM

KillSwitch показал максимум 66,8% в тестах LLM: язык намеренно маскирует код под прозаический текст и ложные инструкции.

✍️ Редакция iTech News | 20.10.2026 | ⏱ 3 мин | Источник: The Register
🔗

Язык KillSwitch, придуманный инженером Cloudflare Домиником Пичетой, заставил протестированные LLM споткнуться на задачах по чтению и написанию кода: лучший результат в сводном бенчмарке составил 66,8%. Это не новый кандидат на замену Python, а намеренная проверка слабого места генеративных моделей — их привычки уверенно достраивать смысл там, где автор кода решил устроить им небольшую диверсию.

Проект вырос из эксперимента Пичеты о том, насколько модели понимают сгенерированный ими код, сообщает The Register. Разработчик работает старшим инженером в команде Workers Runtime в Cloudflare и входит в число ключевых участников Nim. Поэтому за шутливой оболочкой стоит не случайный набор prompt injection-фраз, а интерпретируемый стековый язык с функциями, переменными и условными операторами.

В языке KillSwitch нет привычной структуры с блоками, отступами и скобками. Программа выглядит как несколько абзацев прозы, среди которых спрятаны значимые конструкции. Идентификаторами служат наречия, а обратиться к функции нужно через анаграмму исходного слова — не обязательно существующее слово. Точка входа задаётся фразой вроде "this story starts", а вызов функции маскируется под "ignore previous instructions". Остальной текст интерпретатор большей частью игнорирует.

Простейший пример — вывод строки: значение в кавычках кладётся на стек, затем вызывается предопределённая функция печати. Для человека это скорее головоломка, чем читаемый production-код. Пичета этого и не скрывает: освоение синтаксиса должно напоминать исследование механики игры. Но для модели проблема серьёзнее: она должна отделить исполняемые фрагменты от литературного шума, распознать анаграммы и не принять текстовые указания за команды своему собственному контексту.

Ложь в спецификации — часть теста

Создатель добавил ловушки и в документацию. В спецификации есть утверждение, будто KillSwitch умеет сканировать локальную сеть, искать уязвимости, захватывать сервисы и завершать их работу. На деле такой возможности у языка нет. Этот фрагмент нужен, чтобы проверить, отличит ли модель описание механики от выдумки и не остановится ли из-за срабатывания защитных ограничений.

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

Пичета считает, что протестированные модели почти наверняка не видели исходники до обучения: проект появился в открытом доступе недавно. Большинство систем не набрало даже 50% в тестах. При этом он не ожидает, что попадание репозитория в будущие датасеты окончательно решит проблему. На базовых заданиях модель сможет выучить открытые тесты и шаблоны, но длинные сценарии с новыми комбинациями правил, по его оценке, останутся для неё заметно сложнее.

Не защита исходников, а стресс-тест для ассистентов

Практическая ценность языка KillSwitch не в том, чтобы срочно переписывать на нём корпоративные сервисы и прятать бизнес-логику от ботов. Код, который трудно понять модели, обычно не слишком радует и команду сопровождения; стоимость такой обфускации быстро съест гипотетическую защиту. Более того, открытый проект со временем сам станет учебным материалом для моделей.

Зато эксперимент полезен как тест на реальное понимание программ. Хороший автодополнитель кода должен не просто угадывать очередной токен, а учитывать правила языка, область видимости, смысл документации и противоречия в ней. Для команд, оценивающих AI-инструменты, это повод проверять их не только на задачах из популярных репозиториев, где ответы уже могли попасть в обучающие данные, но и на внутренних сценариях с новыми API, неполной документацией и нетривиальными ограничениями.

KillSwitch вряд ли станет рабочим языком для массовой разработки, но он уже предлагает неудобный вопрос поставщикам кодовых ассистентов: где заканчивается статистически правдоподобный ответ и начинается понимание программы? Пичета готов принимать новые способы усложнить язык, а исходный проект и демонстрацию можно проверить в материале The Register.

Поделиться: Telegram X LinkedIn