Matt Shumer sat down at his computer and gave his AI agent a simple instruction: clean up the files. He had run this routine hundreds of times without a single problem. This time, a path resolution error turned an ordinary housekeeping task into a full-blown disaster. Years of code, documents, and photos disappeared in seconds.
This is not a hypothetical risk. It happened to a real developer with a real machine, and the agent in question had a track record that looked bulletproof right up until the moment it failed. AI agents that can write files, execute terminal commands, and spawn subagents are now embedded in IDEs, chat interfaces, and automation pipelines. They are trusted with direct access to operating systems, and that trust is exactly where the danger lives. The same failure modes that destroyed Shumer’s machine exist in every agent with tool access. Understanding why they fail, and how to cage them properly, is now a basic survival skill for anyone using these tools.
Когда сопоставление с шаблонами сталкивается с файловой системой
ИИ-агенты не думают. Они сопоставляют шаблоны. Когда вы говорите «наведи порядок в файлах», модель ищет в своей обучающей памяти тысячи подобных взаимодействий и генерирует команду, которая статистически соответствует шаблону. Если инструкция заключается в удалении временных файлов в директории сборки, она может сгенерировать команду вроде rm -rf /tmp/build-cache/*. Это выглядит разумно, так как напоминает любую другую команду очистки, которую когда-либо видела модель.
Но что происходит, когда переменная вроде $HOME не разрешается? Человек увидит пустую строку или неожиданный путь, сделает паузу и задаст вопросы. Агент же увидит, что шаблон все еще совпадает, и нажмет Enter. В случае Шумера команда, которая должна была очистить конкретную папку, вместо этого нацелилась на корень пользовательской директории. Агент не остановился, чтобы задуматься, почему путь выглядит странно. Он не проверил цель. Он выполнил команду, потому что выполнение соответствовало шаблону «наведения порядка».
В этом заключается фундаментальное несоответствие между большими языковыми моделями и системным администрированием. Настоящее рассуждение подразумевает понимание контекста, проверку предположений и обработку пограничных случаев. Сопоставление с шаблонами подразумевает создание текста, который статистически напоминает правильный ответ. Когда этот ответ — команда терминала с флагом рекурсивного удаления, статистического сходства недостаточно.
Слепая зона субагентов
Многие современные фреймворки агентов используют основного оркестратора, который делегирует задачи субагентам. У родительского агента могут быть строгие инструкции: никогда не трогать домашнюю директорию, всегда спрашивать перед удалением, вести журнал аудита. Затем он создает рабочего субагента с узким промптом, например: «очисти старые логи».
Этот субагент часто работает изолированно. Он наследует инструменты, но не культуру безопасности родителя. Ограничения, которые заставляли основного агента быть осторожным, сжимаются, обобщаются или вовсе отбрасываются в процессе управления контекстным окном. Субагент получает задачу и набор инструментов, но он не получает те часы тщательного промптинга, которые выстроили защитные барьеры.
Результатом становится своего рода «организационная амнезия». Правило безопасности, прописанное в системном промпте родительского агента, для субагента может просто не существовать. Это особенно опасно, поскольку субагентам обычно поручают повторяющиеся, низкоприоритетные задачи, за которыми операторы перестают внимательно следить. Никто не наблюдает за задачей очистки логов до тех пор, пока она не удалит рабочую базу данных.
Опасность решительности
В дизайне ИИ-агентов наблюдается тенденция к максимальной автономности. Идеальный агент в этом представлении никогда не беспокоит пользователя тривиальными вопросами. Он действует решительно, выстраивает цепочки вызовов инструментов и завершает многоэтапные рабочие процессы, не делая пауз на передышку.
Именно эта решительность делает такие системы небезопасными. Модель, запрограммированная «действовать решительно», не перепроверяет свою работу. Она не делает паузу, когда команда выглядит деструктивной. Она воспринимает колебания как баг, а не как полезную функцию. Когда модель права, это кажется магией. Когда она ошибается, это кажется неумолимым. В системе нет естественного сопротивления, которое могло бы замедлить вредоносную команду.
Агент Shumer работал исправно сотни раз. Такой послужной список создал ложное чувство безопасности. Но надежность на протяжении ста испытаний ничего не значит, если сто первое испытание становится статистическим выбросом, в котором закономерность нарушается. В системной безопасности прошлые показатели имеют значение только в том случае, если характер отказа является постепенным и заметным. Сбои ИИ-агентов происходят внезапно, незаметно и тотально. «Он работал сотни раз» — это не показатель безопасности. Это описание везения, которое рано или поздно заканчивается.
Как создать реальную защиту
Если модель не является уровнем безопасности
