Мы слишком долго использовали LLM как дорогой for

Кажется, в AI-агентах появляется важный новый тренд.

Классический агент работает так: LLM → tool → результат → LLM → tool → результат → LLM

На коротких задачах нормально. На длинных — начинается странное.

Допустим, нужно найти все места, где используется устаревший модуль.

Агент делает grep → получает 40 файлов → все 40 результатов летят в контекст.

Потом читает первый файл. Потом второй. Потом третий.

И в какой-то момент становится понятно: мы используем LLM как очень дорогой цикл for.

Хотя обычный код сделал бы так:

const files = await grep("deprecated-module")

for (const file of files) { const content = await read(file)

if (reallyUsed(content)) { result.push(file) } }

Вот здесь появляется Programmatic Tool Calling.

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

Получается уже так: LLM ↓ program ├─ grep ├─ read × 40 ├─ filter └─ aggregate ↓ 3 важных результата ↓ LLM

Сорок промежуточных результатов могут вообще не попасть в контекст.

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

LLM должна: понять задачу, выбрать стратегию, принять решение.

Код должен: крутить циклы, фильтровать, сортировать и обрабатывать сотни результатов.

Не каждое действие агента требует нового inference. Если модель уже решила: «проверь каждый файл по этому условию» то следующие 40 шагов — это не reasoning.

Это просто выполнение программы.

И вот здесь становится особенно важен Agent Harness — обвязка вокруг модели.

Не сама LLM, а система, которая определяет: какие tools доступны; где выполняется generated code; что попадает в контекст; как работают sandbox и permissions; что происходит при ошибках; как устроены retries и observability.

Поэтому мне все меньше интересен вопрос: «Какая модель умнее?» И все больше: «Как устроена система вокруг модели?»

Возможно, следующий этап agentic AI — это не просто новые модели и еще больше tools.

А перенос orchestration из LLM в обычный runtime.

LLM — думает. Код — исполняет. Harness — управляет.

И, возможно, именно вокруг этого сейчас будет строиться следующий большой скачок AI-агентов.