Shepherd: Python-рантайм для форка и отката любых агентных запусков

Долгие запуски ИИ-агентов накапливают состояние, которое не отражается в транскрипте диалога. Кодинг-агент на десятом шаге держит изменённые файлы, запущенный dev-сервер, установленные пакеты и тёплый кэш промптов. Когда он неверно интерпретирует traceback и переписывает файл, который был уже правильным, оба доступных пути восстановления дороги: продолжать с текущего состояния — значит раздувать контекст и счёт за токены, а перезапуск с первого шага повторно оплачивает каждый вызов модели и инструмента, при этом точного воспроизведения не будет из-за недетерминированности. Откат к шагу восемь — то, что инженеры хотят на самом деле, и то, что существующие рантаймы не умеют. Git версионирует файлы, но не живой процесс и не кэш.

Исследователи из Northeastern University и Stanford University выпустили Shepherd — Python-рантайм, который записывает запуск агента как Git-подобный трейс типизированных событий, так что любое прошлое состояние можно форкнуть и воспроизвести. По данным исследовательской группы, форки выполняются в 5 раз быстрее, чем в Docker, а при воспроизведении повторно используется более 95% кэша промптов. Подобные подходы к управлению состоянием агентов развиваются и в других проектах, например, в AgentENV от Kimi AI, где среда изолируется в Firecracker microVM.

Что такое Shepherd

Shepherd — это Python-субстрат, который делает исполнение агента первоклассным объектом. Каждое взаимодействие агента со средой становится типизированным событием в Git-подобном трейсе. Базовые операции формализованы как функции и механизированы в Lean.

Каждое взаимодействие — это, по сути, коммит. В отличие от Git, коммит покрывает вместе процесс агента и файловую систему, используя copy-on-write. Ветка несёт живое состояние, а не только файлы. Возврат к более ранней точке — это один форк от нужного коммита.

Установка и требования

Shepherd доступен в ранней альфа-версии и пока не готов к продакшену. Код распространяется под лицензией MIT и устанавливается командой pip install shepherd-ai из PyPI. Требуется Python 3.11+. Принудительное применение разрешений на уровне ОС работает на macOS (Seatbelt) и Linux (Landlock, в привилегированном контейнере).

Документация организует фреймворк вокруг четырёх концепций: tasks, effects, runs и workspaces. Task — типизированная функция, тело которой заполняет модель; сигнатура — контракт. Effect — каждое пересечение границы задачи, которое можно наблюдать, отвечать на него или отказывать. Run — долговременная запись этих пересечений.

Мета-агенты поверх форков

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

  • Вмешательство в рантайме: живой супервизор поднял сквозной проход парного программирования на CooperBench с 28.8% до 54.7%.
  • Контрфактическая мета-оптимизация: исследование ветвлений обошло базовые линии на четырёх бенчмарках на величину до 11 пунктов, сократив при этом wall-clock время на величину до 58%.
  • Tree-RL обучение: форк rollout-ов на выбранных шагах улучшил результат TerminalBench-2 с 34.2% до 39.4%.

Подобные техники контроля и восстановления используются и в других системах, таких как code-testing-generator от Microsoft, где агент пишет и проверяет юнит-тесты, минимизируя ошибки без полного перезапуска.

Разрешения в сигнатуре

Права объявляются в сигнатуре. Привязка May[GitRepo, ReadOnly] компилируется в корни записи для этого запуска и применяется на уровне системных вызовов в нативной песочнице.

Кому это нужно

Сферы применения — разработка ПО и DevOps, ИИ-инфраструктура и платформы агентов, количественные финансовые исследования, инструменты безопасности, data engineering. Общий признак — не отрасль, а длинные запуски агентов с тяжёлым состоянием песочницы, где повторный запуск после сбоя обходится дорого.

Частые вопросы

Можно ли использовать Shepherd в продакшене?

Нет, проект находится в ранней альфа-версии и не готов к продакшену. Следует дождаться стабильных релизов.

Как установить Shepherd?

Установка выполняется через pip: pip install shepherd-ai. Требуется Python 3.11 или новее.

Чем Shepherd отличается от Git?

Git версионирует только файлы, а Shepherd записывает состояние процесса и файловой системы вместе, как единый коммит с copy-on-write. Откат в Shepherd восстанавливает живое состояние, а не просто файлы.

На каких операционных системах работает песочница?

Принудительное применение прав работает на macOS через Seatbelt и на Linux через Landlock в привилегированном контейнере.

Насколько быстрее форки в Shepherd по сравнению с Docker?

По данным исследователей, форк процесса агента и файловой системы выполняется в 5 раз быстрее, чем в Docker.

Что такое кэш промптов и почему важна его переиспользуемость?

Кэш промптов — это механизм, позволяющий не пересчитывать повторяющийся префикс промпта при вызовах LLM. Shepherd достигает более 95% переиспользования кэша при воспроизведении, что заметно экономит время и токены.

Какие сценарии использования демонстрировали исследователи?

Три сценария: живой супервизор для кодинг-агентов, контрфактическая мета-оптимизация для сравнения стратегий и Tree-RL обучение с форком rollout-ов на выбранных шагах.

Как объявляются разрешения в Shepherd?

Права объявляются в сигнатуре задачи, например May[GitRepo, ReadOnly]. Компилятор превращает это в список корней записи, которые применяются на уровне системных вызовов.

Источник: marktechpost.com