Pi против OpenCode — какого ИИ-агента для программирования выбрать?

KKTG Analysis
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00Сейчас за терминал сражаются два серьезных ИИ-агента для кодинга с открытым исходным кодом,
00:00:04и выбор неправильного может означать перестройку всего вашего рабочего процесса позже.
00:00:10Один из них поставляется со всем необходимым сразу «из коробки», другой же
00:00:14почти пустой и утверждает, что в этом и смысл. Сегодня мы
00:00:19столкнем Open Code и Pi лицом к лицу.
00:00:21К концу этого видео вы будете точно знать, какой из них должен быть в вашем терминале.
00:00:27Давайте начнем с того, что это за инструменты на самом деле.
00:00:30Поскольку они решают одну и ту же задачу принципиально разными способами, и
00:00:34Open Code, и Pi являются консольными ИИ-агентами для программирования. Вы запускаете их
00:00:40в терминале, они подключаются к большим языковым моделям, таким как Claude или GPT, и
00:00:45могут читать ваш код, редактировать файлы, выполнять консольные команды и вести длительные беседы
00:00:50о вашей кодовой базе. Думайте о них как об открытых альтернативах Claude Code.
00:00:55Оба написаны на TypeScript, оба имеют лицензию MIT и оба поддерживают более 20
00:01:01провайдеров LLM, но на этом сходство заканчивается. Open Code был создан
00:01:06создателями terminal.shop и сообществом энтузиастов Neovim.
00:01:11Он использует подход, который я бы назвал «все включено».
00:01:15Сразу вы получаете мультиагентную систему со специализированными агентами для разных задач,
00:01:20встроенную систему разрешений с диалогами одобрения, интеграцию с
00:01:24Language Server Protocol для анализа кода, полную поддержку Model Context Protocol
00:01:29для подключения внешних инструментов, базу данных SQLite для сохранения сессий и
00:01:34даже десктопное приложение на базе Tauri наряду с терминальным интерфейсом.
00:01:40Философия Open Code заключается в том, что агент должен работать хорошо сразу,
00:01:45с разумными настройками по умолчанию и глубокими интеграциями. Pi, созданный Марио Зехнером,
00:01:51использует противоположный подход. Его философия четко изложена в файле README:
00:01:56«Pi агрессивно расширяем, поэтому ему не нужно диктовать вам рабочий процесс».
00:02:00Pi намеренно поставляется без субагентов, без поддержки MCP, без системы
00:02:05разрешений, без режима планирования и без встроенного отслеживания задач. Вместо этого
00:02:11он предоставляет мощный API расширений и говорит: создайте именно то, что вам нужно,
00:02:17или установите пакет сообщества. Ядро остается минимальным. Все остальное —
00:02:22на ваш выбор. Эти два проекта представляют собой настоящий философский раскол
00:02:27в дизайне инструментов для разработчиков. Давайте углубимся в технические
00:02:32детали каждого из них, а затем сравним их напрямую. Начнем с
00:02:36архитектуры Open Code. Open Code — это монорепозиторий с примерно 21 пакетом.
00:02:42Основной движок находится в одном пакете, но есть отдельные пакеты для
00:02:46веб-консоли, десктопного приложения, TypeScript SDK, системы плагинов,
00:02:52общих компонентов интерфейса и документации. Внутри он работает на Bun,
00:02:57который значительно быстрее Node при запуске и выполнении. Для уровня
00:03:02абстракции LLM Open Code использует универсальный AI SDK версии 5. Это
00:03:08хорошо поддерживаемая и широко распространенная библиотека, обеспечивающая единый интерфейс
00:03:13для десятков провайдеров. Практическая выгода в том, что Open Code получает
00:03:18поддержку провайдеров почти даром по мере развития Vercel SDK. Одной из
00:03:24выдающихся особенностей Open Code является его мультиагентная система. Он включает
00:03:30несколько специализированных агентов. «Build agent» — по умолчанию, агент с полным доступом,
00:03:35который может читать, писать и выполнять всё. «Plan agent» работает только для чтения,
00:03:40предназначен для изучения кода без внесения изменений. Он может писать только
00:03:45в специальную директорию планов. «Explorer agent» — быстрый и легкий специалист
00:03:50для навигации по кодовой базе, ограниченный операциями поиска и чтения.
00:03:55Также есть общий агент для сложных многоэтапных задач, действующий как субагент.
00:04:00Пользователи переключаются между ними клавишей Tab, и у каждого агента свои
00:04:05правила разрешений. Вы также можете определить кастомных агентов
00:04:09в конфиге, указав модель, права доступа и системный промпт.
00:04:14Для хранения данных Open Code использует SQLite с ORM Drizzle. Сессии,
00:04:19сообщения, разрешения и учетные данные MCP — все живет в одном
00:04:25файле базы данных. Это значимый архитектурный выбор. SQLite обеспечивает
00:04:30целостность транзакций, эффективные запросы между сессиями и единый файл,
00:04:35который легко бэкапить. Open Code запускает его в режиме WAL для лучшей производительности чтения.
00:04:41Система разрешений в Open Code многоуровневая и гранулярная. Каждое использование
00:04:46инструмента проходит проверку. Можно задать правила для конкретных инструментов и паттернов файлов.
00:04:52Например, разрешить чтение всех файлов, но требовать подтверждения для правки .env,
00:04:57и полностью запретить консольные команды в продакшн-директориях. Разрешения каскадируются
00:05:03с глобального уровня до проектных переопределений. Когда агенту нужно
00:05:08одобрение, он показывает интерактивный диалог прямо в терминале, и вы
00:05:13можете разрешить действие один раз или всегда. Интеграция с MCP
00:05:18полнофункциональна. Open Code может подключаться как к локальным, так и к удаленным
00:05:24серверам MCP. Поддерживает транспорты stdio и HTTP, обрабатывает аутентификацию OAuth
00:05:30для удаленных серверов и автоматически регистрирует инструменты. Если вы
00:05:37уже используете MCP-серверы с другими инструментами, Open Code заработает с
00:05:42ними мгновенно. Еще одна примечательная функция — встроенная поддержка LSP.
00:05:47Open Code может запускать LSP-серверы для TypeScript, Python, Go, Rust
00:05:53и других языков. Это дает ИИ доступ к реальному интеллекту кода,
00:05:58такому как подсказки при наведении, переход к определению и ссылки на символы,
00:06:04вместо простого сопоставления текста. Это тонкое, но важное преимущество
00:06:10для точности понимания кода. Также у Open Code есть система навыков,
00:06:15совместимая с форматом Claude Code. Навыки — это Markdown-файлы
00:06:20с метаданными, определяющими поведение, и есть система плагинов на базе
00:06:25NPM-пакетов, которые могут вклиниваться почти в любую часть жизненного цикла,
00:06:30от загрузки конфига до трансформации сообщений и выполнения инструментов.
00:06:35Теперь взглянем на архитектуру Pi. Pi — это тоже монорепозиторий,
00:06:40но с другой структурой. Ключевые пакеты: сам агент для кодинга, Pi-AI
00:06:45для абстракции LLM, Pi-agent-core для рантайма агента и Pi-2e для
00:06:51отрисовки терминала. Также есть PiMom — бот для Slack — и PiPods
00:06:57для развертывания на GPU. Самое важное техническое решение в Pi — это создание
00:07:02собственного уровня абстракции LLM с нуля вместо использования Vercel AI SDK.
00:07:08Pi-AI — это унифицированный API для LLM, поддерживающий более 30
00:07:12провайдеров, включая тех, кого нет в Vercel SDK, например Minimax и Kimi.
00:07:20Собственный уровень дает команде Pi полный контроль над стримингом,
00:07:24парсингом вызовов инструментов и оптимизациями под конкретных провайдеров.
00:07:30Цена за это — нагрузка по поддержке, но это позволяет Pi реализовать такие вещи,
00:07:35как частичный парсинг JSON во время стриминга аргументов, именно так,
00:07:40как они хотят. Управление сессиями в Pi использует формат JSONL —
00:07:44плоский файл, где каждая строка является объектом JSON. У каждой записи есть
00:07:50ID и Parent ID, что позволяет строить древовидную структуру в одном файле.
00:07:56Это остроумно. Это значит, что можно ветвить диалоги, перемещаться по
00:08:00всей истории и перепрыгивать между ветками в рамках одного файла, который
00:08:06легко изучить стандартными инструментами Unix. Команда tree позволяет визуализировать
00:08:12всю историю диалога и перейти в любую точку. Команда fork
00:08:17создает новую ветку из любого сообщения. Это действительно один из
00:08:23лучших интерфейсов управления диалогами в ИИ-агентах. Система расширений Pi —
00:08:28это то, где философия оживает. Расширения — это файлы TypeScript,
00:08:33загружаемые напрямую через jiti, без этапа компиляции. Расширение может
00:08:38расширение может регистрировать кастомные инструменты, команды и горячие клавиши. Оно может
00:08:44подписываться на события: запуск сессии, запуск агента, вызов инструментов и
00:08:49выбор модели. Оно может взаимодействовать с пользователем через диалоги подтверждения,
00:08:55меню выбора и текстовые промпты. Оно может даже рендерить кастомные TUI-компоненты.
00:09:01API расширений дает доступ к менеджеру сессий, реестру моделей, хранилищу авторизации
00:09:06и шине событий. Иными словами, расширения могут делать почти всё,
00:09:11что может ядро. Именно здесь пробелы в функционале Pi начинают
00:09:16обретать смысл. Нет встроенной системы разрешений? Напишите расширение, которое
00:09:20показывает диалог перед опасной командой. Нет субагентов? Запустите инстансы Pi
00:09:27через tmux или напишите расширение для координации циклов. Нет MCP?
00:09:33Создайте навык как CLI-инструмент с README или напишите расширение с поддержкой MCP.
00:09:40Нет режима планирования? Пишите планы в Markdown или создайте расширение,
00:09:45которое ими управляет. Отрисовка терминала в Pi также самописная. Пакет pi2e
00:09:51реализует дифференциальный рендеринг с тремя стратегиями для минимизации обновлений экрана
00:09:56и использует протокол CSI 2026 для атомарных обновлений без мерцания.
00:10:02В нем есть своя система компонентов с контейнерами, редакторами, рендерингом текста,
00:10:07Markdown, поддержкой изображений и списками. TUI агента построен
00:10:13полностью на этом фреймворке. Для работы с инструментами Pi поставляется с семью
00:10:18встроенными функциями: READ, bash, edit, write, grep, find и ls. Это осознанный минимум.
00:10:25Инструмент bash поддерживает опциональную песочницу Docker и потоковый вывод
00:10:30в реальном времени. Инструмент edit использует формат unified diff. Все инструменты
00:10:36валидируют аргументы через AJV перед запуском и поддерживают параллельное выполнение,
00:10:42то есть несколько вызовов от LLM идут одновременно, а не по очереди.
00:10:48Теперь давайте сравним их напрямую по самым важным параметрам.
00:10:53Поддержка провайдеров. Оба поддерживают более 20 провайдеров и работают с любым
00:10:59OpenAI-совместимым API. Open Code использует Vercel AI SDK, а значит,
00:11:06получает новых провайдеров автоматически. Pi создал свою библиотеку Pi-I,
00:11:12что дает контроль, но требует ручного добавления провайдеров. На практике
00:11:18оба покрывают всех основных игроков, которые могут вам понадобиться.
00:11:22Модель агента: Open Code поставляется с набором специализированных агентов и позволяет
00:11:27переключаться между ними одной клавишей. Pi предлагает одного агента и говорит:
00:11:33если нужны субагенты, делайте их через расширения или запускайте отдельные процессы.
00:11:37Если вам нужны готовые режимы работы, тут выигрывает Open Code. Если
00:11:42вы хотите сами строить топологию агентов, Pi дает для этого инструменты. Хранение:
00:11:47Open Code использует SQLite, Pi — JSONL. SQLite дает целостность и
00:11:53быстрые запросы. JSONL дает читаемые файлы, которые можно изучить через cat или grep,
00:11:58а древовидная структура Pi очень элегантна. Оба поддерживают ветвление сессий,
00:12:04но интерфейс навигации по дереву в Pi спроектирован особенно
00:12:08удобно для изучения истории. Безопасность: у Open Code есть комплексная
00:12:13встроенная система с диалогами одобрения, правилами для файлов и памятью разрешений.
00:12:19В ядре Pi системы разрешений нет, это ложится на плечи расширений.
00:12:25Если нужны «ограничители» сразу, Open Code — более безопасный выбор. Если вы
00:12:30работаете в контейнерах или хотите полный контроль, подход Pi дает больше гибкости.
00:12:35Поддержка MCP: в Open Code она полная, с OAuth, разными транспортами
00:12:41и авторегистрацией. Pi намеренно отвергает MCP в пользу
00:12:48навыков, которые являются CLI-инструментами с документацией. Марио Зехнер
00:12:54написал пост, доказывая, что MCP излишне усложняет то, что решается простым
00:13:00CLI-инструментом. Если ваш рабочий процесс уже завязан на MCP,
00:13:04Open Code — очевидный выбор. Если вам ближе Unix-философия маленьких
00:13:10составных инструментов, подход Pi может срезонировать больше. Интеллект кода:
00:13:16Open Code имеет встроенную интеграцию с LSP, дающую модели доступ к типам,
00:13:22определениям и ссылкам. В ядре Pi поддержки LSP нет. Это дает
00:13:28Open Code преимущество при работе со строго типизированными языками, где
00:13:32типизация улучшает понимание ИИ. Интерфейс терминала: оба имеют
00:13:37продвинутые кастомные TUI, но построенные по-разному. Open Code использует Solid.js
00:13:42с фреймворком OpenID. Pi использует свой Pi2E с дифференциальным рендерингом.
00:13:48Оба выглядят отлично и работают отзывчиво. Open Code также предлагает
00:13:53приложение на Tauri и веб-консоль. Pi — только для терминала, хотя предлагает
00:13:58библиотеку веб-компонентов для встраивания в другие приложения. Оба используют JSON
00:14:03для конфигурации на уровне проекта и глобально. Open Code использует JSONC,
00:14:07что позволяет добавлять комментарии — приятная мелочь. Pi использует стандартный
00:14:14JSON. Оба позволяют гибко настраивать модели, инструменты и поведение. Конфиг
00:14:19Open Code сложнее, потому что там больше настроек. У Pi он проще,
00:14:26так как меньше встроенных функций. Итак, что же выбрать? Задайте себе
00:14:31следующие вопросы. Нужен ли вам полнофункциональный инструмент сразу или вы
00:14:35хотите собрать свой рабочий процесс сами? Если вы хотите установить агента
00:14:39и за 5 минут получить работающие разрешения, несколько агентов,
00:14:45поддержку MCP, LSP и отполированный опыт, то Open Code создан
00:14:49именно для этого. Если же вы хотите минимальное ядро, которое настроите
00:14:56под себя, и вам комфортно писать расширения на TypeScript, Pi — для вас.
00:15:01Насколько важен MCP? Если вы уже используете MCP-серверы или планируете,
00:15:06Open Code поддерживает их нативно. Pi осознанно этого не делает,
00:15:11предпочитая простые CLI-интеграции. Работаете ли вы со строго типизированными
00:15:16языками? Встроенная поддержка LSP в Open Code дает ИИ более богатое понимание кода,
00:15:22что критично для TypeScript, Go или Rust. Если вы в основном
00:15:28пишете на Python или динамических языках, это преимущество не так заметно.
00:15:34Нужен ли десктопный или веб-интерфейс? Open Code предлагает и то,
00:15:39и другое. Pi — только терминал, и гордится этим. Что вы думаете о
00:15:44доверии и песочницах? Если вы хотите, чтобы агент спрашивал перед любым
00:15:51опасным действием, система разрешений Open Code справится с этим сразу. Если
00:15:55же вы предпочитаете запустить агента целиком в Docker-контейнере и дать ему
00:16:00полную свободу внутри, подход Pi без разрешений отлично сочетается с таким
00:16:04воркфлоу. Вы опытный пользователь, желающий настроить всё? Система расширений Pi
00:16:10поразительно мощная. Можно изменить практически любой аспект поведения агента,
00:16:15от выполнения инструментов до управления сессиями и самого TUI. В Open Code
00:16:20тоже есть плагины, но они больше ориентированы на конкретные хуки, а не на
00:16:25полное переопределение поведения. Итог: Open Code на сегодня является более
00:16:30зрелым и функциональным продуктом. Он дает больше «из коробки», интегрируется
00:16:34с внешними системами и имеет более низкий порог вхождения. Для большинства
00:16:40разработчиков Open Code будет более надежным вариантом. Pi же интересен
00:16:44своим дизайном. Его агрессивный минимализм и упор на расширения делают его уникально
00:16:49адаптивным. Если вы из тех, кто неделями настраивает Neovim перед тем,
00:16:55как написать хоть строчку кода, и хотите агента, работающего именно так,
00:17:01как вы задумали, Pi вознаградит ваши усилия, а навигация по дереву сессий
00:17:05там действительно лучшая в классе. Оба проекта под лицензией MIT, активно
00:17:09поддерживаются и работают с одинаково широким набором провайдеров LLM.
00:17:14Вы можете опробовать оба за один вечер. Код доступен на GitHub,
00:17:20и ни один не требует подписки для начала работы. Установите их,
00:17:27запустите на одном и том же коде и посмотрите, какой больше подходит
00:17:31вашему стилю. Это единственное сравнение, которое действительно имеет значение.
00:17:37Конец.

Key Takeaway

Open Code предлагает готовую экосистему с LSP и MCP для быстрой интеграции, в то время как Pi фокусируется на экстремальной расширяемости через минималистичное ядро и древовидное управление сессиями в JSONL.

Highlights

  • Open Code и Pi поддерживают более 20 провайдеров больших языковых моделей и работают под открытой лицензией MIT.

  • Open Code использует мультиагентную архитектуру с специализированными ролями Build, Plan и Explorer для разных уровней доступа к коду.

  • Pi заменяет поддержку Model Context Protocol (MCP) на концепцию навыков в виде простых CLI-инструментов.

  • Встроенная интеграция LSP в Open Code обеспечивает глубокое понимание типов и определений в языках TypeScript, Go и Rust.

  • Pi реализует навигацию по истории диалогов в формате дерева с возможностью ветвления через файловую структуру JSONL.

  • Архитектура Open Code базируется на 21 пакете в монорепозитории и использует Bun для ускорения запуска по сравнению с Node.

Timeline

Философское различие между Open Code и Pi

  • Оба инструмента являются консольными ИИ-агентами на базе TypeScript для редактирования кода и выполнения терминальных команд.
  • Open Code следует подходу «все включено» с готовыми агентами, системой разрешений и поддержкой MCP.
  • Pi придерживается минимализма, предоставляя API для создания собственного рабочего процесса вместо навязывания готовых функций.

Разработчики Open Code из terminal.shop создали систему, которая готова к работе сразу после установки. Она включает в себя мультиагентную систему и десктопное приложение на базе Tauri. Pi, созданный Марио Зехнером, намеренно поставляется без субагентов и отслеживания задач, перекладывая настройку на расширения сообщества.

Техническая архитектура и возможности Open Code

  • Система управления данными построена на базе SQLite с использованием ORM Drizzle в режиме WAL.
  • Мультиагентная система включает агентов Build для записи, Plan для чтения и Explorer для быстрой навигации.
  • Интеграция с Language Server Protocol (LSP) предоставляет ИИ доступ к определениям и ссылкам на символы в коде.

Использование SQLite обеспечивает целостность транзакций и удобное хранение истории сообщений в одном файле. Агенты переключаются клавишей Tab, при этом каждый имеет свои правила безопасности. Поддержка MCP реализована в полном объеме, включая транспорт stdio и HTTP с аутентификацией OAuth.

Инновации в архитектуре Pi и управление сессиями

  • Собственная библиотека Pi-AI обеспечивает поддержку более 30 провайдеров LLM без зависимости от Vercel SDK.
  • Управление диалогами в формате JSONL позволяет строить древовидные структуры и ветвить историю команд.
  • Рендеринг терминала выполняется через пакет pi2e с использованием протокола CSI 2026 для обновлений без мерцания.

Формат JSONL позволяет использовать стандартные утилиты Unix, такие как grep и cat, для изучения истории. Система расширений на TypeScript загружается напрямую через jiti без компиляции, давая доступ к ядру агента. Инструменты включают семь базовых функций, таких как READ и bash, с поддержкой песочницы Docker.

Прямое сравнение и критерии выбора

  • Open Code выигрывает в безопасности благодаря встроенной гранулярной системе разрешений для файлов и команд.
  • Pi превосходит конкурента в гибкости интерфейса управления сессиями и возможности глубокой кастомизации поведения.
  • Для работы со строго типизированными языками Open Code является более эффективным выбором из-за встроенного LSP.

Выбор зависит от предпочтений в настройке рабочего окружения. Open Code подходит тем, кому нужен функционал Claude Code в открытом исполнении с минимальными затратами на настройку. Pi ориентирован на опытных пользователей, предпочитающих Unix-философию и полный контроль над каждым аспектом работы ИИ-агента.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video