Пи и ОМПи: зачем минимализм в обвязке агентов ИИ дает больше свободы
В мире терминальных агентов для программирования популярным трендом стало не просто улучшение языковых моделей, а пересмотр самой «обвязки» (harness) — программного слоя, связывающего модель с кодом и инструментами. Проект Pi, созданный Марио Цехнером, взял курс на радикальный минимализм, отдав разработчику контроль над архитектурой агента, тогда как форк Oh My Pi решил упаковать готовые решения для повседневной работы. Экспериментальный тест показал, что отсутствие лишнего функционала в базе не всегда ведет к ухудшению результатов.
# Минимализм против готового решения: что дает обвязка Pi и Oh My Pi
Обсуждая агенты для программирования, разговор часто сводится к сравнению моделей: какой Claude лучше пишет код, а какая версия GPT увереннее устраняет баги. Однако между нейросетью и рабочим деревом Git существует критически важный слой — программная обвязка, или harness. Именно она организует цикл работы: передает запрос модели, запускает вызванные инструменты и возвращает результаты. Здесь формируется контекст, применяются правки и сохраняются сессии.
Традиционные решения, такие как Claude Code, поставляют готовый harness, где большинство решений о планировании, делегировании и обработке контекста уже принято вендором. Это удобно, но лишает пользователя контроля над внутренними механизмами. Проект Pi изменил этот подход, сознательно ограничив встроенные возможности, чтобы дать разработчику свободу сборки своего помощника. С другой стороны, Oh My Pi (OMP) использует архитектуру Pi, но берет на себя ответственность за реализацию широкого спектра инструментов, включая поддержку отладчиков и языковых серверов.
Архитектура без лишних деталей
Автор Pi, Марио Цехнер, столкнулся с проблемой «распухания» интерфейсов вроде Claude Code, где обновления системных инструкций и инструментов ломали привычные рабочие процессы без понятных причин. Целью стало создание терминального агента, устройство которого было прозрачным и доступным для модификации.
Pi построен на модульных компонентах: pi-ai для доступа к моделям, pi-agent-core для логики работы агента и pi-tui для терминального интерфейса. В базовой версии нет встроенных дочерних агентов, режимов сложного планирования или жесткой системы разрешений. Эти функции предлагается добавлять через расширения.
Такое решение возвращает контроль пользователю. Вместо того чтобы искать компромисс в готовом продукте, разработчик может выбрать архитектуру: использовать параллельных исследователей с отдельными контекстами или создать связку «исполнитель и проверяющий». При этом стоит помнить, что Pi не предоставляет встроенной изоляции (песочницы) по умолчанию; для безопасности потребуется настройка контейнеров на стороне пользователя.
Готовый инструмент с возможностью изменения
Для разработчиков, которым нужны немедленные результаты без сборки архитектуры, появился Oh My Pi. Это форк проекта Pi, автор которого, Джан Бёлюк, решил принять больше решений внутри самого проекта.
ОМПи сохраняет модульность Pi, но добавляет в ядро решения, требующие глубокой интеграции: поддержка языковых серверов (LSP), управление отладчиками через протокол DAP, а также постоянные сессии для выполнения Python и JavaScript. Это превращает агент из набора компонентов в готовое приложение для исследования репозиториев и применения правок.
Особенностью подхода ОМП является механизм редактирования Hashline, который привязывает правки к строкам и хешам содержимого. Это позволяет модели указывать точное место изменения и получать обратную связь, если ожидаемое содержимое не совпадает. Такая согласованность между чтением файлов и применением изменений снижает количество ошибок, но усложняет поддержку кодовой базы.
Кто принимает решения: пользователь или вендор?
Главное различие между проектами заключается в вопросе ответственности. В Pi пользователь или автор расширения определяет протокол работы дочерних агентов. В ОМП этот протокол уже реализован и оптимизирован.
| Характеристика | Pi | Oh My Pi | | :--- | :--- | :--- | | Архитектура | Модульная, минималистичная | Расширенная, встроенная | | Дочерние агенты | Добавляются через расширения | Встроенный инструмент task | | Работа с кодом | Доступ к оболочке (sh) | LSP-инструменты, отладчик | | Изоляция | Требуется внешняя настройка | Встроенные механизмы пространств |
Результаты экспериментов
Интересно, что минимализм не оказался помехой в практическом использовании. В бенчмарке на базе модели DeepSeek V4 Flash и фреймворка Composio был проведен тест из 30 задач, связанных с взаимодействием с внешними сервисами (Slack, Google Sheets, календари).
- Pi: успешно решил 20 из 30 задач.
- Oh My Pi: 17 из 30 задач.
- Claude Code и Codex: по 16 из 30 задач.
- OpenCode: 14 из 30 задач.
В этом прогоне Pi обошел агентов с более богатым встроенным функционалом. Это наглядно демонстрирует, что дополнительные возможности обвязки сами по себе не гарантируют лучших результатов. В конкретном сценарии «маленький набор базовых механизмов» оказался более эффективным, вероятно, из-за отсутствия лишних задержек и конфликтов при работе с внешними API. Важно отметить, что тестировалась именно скорость выполнения задач и логическая последовательность действий, а не качество написания чистого кода.
Выводы
Выбор между Pi и Oh My Pi зависит от задачи. Если цель — экспериментировать с архитектурой, изучать внутреннее устройство агента или встраивать агентный цикл в собственную систему, Pi служит идеальной программируемой основой. Если же нужна готовая среда для ежедневной разработки с поддержкой отладки и анализа кода, ОМП предлагает более быстрый старт.
Этот спор показывает, что будущее терминальных агентов лежит не в конкуренции моделей, а в поиске баланса между удобством готового сценария и свободой кастомизации. Оба проекта существуют на одной технической основе, но отвечают на разные потребности разработчиков: кто-то предпочитает строить дом по своему чертежу, а кто-то хочет заселить готовый коттедж с мебелью.
*Технический термин harness (обвязка) — это программный слой, который выступает посредником между нейросетью и операционной системой, превращая текстовые ответы модели в реальные действия в терминале.*