Об этом проекте
dejavu-gates — это слой памяти между сессиями для ИИ-агентов программирования. Агенты повторяют одни и те же ошибки, потому что забывают между сессиями, и правила в markdown этого не исправляют. Этот инструмент механически обнаруживает повторяющиеся сбои вызовов инструментов (bash, read, edit, write, glob, grep) и превращает их в принудительные шлюзы: напоминание при следующей попытке, жёсткая блокировка при повторном нарушении в той же сессии.
Один движок, множество хостов. Он работает как плагин OpenCode и как CLI-обработчик хуков для Claude Code, Codex CLI, Gemini CLI, Cursor, Copilot CLI и Crush. Написан на TypeScript и запускается с помощью Bun, поставляется в виде исходного кода без этапа сборки.
Как это работает: неудачный вызов инструмента получает нормализованную сигнатуру (пути, числа и хеши удаляются), ключ шаблона подсчитывается между сессиями, и после 3 сбоев в 2 разных сессиях шлюз повышается. Следующая попытка получает напоминание [dejavu] с прерванным вызовом; повторная попытка, которая снова завершается неудачей, вызывает жёсткую блокировку. Диагностические команды остаются только с напоминанием, поэтому вызов выполняется, а напоминание добавляется к выводу сбоя как NOTE один раз за сессию.
Среди проектных решений: сначала напоминание и блокировка только при повторе (чистая блокировка провоцирует обходные пути, такие как смена менеджеров пакетов); сообщения шлюзов содержат CORRECTION и EVIDENCE, а не голый запрет; только механические ключи шаблонов, без классификации LLM на горячем пути; две области — шлюзы для конкретного репозитория в репозитории и привычки уровня агента в пользовательской конфигурации; шлюзы истекают через 60 дней без повторения; и метрика повторения после шлюза для проверки того, действительно ли шлюзы уменьшают повторы.
Принуждение имеет отрицательную обратную связь. Шлюз, который продолжает повторяться или который постоянно явно обходят, понижает себя до наблюдения и не повышается механически снова; человек может снова его усилить. Шлюзы также исцеляются: три последовательных успеха, соответствующих принудительному шлюзу, переводят его в наблюдение, а шлюз, о котором напоминали много раз без повторного нарушения, выводится как усвоенный.
Детали безопасности и надёжности: только недиагностические команды bash могут становиться блокирующими шлюзами; файловые пробы остаются в наблюдении; сигнатуры без остаточной идентичности могут только наблюдать; CLI-хук отказывает в открытую сторону, возвращая пустое решение и код выхода 0 при некорректных полезных нагрузках или внутренних ошибках. Секреты вычищаются перед сохранением, управляющие символы терминала удаляются, а хранилища согласовываются и восстанавливаются при инициализации с помещением повреждённых файлов в карантин. Конкурентность использует lock-файлы с записью tmp+rename и повтором при ошибках Windows, а цепочка эскалации от напоминания к блокировке сохраняется в шлюзе, чтобы несколько окон и обвязок делили её.
Установка доступна через npx, нативные каналы плагинов для нескольких обвязок, GitHub Packages или из клона с помощью скрипта установки, который идемпотентно вливает записи хуков в конфигурацию каждой обвязки. Наблюдаемость включает скрипт doctor, скрипт analyze, команду /dejavu status и переменную окружения для отладки.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.