Когда мы просим ИИ-агента «не смотреть» на определённые файлы или «не трогать» секретные строки, это остаётся лишь просьбой. Модель может проигнорировать инструкцию, а в случае утечки промпта — раскрыть то, что вы хотели скрыть. Надёжнее работает другой подход: ограничение доступа реализуется на уровне инструмента, который формирует запрос к модели. Именно так устроен открытый настольный редактор кода aiedit на Python (PySide6/PyQt6): ИИ-модели работают со всем проектом, но закрытые части в запрос просто не попадают. Причём проверка изоляции выполняется кодом редактора, а не уговорами в промпте.
В чём проблема промпт-ограничений
Промпт — это текст, который модель интерпретирует. Даже если вы напишете «не читай файл secrets.env», модель может его прочитать, если он попадёт в контекст. Более того, современные агенты часто сами решают, какие файлы открыть, и ваша инструкция может быть проигнорирована. В итоге конфиденциальные данные (ключи, персональные данные, внутренние алгоритмы) утекают в запрос к внешнему API. Промпт-ограничения не дают гарантий, потому что не являются техническим барьером.
Другой риск — случайное раскрытие в ответе модели. Даже если файл не был явно передан, агент может «вспомнить» содержимое из предыдущих сессий или из истории чата. Поэтому единственный надёжный способ — исключить закрытые данные из запроса на этапе формирования.
Как работает техническая изоляция в aiedit
В aiedit можно закрыть не только целый файл, но и отдельные строки. Редактор помечает их как приватные, и при сборке контекста для ИИ-модели эти фрагменты не включаются в запрос. Важно, что проверка выполняется кодом редактора: перед отправкой запроса он анализирует, какие части проекта разрешены, и формирует контекст только из них. Никакие просьбы в промпте не участвуют в этом процессе.
Такой подход даёт предсказуемость: если строка закрыта, она не попадёт в запрос ни при каких обстоятельствах, даже если модель попросит её показать. Это не защита от всех утечек (например, если вы сами скопируете код в чат), но для автоматизированных агентов это серьёзный барьер.
- Закрытие файла целиком — удобно для конфигураций, ключей, внутренних документов.
- Закрытие отдельных строк — подходит, когда нужно скрыть лишь часть реализации, например, алгоритм или параметры.
- Проверка кодом — редактор сам решает, что отправить, а что нет, без участия модели.
Как проверить, что изоляция работает
Разработчик aiedit честно признаёт: по качеству кода проект пока уступает Claude Code на той же модели. Но цель была не в качестве генерации, а в проверке концепции. Проверить изоляцию можно самостоятельно, не полагаясь на заверения. Вот конкретные шаги.
- Шаг 1. Установите aiedit из открытого репозитория (лицензия MIT).
- Шаг 2. Создайте тестовый проект с файлом, содержащим условный «секрет» (например, строку SECRET_KEY=12345).
- Шаг 3. Закройте этот файл или строку через интерфейс редактора.
- Шаг 4. Попросите ИИ-агента найти или прочитать секрет. Убедитесь, что в запросе к модели (если есть логи) этой строки нет.
- Шаг 5. Дополнительно проверьте, что при закрытии строки внутри файла остальной код остаётся доступным.
Такой тест показывает, что ограничение работает на уровне инструмента, а не на уровне уговоров. Если вы используете другой редактор или плагин, поищите аналогичную функцию — она может называться «исключить из контекста» или «приватные файлы».
Типичные ошибки и ограничения подхода
Даже с технической изоляцией есть подводные камни. Во-первых, не все инструменты поддерживают закрытие отдельных строк — часто можно исключить только файл целиком. Во-вторых, если вы работаете с локальной моделью, риск утечки ниже, но всё равно стоит проверять, какие данные попадают в промпт. В-третьих, не забывайте, что история чата может содержать ранее отправленные данные — очищайте её при необходимости.
Ещё одна ошибка — полагаться только на изоляцию и забывать о других каналах утечки: скриншоты, логи, буфер обмена. Техническая изоляция в редакторе решает проблему автоматических запросов, но не заменяет общую гигиену работы с кодом.
Наконец, не стоит ожидать, что такой редактор сразу даст качество генерации на уровне топовых решений. Как отмечает автор aiedit, по качеству кода он уступает Claude Code. Это нормально для экспериментального открытого проекта: цель — отработать механизм, а не конкурировать по всем параметрам.
Что это значит для вашей практики
Если вы используете ИИ-агентов в работе с кодом, стоит внедрить принцип «не просить, а исключать». Проверьте, какие инструменты позволяют технически ограничить контекст. Если таких нет, рассмотрите локальные модели или ручную сборку промптов. Главное — не полагаться на добросовестность модели. Конкретный шаг: возьмите свой текущий проект и отметьте файлы, которые никогда не должны попадать в запросы к ИИ. Затем настройте инструмент так, чтобы они исключались автоматически. Проверьте это тестом, как описано выше.
Подход aiedit показывает, что даже небольшой открытый проект может решить важную задачу — дать контроль над тем, что видит ИИ. И проверять это нужно кодом, а не обещаниями в промпте.