Долгие запуски ИИ-агентов накапливают состояние, которое не отражается в транскрипте диалога. Кодинг-агент на десятом шаге держит изменённые файлы, запущенный 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