Почему AI‑агенты могут продолжать «носить» ваш API‑ключ в каждом запросе

Разработчики AI‑агентов часто передают системе API‑ключ в самом начале работы и считают задачу закрытой после выполнения запроса. На практике ключ может остаться в истории диалога и автоматически отправляться вместе с каждым следующим обращением модели. Как пишет Towards AI, при каждом вызове агент фактически пересылает модели весь накопленный текст взаимодействия: первое сообщение пользователя, ответы модели, вызовы инструментов и полученные результаты. Всё это уходит одним блоком контекста.
Причина проста. Модель не хранит память в привычном смысле, поэтому фреймворк каждый раз заново передаёт ей всю историю разговора. Если ранее в диалоге появился API‑ключ, он продолжает переходить из запроса в запрос, пока его явно не удалят. Такой контекст напоминает блокнот с ограниченным числом страниц. По мере работы агента он заполняется новыми данными: результатами инструментов, содержимым файлов, промежуточными рассуждениями.
Проблемы становятся заметны в длинных сессиях. Например, при задаче рефакторинга Python‑проекта с использованием нового API, где задействовано двадцать файлов или больше, первые пятнадцать минут всё может идти нормально. Но примерно к двадцатому вызову инструмента агент начинает ссылаться на уже переименованные функции, импортировать удалённые модули или повторять изменения, которые уже были внесены. Дело не в том, что модель внезапно работает хуже. Контекст переполняется, полезные данные смешиваются с устаревшими.
Для решения предлагают два уровня middleware в LangChain. Первый убирает чувствительные данные, например секреты. Второй сжимает информацию, которая больше не нужна в полном виде. Те же подходы используются в Claude Code от Anthropic. Благодаря этому агент может работать до двух часов, взаимодействовать с сорока пятью файлами и при этом сохранять согласованность контекста.
Ключевые факты
В агентных системах весь текст диалога отправляется модели заново при каждом вызове, поэтому API key, переданный в первом сообщении, продолжает автоматически передаваться в последующих запросах, если его явно не удалить.
Контекстное окно действует как «блокнот» с ограниченным числом страниц: по мере работы агента туда добавляются ответы модели, вызовы инструментов и их результаты.
В статье описаны два middleware‑слоя для LangChain: один сжимает информацию, которая больше не нужна модели в полном виде, другой удаляет данные, которые не должны сохраняться, включая секреты.
Использование этих техник позволяет агенту работать до двух часов и взаимодействовать с сорока пятью файлами, сохраняя согласованность, как это реализовано в Claude Code от Anthropic.