Мы слишком долго использовали 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-агентов.
· 02.09
Верно, согласен, но лучше идти в сторону агентских пайплайнов, использующих субагентов. LLM вместо написания программы (что бы это ни было) пишет промт и вызывает субагента. Субагент возвращает результат выполненной работы. Субагент может работать на маленькой дешёвой модели, что удобно и экономно. Таких субагентов может быть очень много.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён