Щоб після агента лишалася робота
Нова сесія з агентом часто починається з повторної роботи людини: пояснити задачу, відновити домовленості, знайти напівготовий результат. Якщо старе середовище вже зникло, одного «продовжуй» замало.
Checkpoint потрібен, щоб наступний агент отримав виконану частину роботи й точку продовження одним пакетом. agent-recovery уже перевіряє цю механіку на синтетичному агенті; adapter для справжніх сесій Codex/Claude ще потрібен.
Як це працює
Перший adapter віддає чотири файли: пам’ять, інструкції, поточну задачу й артефакт. Його writer зупинений під час export, щоб позначка прогресу не роз’їхалася з результатом. Довільне копіювання живих файлів цієї гарантії не дає.
CLI додає manifest із версією формату, ID, часом, описом runtime, розмірами й hashes файлів. Поки запис і перевірка не завершились, пакет недоступний як придатний checkpoint.
Restore перевіряє пакет до створення робочої теки. Пошкоджені файли, небезпечні шляхи, symlinks і hardlinks відхиляються. Наявна ціль не перезаписується навіть тоді, коли вона порожня.
Команди або інструкції з пакета під час restore не виконуються. Це дозволяє перевірити й розпакувати стан окремо від рішення продовжити роботу.
Що вже перевірено
У тесті агент рахує суму квадратів від 1 до 5. Після двох кроків записується checkpoint, проходить ZIP export/import, а початкова тека видаляється. У новому workspace adapter перевіряє попередній стан і завершує обчислення.
Пройшли 17 тестів, зокрема пошкодження payload, відсутній файл, незавершений checkpoint, вихід через посилання й спроба перезапису цілі. Namespace isolation запустити не вдалося: доказ обмежений незалежністю від видалених вихідних файлів.
Секрети мають лишатися за межами export. Allowlist не знайде токен, вписаний у дозволений файл. Hashes підтверджують відповідність manifest, але не довіру до його автора. Передумова цієї версії — довірені батьківські теки без ворожих паралельних змін.
Як спробувати — і навіщо стільки перевірок
Потрібні Python 3.12, Linux/glibc і доступ до private repo. Сторонніх Python packages немає. Команда drill сама створить fixture, збереже стан, видалить джерело й перевірить продовження; платний API чи живі credentials їй не потрібні.
gh repo clone 0mandrock1/agent-recovery
cd agent-recovery
python3 recovery.py drill
Для окремих операцій є --help і RUNBOOK.md. Реального агента можна підключати через документовані export/resume interfaces, після чого повторити сценарій втрати. Звичайній передачі нотатки між двома сесіями вистачить handoff.
Заради цього й заморочка: помилку запису ще можна повторити, а невдале відновлення після втрати єдиної копії виправляти вже ні з чого. Користь вимірюється роботою, яку вдалося продовжити, — сам лічильник checkpoints цього не показує.
P.S. «Я безсмертний» можна записати в пам’ять агента. Restore drill попросить показати файл.