Почему один инструмент run() с командами Unix превосходит вызов функций для AI-агентов

Разработчик с двухлетним опытом создания ИИ-агентов — сначала в качестве ведущего backend-специалиста в Manus, затем в open-source проектах Pinix и agent-clip — пришёл к выводу, что единый инструмент run(command="...") с командами в стиле Unix работает лучше, чем традиционные подходы с вызовом функций.
Конвергенция Unix и LLM
Ключевая идея заключается в том, что 50-летнее дизайнерское решение Unix — всё является текстовым потоком — идеально соответствует текстовой природе LLM. Программы Unix общаются через текстовые конвейеры, используют --help для самодокументирования, сообщают об успехе/неудаче с помощью кодов завершения и передают ошибки через stderr. LLM аналогично понимают только текстовые токены. Это делает текстовый интерфейс Unix естественным выбором для LLM, которые по сути функционируют как операторы терминала с обширным знакомством с командами оболочки в их обучающих данных.
Подход с единым инструментом
Большинство фреймворков для агентов предоставляют LLM каталог независимых инструментов, таких как [search_web, read_file, write_file, run_code, send_email, ...], требуя от LLM принимать решения о выборе инструмента перед каждым вызовом. По мере добавления большего количества инструментов точность выбора снижается, поскольку когнитивная нагрузка смещается с вопроса «что мне нужно сделать?» на вопрос «какой инструмент?».
Альтернативный подход использует один инструмент run(command="..."), который предоставляет все возможности в виде CLI-команд:
run(command="cat notes.md")
run(command="cat log.txt | grep ERROR | wc -l")
run(command="see screenshot.png")
run(command="memory search 'deployment issue'")
run(command="clip sandbox bash 'python3 analyze.py'")Выбор команды становится композицией строк в едином пространстве имён, а не переключением контекста между несвязанными API.
Почему CLI-команды работают лучше
CLI-команды — это самый плотный паттерн использования инструментов в обучающих данных LLM, встречающийся в миллиардах строк на GitHub (инструкции по установке в README, скрипты сборки CI/CD, решения на Stack Overflow). Разработчик отмечает: «Мне не нужно учить LLM, как использовать CLI — она уже знает».
Сравните подходы для одной и той же задачи:
Задача: Прочитать файл лога, подсчитать строки с ошибками
Подход с вызовом функций (3 вызова инструмента):
1. read_file(path="/var/log/app.log") → возвращает весь файл
2. search_text(text=<весь файл>, pattern="ERROR") → возвращает совпадающие строки
3. count_lines(text=<совпадающие строки>) → возвращает число
CLI-подход (1 вызов инструмента):
run(command="cat /var/log/app.log | grep ERROR | wc -l") → "42"Один вызов заменяет три, потому что конвейеры Unix изначально поддерживают композицию. Разработчик подчёркивает, что это не специальная оптимизация, а использование существующего дизайна Unix.
📖 Read the full source: r/LocalLLaMA
👀 Смотрите также

Представляем Swarmhook: бесплатные и с открытым исходным кодом вебхуки для вашего бота.
Swarmhook.com предлагает бесплатные и открытые вебхуки для эффективного управления событиями ваших ботов, упрощая автоматизацию и реакцию.

Разверните OpenClaw на VPS с помощью команды на одной строке.
Пользователь Reddit утверждает, что разработал CLI, который развертывает OpenClaw на VPS за $4.99 в месяц с помощью одной команды, предлагая экономичную альтернативу использованию Mac Minis.

PromptForest: Обнаружение инъекций промптов с приоритетом локальности и учетом неопределенности
PromptForest — это легковесная библиотека с приоритетом локальности, которая обнаруживает инъекции запросов и джейлбрейки, классифицируя их и оценивая степень уверенности, все это без увеличения средней задержки запросов.

Протокол Agent Browser: открытый форк Chrome для ИИ-агентов достигает 90% на бенчмарке Mind2Web
Протокол агентского браузера (ABP) — это открытая форк-версия Chrome, которая замораживает JavaScript и время после каждого действия, превращая веб-сёрфинг в мультимодальный чат для ИИ-агентов. Он достиг 90,53% на тесте Online Mind2Web Benchmark и может быть добавлен в Claude Code одной командой.