Перейти к содержимому

pi (pi.dev)

pi — открытый (лицензия MIT) кодинг-агент, созданный Марио Цехнером (Mario Zechner, известным под ником badlogic, автором игрового движка libGDX). Первая версия вышла в 2025 году; сейчас проект развивается в компании Earendil, репозиторий переехал с badlogic/pi-mono на github.com/earendil-works/pi. Написан на TypeScript, работает в терминале: интерактивный TUI-интерфейс плюс режимы для скриптов и встраивания (вывод в JSON, RPC, SDK).

pi построен вокруг определённой философии. Большинство харнесов (agent harness) движутся в сторону «комбайна»: всё больше встроенных функций, всё длиннее системный промпт. pi идёт в обратную сторону: маленькое прозрачное ядро по принципу «примитивы вместо функций». В ядре только цикл агента, минимальный системный промпт и несколько базовых инструментов; всё остальное вы при необходимости добавляете сами через расширения. Это делает pi, пожалуй, лучшим инструментом для того, чтобы понять, как харнесы устроены изнутри: устройство агента здесь видно целиком, без слоёв «магии».

Встроенных инструментов всего несколько: чтение, запись и редактирование файлов плюс запуск shell-команд. Этого достаточно, ведь через shell агент может делать почти всё: искать по коду, запускать тесты, работать с git. Показательный факт: у pi один из самых коротких системных промптов среди заметных кодинг-агентов.

Всё, чего нет в ядре, добавляется двумя механизмами:

  • Скилы поддерживаются нативно: упакованные инструкции, которые агент подгружает по запросу задачи, не расходуя контекст впустую.
  • Расширения (extensions) — модули на TypeScript, которые могут добавлять инструменты, команды, реакции на события и элементы интерфейса. В комплекте идут десятки примеров: субагенты, режим планирования, подтверждение действий, запуск по SSH, песочницы. Расширения и скилы распространяются пакетами.

Важно понимать: MCP, субагенты, режим планирования и система разрешений в ядро не встроены: это осознанное решение автора. Всё это реализуемо (и реализовано) как расширения, но по умолчанию их нет.

  • Роль памяти проекта играет стандартный AGENTS.md; кроме того, файлом SYSTEM.md можно полностью заменить системный промпт, редкая для харнесов возможность.
  • Контекст под полным контролем пользователя: автоматическое сжатие истории с настраиваемой логикой, ветвящиеся сессии в виде дерева (можно откатиться к развилке и попробовать другой путь), смена модели посреди сессии командой /model. Это практическое воплощение идей со страницы «Контекст-инжиниринг».

pi мультипровайдерный: поддерживается более полутора десятков провайдеров (Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, xAI, локальные модели через Ollama и llama.cpp), суммарно сотни моделей. Авторизоваться можно через /login для подписочных провайдеров или через API-ключи в переменных окружения (например, ANTHROPIC_API_KEY). Сам pi бесплатен; вы платите только провайдеру модели.

Сильные стороны:

  • Прозрачность: кодовая база маленькая, поведение агента полностью объяснимо, видно, что именно попадает в контекст и почему.
  • Хакабельность: любое поведение можно изменить расширением на TypeScript, вплоть до замены системного промпта.
  • Свобода выбора модели и мгновенное переключение между провайдерами.
  • Дерево сессий и явное управление контекстом, удобные для экспериментов.

Ограничения:

  • «Батарейки не в комплекте»: MCP, субагенты, подтверждение действий нужно подключать самому. Порог входа для нетехнического пользователя выше, чем у готовых харнесов.
  • Нет встроенной системы разрешений и песочницы: по умолчанию агент делает с файлами и командами всё, что может ваш пользователь ОС. Автор прямо рекомендует запускать pi в контейнере для изоляции.
  • Проект держится на небольшой команде; экосистема меньше, чем у крупных харнесов.
  • Инженерам, которым важно понимать и контролировать каждый слой инструмента, а не доверять «чёрному ящику».
  • Тем, кто хочет глубоко разобраться, как устроены харнесы как класс: изучение pi заменяет чтение большой кодовой базы фирменного агента.
  • Тем, кто собирает собственные агентные пайплайны: режимы RPC и SDK позволяют встроить pi в свои системы.
  • Вряд ли подойдёт как первый агент менеджеру или аналитику: для старта удобнее готовые инструменты вроде Claude Code или Codex.

Установка (любой из вариантов):

curl -fsSL https://pi.dev/install.sh | sh
npm install -g --ignore-scripts @earendil-works/pi-coding-agent

Первый запуск делается из папки проекта:

pi

Авторизуйтесь командой /login (для подписочных провайдеров) или заранее задайте API-ключ в переменной окружения. Дальше идёт обычный диалог с агентом; начните с просьбы описать структуру проекта.

  • Cursor: противоположный полюс: агент, встроенный в полноценный редактор кода.
  • Харнес: вернуться к теории после знакомства с самым «прозрачным» её воплощением.

Автор учебника — Шахматов Алексей