TL;DR: В статье исследуется эффективность использования bash и SQL для выполнения сложных запросов к структурированным данным AI агентами. Результаты показывают, что SQL обеспечивает более высокую точность и скорость, чем bash, однако гибридный подход, сочетающий оба инструмента, демонстрирует наилучшие результаты.
Введение
В сообществе AI растет убежденность в том, что файловые системы и bash являются оптимальной абстракцией для агентов. Логика проста: языковые модели (LLMs) были обучены на большом объеме кода, терминалов и навигации по файлам, поэтому предоставление агентам доступа к shell кажется естественным шагом. Однако, что если структурированные данные требуют более специализированного подхода? Мы решили проверить эту гипотезу, сравнив эффективность bash и SQL в выполнении сложных запросов.
Основная часть
Экспериментальная установка
Мы создали eval harness, чтобы сравнить производительность трех типов агентов:
- SQL агент: выполняет прямые запросы к базе данных SQLite.
- Bash агент: использует
just-bashдля навигации и запросов к JSON файлам на файловой системе. - Filesystem агент: использует базовые инструменты файловой системы (поиск, чтение) без полного доступа к shell.
Агентам были предложены задачи разной сложности, начиная с простых запросов, таких как “Сколько открытых issues упоминают ‘security’?”, и заканчивая сложными, например, “Найти issues, где кто-то сообщил о баге, а позже кто-то предложил pull request для его исправления”.
Результаты
SQL агент показал 100% точность, в то время как bash агент достиг только 52.7%. Bash агент также использовал в 7 раз больше токенов, стоил в 6.5 раз дороже и выполнялся в 9 раз дольше. Даже базовые инструменты файловой системы показали лучшую точность (63.0%), чем полный доступ к bash.
Отладка результатов
Одним из неожиданных открытий было то, что bash агент генерировал сложные shell команды, такие как цепочки find, grep, jq, awk и xargs, которые редко встречаются в типичных рабочих процессах. Однако это знание не привело к лучшей производительности.
Мы также обнаружили несколько проблем:
- Узкие места производительности: команды, которые должны выполняться за миллисекунды, зависали на 10 секунд из-за вызовов
stat()по 68,000 файлам. - Отсутствие контекста схемы: bash агент не знал структуру JSON файлов, что привело к ошибкам.
- Проблемы с оценкой: некоторые “ожидаемые” ответы оказались неверными или неполными.
Гибридный подход
Мы решили попробовать гибридный подход, предоставив агенту доступ как к bash, так и к SQLite. Этот агент разработал интересное поведение: он выполнял SQL запросы, а затем проверял результаты, просматривая файловую систему. Это позволило достичь 100% точности, хотя и с удвоенным количеством токенов.
Практическое применение
Для структурированных данных с четкими схемами SQL остается наиболее эффективным инструментом. Однако bash предоставляет гибкость, которую SQL не может обеспечить, особенно для проверки и исследования данных.
Заключение
Наше исследование показало, что гибридный подход, сочетающий bash и SQL, является наиболее надежным для выполнения сложных запросов к структурированным данным. Однако ключевым уроком стало понимание важности качественных eval harness и постоянной отладки, которые позволяют улучшать инструменты и результаты.
Eval harness доступен в открытом доступе, и вы можете адаптировать его под свои нужды, используя свои наборы данных, агентов и вопросы. Это исследование было проведено Ankur Goyal и командой Braintrust, которые разрабатывают инфраструктуру для оценки AI приложений.
Источник: https://vercel.com/blog/testing-if-bash-is-all-you-need