SoL-Pi: расширение для Pi с четырьмя механизмами экономии токенов

· 2 мин чтения
token-efficiency coding-agents context-management nvidia pi-agent
📂 Исходный код на GitHub

Автономное расширение для Pi с четырьмя механизмами эффективности агентного harness: слитие действий, упаковка наблюдений, reducer, сохраняющий доказательства, и компактация контекста.

SoL-Pi: расширение для Pi с четырьмя механизмами экономии токенов

SoL-Pi: четыре механизма экономии токенов для агентного harness

SoL-Pi — автономное расширение для coding-агента Pi от NVIDIA Labs. Его главный тезис: тратить меньше, не заставляя агента делать меньше полезной работы. Расширение упаковывает четыре переиспользуемых механизма эффективности, найденных в ходе масштабированных auto-research циклов: оно сокращает повторные ходы модели, повторный проигрыш контекста, чрезмерно большие observation'ы и ненужное чтение длинных логов — сохраняя при этом работу и доказательства, которые агенту нужны для завершения задачи.

SoL-Pi ставится поверх немодифицированного релиза Pi. Каждый механизм включается явно (opt-in) и по умолчанию выключен. Репозиторий — неофициальная дистрибуция Pi, а именно расширение, работающее через его публичные extension API. Лицензия — MIT.

Проблема: harness тратит лишнее

Долгоживущие coding-агенты накапливают повторную работу. Правка файла часто сопровождается предсказуемой командой валидации — и это отдельный ход модели. Крупные результаты инструментов проигрываются задолго после первого использования. Завершённые подзадачи остаются в активном контексте, а frontier-модель может тратить полный запрос на чтение лога, когда для следующего решения важны лишь несколько строк.

Из auto-research работы вырос вопрос: прежде чем масштабировать циклы агента, можно ли сначала сделать сам harness эффективнее? Поиск шёл в рамках constrained efficiency — сокращать token-трафик, объём инференса и ходы агента, не останавливая выполнение досрочно, не пропуская верификацию и не пряча доказательства.

В открытый релиз попали четыре механизма, пережившие этот отбор. Они работают в разных частях harness и композируются через публичные extension API Pi.

Четыре механизма

Область Механизм Что меняется
Инструменты Action Fusion Правка или запись файла может выполнить команду проверки в том же tool call.
Наблюдения ObservationPack Повторно используемые крупные текстовые результаты превращаются в стабильные handle'ы с точным постраничным recall.
Делегирование Evidence-Preserving Reducer Длинные диагностические логи превращаются в компактные receipt'ы только если каждая сохранённая цитата совпадает с заархивированным источником.
Контекст Online Context Compact Завершённые шаги плана становятся кандидатами для нативной компактации Pi — после успешной компактации Pi продолжает задачу в новом turn.

Все четыре механизма следуют общим правилам:

  • Без патчей Pi. SoL-Pi импортирует только публичные API и не вендорит исходники Pi.
  • Явный opt-in. Если конфигурация отсутствует, каждый механизм остаётся выключенным.
  • Сохранение доказательств. Оригинальные observation'ы остаются доступными локально; при сбое reducer исходный результат не меняется.
  • Runtime-выборы Pi. Аутентификация, URL провайдеров, основная модель и поведение shell остаются под контролем Pi.

Установка и конфигурация

Требования: Node.js 22.19+, npm и @earendil-works/pi-coding-agent версии 0.85.1 (тестированная версия).

npm install --global @earendil-works/pi-coding-agent@0.85.1
pi install git:github.com/NVlabs/SoL-Pi

Для установки только в текущий проект:

pi install git:github.com/NVlabs/SoL-Pi --local --approve

SoL-Pi использует единую effective-конфигурацию из файла sol-pi.json. Стандартный дистрибутив Pi ищет его в следующем порядке:

  1. .pi/sol-pi.json в текущем проекте — если проект доверенный и файл существует;
  2. ~/.pi/agent/sol-pi.json — иначе.

Если ни одного файла нет, действуют встроенные дефолты. Проектный конфиг приоритетнее пользовательского; два файла не объединяются. Отдельных environment variables нет — feature flags, маршрут reducer-модели и коэффициент компактации задаются в sol-pi.json. Шаблон со всеми ключами — sol-pi.example.json, полная схема — в docs/configuration.md.

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

{
  "version": 1,
  "actionFusion": true,
  "observationPack": true,
  "evidencePreservingReducer": false,
  "onlineContextCompact": false,
  "cacheWriteReadRatio": 12.5
}

Остальные механизмы стоит включать только после изучения их конфигурации и security-implications.

Хранилище и безопасность

ObservationPack и Evidence-Preserving Reducer складывают session-специфичные архивы в:

<session-directory>/sol-pi/<session-id>/
├── observation-pack/
└── evidence-preserving-reducer/

Архивы остаются локальными и не удаляются автоматически при завершении сессии Pi. Online Context Compact хранит состояние в session log Pi: после успешной компактации запускается новый turn и задача продолжается автоматически; отмена запуска или выход из Pi такого continuation не вызывает.

Evidence-Preserving Reducer может отправлять подходящее содержимое диагностических логов в настроенную reducer-модель через аутентификацию Pi. Перед включением стоит изучить SECURITY.md; логи, которые обязаны остаться локальными, в remote reduction включать не следует.

Документация и разработка

Документ Назначение
Configuration Порядок поиска конфига, схема, дефолты, trust-поведение
Compatibility Поддерживаемые Pi API и детали интеграции
Security Локальное хранилище, remote reduction, чувствительное поведение
Agent installation Воспроизводимая установка и проверка all-enabled конфигурации

Для разработки:

npm ci --ignore-scripts
npm run check
npm audit --audit-level=high
node scripts/check-pi-compat.mjs

npm run check покрывает TypeScript, полный test suite и проверку пакета. Dev-зависимости привязаны к Pi 0.85.1; runtime-пакеты Pi остаются peer dependencies — их установкой и обновлением владеет сам Pi.

Статус проекта

SoL-Pi разрабатывается и поддерживается NVIDIA как автономное расширение для Pi. Принимаются протестированные, совместимые с Pi PR'ы, улучшающие token-эффективность: команда помогает с benchmark'ом вкладов, публикует результаты по регулярному reporting-циклу и указывает авторов принятых PR' как Contributors — детали в CONTRIBUTING.md.

Более подробный разбор технических деталей и design rationale — в блоге SoL-Pi; научная работа — SoL-Pi: Recursively Scaling Auto-Research Loops for Efficient Agent Harness.

Для кого это

SoL-Pi ориентирован на тех, кто уже использует Pi и хочет снизить расход токенов без смены агента и без отказа от проверок. Механизмы затрагивают типовые узкие места длинных coding-сессий: лишние хода на рутинную валидацию, повторную загрузку больших observation'ов, переполнение контекста завершёнными шагами и чтение многотысячных логов целиком. Так как всё выключено по умолчанию, расширение можно поставить заранее и включать механизмы по одному — начиная с локальных Action Fusion и ObservationPack, а remote-механизмы (Evidence-Preserving Reducer и Online Context Compact) подключая после проверки конфигурации и security-implications. Репозиторий принимает совместимые PR'ы по повышению token-эффективности, так что набор механизмов может расти сообществом.

Источник: https://github.com/NVlabs/SoL-Pi