К содержанию
Новости

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

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

Разработчики AI‑агентов часто передают системе API‑ключ в самом начале работы и считают задачу закрытой после выполнения запроса. На практике ключ может остаться в истории диалога и автоматически отправляться вместе с каждым следующим обращением модели. Как пишет Towards AI, при каждом вызове агент фактически пересылает модели весь накопленный текст взаимодействия: первое сообщение пользователя, ответы модели, вызовы инструментов и полученные результаты. Всё это уходит одним блоком контекста.

Причина проста. Модель не хранит память в привычном смысле, поэтому фреймворк каждый раз заново передаёт ей всю историю разговора. Если ранее в диалоге появился API‑ключ, он продолжает переходить из запроса в запрос, пока его явно не удалят. Такой контекст напоминает блокнот с ограниченным числом страниц. По мере работы агента он заполняется новыми данными: результатами инструментов, содержимым файлов, промежуточными рассуждениями.

Проблемы становятся заметны в длинных сессиях. Например, при задаче рефакторинга Python‑проекта с использованием нового API, где задействовано двадцать файлов или больше, первые пятнадцать минут всё может идти нормально. Но примерно к двадцатому вызову инструмента агент начинает ссылаться на уже переименованные функции, импортировать удалённые модули или повторять изменения, которые уже были внесены. Дело не в том, что модель внезапно работает хуже. Контекст переполняется, полезные данные смешиваются с устаревшими.

Для решения предлагают два уровня middleware в LangChain. Первый убирает чувствительные данные, например секреты. Второй сжимает информацию, которая больше не нужна в полном виде. Те же подходы используются в Claude Code от Anthropic. Благодаря этому агент может работать до двух часов, взаимодействовать с сорока пятью файлами и при этом сохранять согласованность контекста.

Ключевые факты

  • В агентных системах весь текст диалога отправляется модели заново при каждом вызове, поэтому API key, переданный в первом сообщении, продолжает автоматически передаваться в последующих запросах, если его явно не удалить.

  • Контекстное окно действует как «блокнот» с ограниченным числом страниц: по мере работы агента туда добавляются ответы модели, вызовы инструментов и их результаты.

  • В статье описаны два middleware‑слоя для LangChain: один сжимает информацию, которая больше не нужна модели в полном виде, другой удаляет данные, которые не должны сохраняться, включая секреты.

  • Использование этих техник позволяет агенту работать до двух часов и взаимодействовать с сорока пятью файлами, сохраняя согласованность, как это реализовано в Claude Code от Anthropic.