AITM хранит довольно много состояния локально, чтобы работать надёжно и помнить то, что он узнал о проектах. Ниже простым языком описано, что хранится и почему это важно.

Какие данные хранит AITM

Карта данных

Что этоГде находитсяПочему это важно
База данных проектаОтдельный файл базы данных для каждого управляемого проектаСодержит контракты и историю Task этого проекта — хранится отдельно для каждого проекта, поэтому данные одного проекта никогда не смешиваются с данными другого
Глобальная база данныхОдна общая база данных самого AITMСодержит настройки всего приложения, подсказки, реестр переменных и другую конфигурацию, общую для проектов
Журналы выполнения TaskПапки журналов по проектамПодробная построчная запись происходившего во время выполнения Task — полезна для отладки Task, которая вела себя неожиданно
Папки данных TaskПапки Task по проектам, по одной вложенной папке на номер TaskСодержат файлы результатов Task, метаданные и все снимки экрана, сделанные для неё — на этом основано представление Результаты и Archive
WorktreesВременные checkout-копии Git, по одной на каждую выполняющуюся TaskИзолированная рабочая копия, которую фактически редактируют ИИ-агенты Task; создаётся при запуске Task и автоматически удаляется после слияния — см. Pipeline
Документы графа знанийАвтоматически создаваемые файлы документацииЧитаемые человеком выгрузки контрактов и знаний о зависимостях, описанных в разделе Обмен знаниями; автоматически пересоздаются после каждого слияния

Почему важно локальное сохраняемое состояние

Всё это — не случайный побочный учёт, а механизм, лежащий в основе всего, что рассматривается в других разделах этого руководства:

  • База данных проекта позволяет контрактам, истории Task и поиску прецедентов сохраняться между сеансами и между Task, а не сбрасываться при каждом закрытии приложения.
  • Папки данных Task делают Archive по-настоящему полезным журналом аудита, а не списком названий — каждый результат, снимок экрана и поле метаданных, которые там видны, считываются непосредственно из этих папок.
  • Worktrees — это механическая основа гарантии изоляции, описанной в разделе Pipeline: поскольку каждая Task получает действительно отдельную файловую копию, незавершённая работа никогда не может случайно попасть в основную ветку.
  • Документы графа знаний превращают "ИИ случайно что-то запомнил" в "у проекта есть долговременная, доступная для изучения запись его собственного поведения" — см. Обмен знаниями.

Как резервные копии баз данных защищены от неограниченного роста и тихой потери данных

Резервным копиям баз данных нужна собственная защита — иначе они могут либо заполнить диск, либо незаметно исчезнуть именно тогда, когда нужны больше всего. AITM хранит их по многоуровневой политике хранения и следит за их размером на предмет аномалий:

  • Многоуровневое хранение — вместо одного жёсткого порога, который разом удаляет все резервные копии баз данных старше N дней (что могло бы уничтожить все копии за один раз, если пропущен один ежедневный запуск), AITM прореживает копии постепенно: оставляет несколько самых свежих ежедневных копий, несколько более старых копий с интервалом в несколько дней и одну ещё более старую еженедельную копию. В результате остаётся небольшой, но распределённый по времени набор точек восстановления, а объём хранилища резервных копий не растёт без ограничений.
  • Оповещения об аномалиях размера — перед любой очисткой AITM сравнивает размер сегодняшней резервной копии базы данных со вчерашним. Значительное уменьшение (возможная потеря данных) или значительный неожиданный рост вызывает оповещение по электронной почте с указанием предыдущего размера, текущего размера и процентного изменения, так что об аномалии становится известно до того, как старая, здоровая копия была бы перезаписана или удалена.
  • Проверяемая очистка инкрементальных (дельта) копий — инкрементальные резервные копии для восстановления старше 3 дней удаляются на постоянной основе, но только после того, как самая новая из сохраняемых копий в этой цепочке проверена на целостность. Если проверка не пройдена, очистка для этой базы данных прекращается, и ничего более старого не удаляется — так что одна повреждённая новейшая копия никогда не приведёт к каскадному удалению более старых, ещё исправных копий под ней.

Советы

  • Код проекта никогда не изменяется вне Worktree — обычная рабочая копия остаётся нетронутой, пока выполняется Task.
  • С компьютера ничего не отправляется наружу, кроме вызовов настроенного ИИ-провайдера.
  • Эти локальные сохраняемые знания позволяют AITM со временем лучше работать с проектом, а не начинать с нуля в каждой Task.