Почему AI-кодер постоянно забывает контекст твоего проекта и как это исправить
Почему AI-агент забывает контекст проекта и как это исправить
Все сталкивались с этой ситуацией. Работать с AI-помощником над долгим проектом — значит постоянно объяснять ему заново, что уже было сделано. Первый день — всё идёт гладко. На второй день в новом чате агент уже ничего не помнит. К четвёртому дню приходится рыться в огромных логах разговоров, чтобы понять, что же было решено раньше.
Проблема не в размере контекста. Проблема в том, что состояние проекта хранится в чате, а не там, где ему место.
Почему чат плохо подходит для хранения знаний
Чат отлично подходит для общения. Но он не предназначен для хранения информации о проекте.
Решения теряются в потоке сообщений. Нет единого источника правды — непонятно, какая версия API-спецификации актуальна. Каждый новый агент начинает с нуля. А если в разных сессиях принимаются противоречивые решения, никто этого не отслеживает.
В итоге агент не может понять, что именно вы строите и зачем.
Решение — хранить состояние в репозитории
Вместо чата можно хранить информацию о проекте так же, как и код: в виде файлов в репозитории. Простые Markdown-файлы с минимальной структурой.
Пример такого файла:
# Project Architecture Decision
Lifecycle: active
Role: spec
Project: payment-service
Updated: 2024-01-15
Related:
- implements: charter-payment-api
- pairs-with: implementation-log-payment-core
## Overview
Используем Stripe API напрямую, а не через обёртку, потому что...
## Key Decisions
- Idempotency keys для всех операций
- Асинхронная обработка webhook'ов с exponential backoff
- PII не хранится локально
## Open Questions
- Нужно ли кэшировать состояние rate limit?
Здесь нет ничего сложного. Только заголовок, метаданные, роль файла и связи с другими записями.
Что даёт такой подход
CLI-инструмент может создавать записи, архивировать их, проверять связи и автоматически обновлять индекс. Всё хранится в репозитории и версионируется вместе с кодом.
Агент больше не должен «вспоминать» контекст из чата. Он может выполнить команду и получить нужную информацию:
docs list --project=payment-service --role=spec
docs check
Как это работает на практике
Новый агент подключается к проекту. Вместо того чтобы просить его прочитать всю историю чата, ему дают простую команду — docs list. Он видит, какие задачи активны, какие завершены, и что нужно делать дальше.
Чат при этом можно закрыть. Состояние проекта живёт в репозитории.
Кому это будет полезно
Такой подход помогает, если вы:
- Долго работаете с AI-агентами над одним проектом
- Запускаете несколько агентов параллельно
- Хотите, чтобы CI/CD проверял целостность проекта
- Работаете в команде и нужно общее понимание текущего состояния
- Часто меняете спецификацию и теряете актуальную версию
Это не замена Git или тестам. Это слой, который делает работу с AI coherent во времени.
Почему это работает
Всё построено на знакомых инструментах: Markdown, Git, CLI. Никаких новых баз данных. Если агент случайно нарушит связь между записями — валидация это заметит. Если пропустит архивированную задачу — команда list её покажет.
Простое решение, но именно оно позволяет агенту не просто писать код, а понимать проект и доводить его до конца.