Pu.sh – полный инструментарий для кодирующего агента всего в 400 строках shell

rss:Hacker News: Front Page · оригинал

Pu.sh — это компактный и портативный инструмент для создания кодирующих агентов, написанный всего на 400 строках оболочки (shell). Среди функций: интеграция с OpenAI и Anthropic, 7 системных инструментов (bash, grep, find и др.), REPL-режим, автосжатие данных и поддержка восстановления с точек сохранения. Разработчик исключил сторонние зависимости, используя только стандартные утилиты (sh, curl, awk).

Ценность: Этот проект важен, поскольку демонстрирует, как можно создать мощный инструмент для автоматизации разработки, используя только системные примитивы без дополнительных зависимостей. Это полезно для сред с ограниченными ресурсами или для тех, кто ценит простоту и переносимость. Кроме того, он подчеркивает, что основные функции агентов могут быть реализованы через минимальные изменения в существующих конвейерах, что снижает порог входа в использование LLM для программистов.

Создание Pu.sh началось как эксперимент с проектом pi-autoresearch, где автор попробовал обучить агента создавать портативное решение для программирования. Первая версия заняла 6 КБ и работала только для одноразовых задач, но не подходила для интерактивного использования. Несмотря на это, результат впечатлил разработчика, который продолжил улучшать инструмент с обязательным условием — сохранить размер менее 500 строк и избежать сторонних зависимостей. Это потребовало использования awk для сложных операций, включая парсинг JSON и обработку ответов от OpenAI на протяжении нескольких этапов работы агента. В итоге получилось решение размером около 400 строк, включающее поддержку двух крупных языковых моделей, семь базовых инструментов и множество полезных функций, таких как REPL-режим и автоматическое сжатие данных. Несмотря на отсутствие графического интерфейса или поддержки изображений, проект демонстрирует, что эффективность и функциональность могут быть достигнуты через тщательную оптимизацию и использование существующих утилит.

Важно отметить, что автор откровенно признал, что большая часть архитектуры и промптов была взята из уже существующих решений, таких как pi.dev, и что создание Pu.sh стало возможным благодаря развитию технологий и доступности языковых моделей. Он подчеркнул, что даже не может полностью понять весь код, написанный с использованием awk, поскольку это позволило обойти сложности, связанные с зависимостями. Этот проект не только расширяет возможности разработчиков, но и демонстрирует, как можно адаптировать существующие решения под конкретные задачи, используя минимальный набор инструментов.

При этом Pu.sh не претендует на всеобъемлющее решение — отсутствуют функции вроде TUI, поддержка изображений или OAuth. Но как минимум он показывает, что создание эффективного агента для программирования не требует сложной инфраструктуры, а может быть реализовано через простые оболочечные скрипты. Это важно для тех, кто хочет экспериментировать с LLM или интегрировать агентов в свои рабочие процессы без установки дополнительного ПО. Наконец, проект подчеркивает, что инструменты, созданные для работы с LLM, должны быть гибкими и легко настраиваемыми, чтобы соответствовать потребностям различных разработчиков.