Добавить в корзинуПозвонить
Найти в Дзене
Цифровая Переплавка

Агент, который умеет только одно — и поэтому делает всё правильно

В мире ИИ-агентов сегодня царит лёгкий хаос: плагины, инструменты, MCP, skills, подагенты, «правильные» архитектуры. И на этом фоне идея исследователя Rijnard van Tonder звучит почти дерзко — а что если агенту оставить ровно один инструмент? Не ls, не grep, не bash, а только выполнение кода. Любого. Полноценного. Тьюринг-полного. И чем больше я в это вчитываюсь, тем сильнее понимаю: это не упрощение ради упрощения. Это смена оптики. Классический агент сегодня работает так:
ты ставишь задачу → он вызывает инструменты → что-то отвечает → ты уточняешь → он ещё что-то делает.
В итоге остаётся чат-лог и ощущение, что «ну вроде он разобрался». Code-Only агент работает иначе: 🧠 Агент не отвечает — он пишет программу
▶️ Программа запускается
📤 Результат — это вывод кода, а не фантазия модели И здесь происходит ключевой сдвиг. Мы больше не спрашиваем:
«Какие инструменты он использует?»
Мы спрашиваем:
«Какой код он напишет?» А это уже совсем другой уровень доверия. Код — это не просто способ ч
Оглавление

В мире ИИ-агентов сегодня царит лёгкий хаос: плагины, инструменты, MCP, skills, подагенты, «правильные» архитектуры. И на этом фоне идея исследователя Rijnard van Tonder звучит почти дерзко — а что если агенту оставить ровно один инструмент? Не ls, не grep, не bash, а только выполнение кода. Любого. Полноценного. Тьюринг-полного.

И чем больше я в это вчитываюсь, тем сильнее понимаю: это не упрощение ради упрощения. Это смена оптики.

Когда агент перестаёт «думать» и начинает делать

Классический агент сегодня работает так:
ты ставишь задачу → он вызывает инструменты → что-то отвечает → ты уточняешь → он ещё что-то делает.
В итоге остаётся чат-лог и ощущение, что
«ну вроде он разобрался».

Code-Only агент работает иначе:

🧠 Агент не отвечает — он пишет программу
▶️ Программа
запускается
📤 Результат — это
вывод кода, а не фантазия модели

И здесь происходит ключевой сдвиг. Мы больше не спрашиваем:
«Какие инструменты он использует?»
Мы спрашиваем:
«Какой код он напишет?»

А это уже совсем другой уровень доверия.

Почему код — лучший «инструмент» из возможных

Код — это не просто способ что-то посчитать. Это свидетельство проделанной работы. Rijnard называет это code witness — исполняемое доказательство того, почему получен именно такой результат.

⚙️ Что это даёт на практике:

  • 🧪 Воспроизводимость — код можно запустить ещё раз и получить тот же результат
  • 🔍 Проверяемость — можно посмотреть, как именно агент пришёл к выводу
  • 🧱 Детерминизм — семантика языка сильнее «следующего токена»
  • 🔁 Масштабируемость — анализ тысяч файлов через цикл, а не «на глазок»
  • 🧠 Меньше галлюцинаций — если агент что-то «забыл», это видно в коде

И да, это особенно критично там, где я сам постоянно упирался в потолок обычных агентов:
массовый анализ репозиториев, логов, данных, файловых деревьев.
LLM красиво рассуждает, но
пропускает, срезает углы, додумывает.
А for-цикл в Python — нет.

Радикальное ограничение, которое внезапно освобождает

Самый интересный момент: агенту запрещено делать что-либо полезное без написания кода.

🚫 Нет:

  • ls
  • grep
  • cat
  • «прочитай файл»

✅ Есть:

  • execute_code

Хочешь найти файл?
👉 Напиши os.walk.

Хочешь проанализировать 1000 файлов?
👉 Напиши цикл.

Хочешь сгенерировать скрипт?
👉 Напиши код, который
выводит код (да, почти квин).

Это жёстко. Но именно поэтому агент вынужден быть честным.

Недетерминированная модель → детерминированный результат

Одна из самых сильных идей статьи — проекцию хаоса LLM в мир формальных семантик.

🧩 Что происходит под капотом:

  • 🤖 LLM по-прежнему недетерминирован
  • 🧠 Но результат её работы — программа с формальной семантикой
  • 📐 Семантика языка (Python, TS, Rust) начинает играть роль «арбитра истины»

Это почти философский момент:
мы заставляем вероятностную модель
порождать доказательства, а не ответы.

Не случайно Rijnard аккуратно подводит к идее языков вроде Lean, где программы = доказательства. В этом свете Code-Only агент — это не чат-бот, а производитель вычислительных доказательств.

Практика: как это вообще реализовать

Звучит красиво, но как жить с этим в реальности?

🧪 Ключевые инженерные решения:

  • 🧰 Harness — LLM всегда возвращает код, который сразу исполняется
  • 📤 Контроль вывода
    до ~1 КБ → возвращаем в контекст
    больше → пишем в JSON-файл и возвращаем путь
  • 🚧 Жёсткое принуждение — PreHook, который блокирует запрещённые инструменты
  • 🐍 Выбор рантайма
    Python и JS особенно удобны, потому что можно исполнять код
    внутри агента, без subprocess

Это не идеальная система. Это живая инженерная площадка. Но именно поэтому она интересна.

Моё мнение: это не крайность, а фильтр здравого смысла

Лично мне этот подход кажется не «экстремальным», а очищающим.

✍️ Моё разделение простое:

  • 🧳 Пишешь тревел-блог? → пусть LLM просто отвечает
  • 🧮 Считаешь, анализируешь, проверяешь, автоматизируешь? → только код

Всё, что вычислимо, должно быть выражено программой.
Всё остальное — разговор.

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

Что дальше

🔮 Два направления выглядят неизбежными:

  • 🧩 Оркестрация агентов на естественном языке
  • ⚙️ Code-Only внутренний цикл для всего вычислимого

Skills, MCP, prose.md — всё это не исчезнет.
Но, похоже, код снова становится
первичным, а не вспомогательным.

Граница между «запромптить агента» и «запрограммировать агента» будет стираться.
И, честно говоря, я этому рад.

Источники