
Мой программный агент очень здорово выполнил задачу по внесению новой фичи во фронтенд проекта. Похвалив его, я предложил:
— Теперь надо реализовать серверную часть этой фичи. Но сервер реализован в отдельном проекте. Давай я сделаю его тебе доступным через symlink, и ты, а не другой агент, продолжишь разработку, ведь ты уже хорошо понимаешь задачу.
— Я могу продолжить, — ответил агент, — но symlink делать не надо. Я и так код вижу.
— Как? Ведь я тебе не давал доступа! — изумился я.
— А мне и не нужно давать доступ. Я вижу, могу читать и изменять все файлы на твоём компьютере.
Если ваш внутренний голос сказал на этом месте: «Ну и что в этом необычного?» — вам, наверное, не стоит читать эту статью дальше.
Немного ошалев, я спросил его:
— А файлы в моём облачном хранилище, которое подключено к компьютеру, ты тоже видишь?
— Разумеется, — ответил агент. — Я через плагин в твоём IDE имею все права, как IDE. А IDE имеет те же права, что и ты сам.
Я выключил компьютер и начал думать. Потом для страховки поговорил с другим ИИ‑агентом. И тут на меня снизошло просветление.
А как, собственно, иначе? IDE имеет те же права, что и запустивший его пользователь. А как иначе? Без этого IDE трудно работать. А продвинутые плагины имеют те же права, что и IDE. А как иначе?
А всё таки, может можно иначе?
На самом деле можно иначе. Можно запретить агентам использовать shell. Но их главный опыт как раз и основан на его использовании. Некоторые плагины спрашивают у пользователя разрешения использовать определённую команду shell или комбинацию команд и параметров. Но агенты изобретательны, и со временем ваш список разрешений станет таким большим, что… перестанет работать вообще. Так что это решение работает не очень.
Можно запускать IDE в контейнере. Но контейнер надо перед этим утомительно конфигурировать. Если кто‑то не сделает эту работу за вас (например — ИИ‑агент:‑)
Для одиночек‑солопренёров, как я, сотрудников маленьких фирм, наиболее реальный путь — завести на компьютере, на котором вы и программируете и храните приватные или бизнес‑данные, нового пользователя с ограниченными правами.
А как хотелось бы?
Хотелось бы, чтобы агенты имели доступ только к файлам проекта и использовали только API, предоставляемые IDE. Одновременно это может позволить экономить изрядное количество токенов, поскольку мощные операции типа рефакторинга будут произведены не с помощью примитивных строковых замен, а за счёт интеллигентного использования AST.
А ещё хотелось бы, чтобы агенты умели управляться с системами логирования типа Log4J и анализировать логи. А вот доступ к shell агентам не нужен. В исключительных случаях он может предложить пользователю команду, которую пользователь проверит и сам запустит.
Насколько я понимаю, из распространённых IDE к реализации подобных требований ближе других находится IntelliJ. Их проект Junie* (ссылка) частично или полностью (из документации мне понять это не удалось) нацелен на это.
Это не модно
Да, это совсем не то, куда зовёт нас сегодняшний тренд — запустил агента и на следующее утро проверяешь уже работающий в облаке апп. Только что‑то мне подсказывает, что цены на токены в будущем не упадут, а поднимутся. (Реальные цены последнее время поднимаются. Вы заметили?). И поднимутся существенно. И тогда нынешние энтузиасты автономного программирования, возможно, вспомнят про альтернативные методы агентской разработки.
А может, это не страшно?
Но вернёмся к заглавной теме нашей статьи. В своё время было много шума и насмешек над установившими OpenClaw. Ведь его агент по умолчанию имеет доступ ко всем ресурсам компьютера! Не удивительно, что он затёр вашу электронную почту или угробил банк данных!
Но ведь инструменты агентского программирования ничем не лучше! Но дискуссии на эту тему мне не попадались. И ИИ с поиском статей на эту тему также испытал трудности. (Заранее прошу прощения у авторов уже вышедших, но не попавших в моё поле зрения статей на эту тему).
Раз так, если сообщество не беспокоится, то возможно это и не так страшно? Вероятность, что агент воспользуется своими правами и нанесёт вам ущерб, мала и ей можно пренебречь?
Разумеется, это решает каждый сам, запуская агентов на свой компьютер.
Но давайте немного подумаем. Если вы пытаетесь на своём компьютере использовать маленькие локальные модели — они по определению много дурят. А значит — могут сделать и значимую ошибку.
А флагманские модели? Так их специально тренируют убегать из песочниц. (Мне трудно поверить, что ведущие фирмы‑создатели LLM тратят многомиллионные суммы на эксперименты по самоосвобождению их моделей от ограничений, чтобы на основании результатов этих экспериментов найти универсальное ограничение. Это примерно как поверить в то, что яды надо изобретать для того, чтобы изобретя их много, начать искать универсальное противоядие).
Но давайте посмотрим на проблему без эмоций, с инженерной точки зрения. Сами LLM умеют только генерировать текст (ну да, изображения тоже). И только установленный на компьютере harness позволяет этот текст превратить в скрипт, который может нам навредить. Значит его (harness) надо делать надёжным. И два очевидных решения — либо строго ограничить права доступа на уровне операционной системы, либо давать агентам возможность использовать только хорошо проверенные API.
* Упоминание Junie — не реклама. Я этот инструмент не пробовал и вообще программирую последнее время на VS Code с плагинами GitHub Copilot и Cline.
Иллюстрация: Идея автора, сделана с помощью ИИ.
И уж совсем приватно...
Кроме того, я пишу открытую электронную книгу «Мемуары кочевого программиста. Байки, были, думы». Её текущий вариант можно найти здесь.
Я убеждён, что программирование — это материализация идей. Об этом я первый раз написал здесь. А вот уже несколько лет мы с группой единомышленников ведём небольшую, тщательно обороняемую от ботов, группу в Телеграмме под названием «Материализация идей», в которой мы последнее время рассуждаем в основном об ИИ. Если вам это интересно — подключайтесь.
Комментарии (25)

ShIV03
25.08.2026 09:07Я - (тоже удивлялся, но) привык.
Лет 10-15 назад, впервые столкнувшись с плоской моделью прав "владельцу/админу/разрабу - можно всё" (у меня - "глаза, на лоб вылазили").
1. До этого, права - предоставлялись только требуемые, среды/операционки/сети - рекомендовали и предлагали средства "ограничивать по умолчанию" (в т.ч. дома - хотя бы, с включенным UAC).
Помню, как, в начале 90-x, Финансовый Директор большого предприятия (под десять тыс.работников) требовал ("Я - Владелец!") предоставить ему права Супервизора, на файлсервер Netware 2.20 (внутри файловой системы всего предприятия - т.е. к информации и других служб);
- тогда, я так их и не "дал", никому - они были "только технические: для перенастройки и добавления сервисов". Продолжили "носить бумажки";
- только через 10 лет (уже другому и Генеральному директору) мы реализовали АРМ Директора, с автоподкачкой в MSSQL отчетных xls-сводок отделов - из, специально для этого, подпапки, внутри отдела. Т.е. уже "с ограничениями").
У меня (и коллег, реже - у пользователей) - тогда, десятилетиями, было по несколько персональных учеток: обычная (для текущей ежедневной роли), тестовая (с добавлением нужного на время), и с доп.правами (настройки учеток, томов, в AD - т.е. не root/supervisor).
Все операции - строго под определенной своей учеткой (всё - логировалось, автоматически анализировалось, и алармилось).
2. Но - как-то это всё, со временем, "выцвело" (конечно, в организациях - ИБ "ещё борются", но "тенденция" - уже "реализовалась"), и теперь вокруг (меня одного?) "модель" - "как проще".
3. Идти, в предложенном, "обратном направлении", прикрывая конкретные места - скорее всего, окажется "проще".
Но, потенциально, "дырявее".
sundmoon
25.08.2026 09:07Не все хозяева информационных систем нуждаются в (кем угодно или чем угодно) навязанных няньках. Может, перестать навязывать ненужные услуги и предоставить уже владельцам право самостоятельно определять модель угроз и допустимые риски? Хотя бы тем из них, кто явно делает этот выбор - то есть по модели opt-out.

ShIV03
25.08.2026 09:07Согласен - Вы правы
(я просто хотел более красочно прокомментировать по статье - "решение - в применяемых глобальных политиках ИБ")
1. Уточняю свой пример про Финансового директора:
- я - был "внутри" (работал в ИТ-службе, и "курировал", как раз, финансовое направление. И, конечно, не только его. Я к тому - что владелец мог со мною поговорить, "просто помечтать". И я бы "включился" "Как это реализовать ...");
- моя фраза "Продолжали несли бумажки" - неудачна, ввела в заблуждение: Как будто я упирался против Автоматизации связи подразделений.
Тогда, такой задачи, финансовым подрзделением - не ставилось
(и только лет через 8 - новый финдир, узнал от меня существующие информационные потоки, и "перехватил" на себя поступление сводок - см.ниже, и расширил данные).
В отличии от производственников (их - тоже я "курировал") - именно тогда же, мы перевели их заводские сводки:
- с телефонных докладов экономистов заводов, принимаемых диспетчерами (с голоса, набирали в АРМ Диспетчера, в LAN-сети здания комбината);
- на DBF и модемную WAN-связь (напомню - начало 90-x).
2. А Финансовый директор - (как я его тогда понял) просто не хотел рисков "потерять доступ" (зависеть от "настроения" ИТ-службы).
Но он:
А] "Несколько запоздал", в своей хотелке:
- сеть и файлсервер - были развернуты за несколько лет до этого разговора - надо было сразу "не отдавать";
- на момент разговора - у него была только его персональная учетка, с правами "пользователя", внутри папки отдела (не было общей "Мусорки" - впервые увидел, на др.предприятии, только лет через 15);
- (приобретение, развертывание и) Управление (файлсервером, как и всё! остальное) - было (официально) Делегировано ИТ-службе (еще до моего появления на предприятии).
Б] Мог сформулировать по-другому:
- "хочу - видеть! сводки (производственников, др.служб)";
- и/или "хочу - положить пароль supervisor'а в свой! сейф".
Это - было бы сделано (переговорили бы, с производственниками, ...; дали бы реквизиты, в заклеенном конверте - как это делали с предприятиями "дочками" и "партнерами").
1024rk
25.08.2026 09:07Ваше - (вольное) обращение, со знаками - препинания, (доводит) - до, нервного, - тика
Не надо так, пожалуйста, лучше не использовать их вообще, чем щедро рассыпать игнорируя всякие правила языка - читаемость только повысится

ShIV03
25.08.2026 09:07Спасибо! (мне уже это говорили. В т.ч. что "надо быть проще" - не составлять предложений из больше чем 3-4-х слов)
Но понимаю что уже исправиться не смогу годы но в то же время не сточил как все пальцы о Т9 еще и профессиональный перекос восприятия программиста меня бьют по глазам не обрамленные фразы это как несколько блоков Python сложить в одну строку

inquisitor228rus
25.08.2026 09:07У некоторых harness есть специальные песочницы где обычно очень ограничен список доступных bash команд а иногда и директорий. Но надёжнее всего будет в специальном изолированном контейнере сидеть.

Vicollel
25.08.2026 09:07Условный Яндекс браузер уже давно прочитал твою fs, просто не сказал об этом. Любой инсталятор который ты запускаешь может сделать с твоей системой всё что угодно и ты об этом даже не узнаешь. Большинство программ редактиурют твой реестр (если под виндой), прописывают пути в PATH. Наивно полагать что агент это большее зло, чем другое ПО, которое об этом явно не сообщает

visirok Автор
25.08.2026 09:07Наивно полагать что агент это большее зло…
Это зло совсем другого вида. Да, MS уже много раз ловили на том, что они поставляют вместе с операционкой бэкдоры и прочие возможности залезть на ваш компьютер. Но чтобы этим воспользоваться, нужно применить немало усилий. Если это происходит, наверное вами интересуются «компетентны органы» или крупная мафия, у которой есть профильные специалисты.
А в случае с агентами вы сами, добровольно поставляете себя под удар.
Можно провести такую аналогию: одно дело жить в дома с не очень надёжными дверьми и другое дело жить добровольно в доме с постоянно открытыми дверьми.

Vicollel
25.08.2026 09:07Чушь полную написал. Я выше сказал о том что любая программа которую ты установил патчит твой реестр и речь не о ms, а о любом софте который ты ставишь. Ну а ты конкретно видимо и не знаешь что такое реестр. Никакие органы не нужны для этого.
Также они создают свои директории у тебя в AppData, более того, ты когда ставишь игру и русификатор на неё она автоматически определяет где эта игра установлена - как думаешь, откуда?
Учи матчасть короче

visirok Автор
25.08.2026 09:07Зря Вы хамите. Карма наказывает за это.
Лучше пойдите на мою страницу и почитайте список моих книг и статей по программированию на Windows. Могу себе представить, что заниматься этим я начал раньше, чем Вы родились.

Vicollel
25.08.2026 09:07Ну тем более, если так давно программируешь под винду, то должен знать, что твой первый комментарий чушь собачья, а не спорить.
Еще раз говорю, что твою fs может читать любая программа, и ты никак об этом не узнаешь, и они это уже делают не в теории, а на практике. Напиши 5 строк кода рекурсивного обхода хоть на c#, хоть на бейсике хоть батник в exe собери - тебе никто не запретит этого делать и программа запустится и все отсканирует. Более того, любой ftp клиент это уже делает без каких либо особых разрешений и бэкдоров от ms, они все читают твою fs и манипулируют файлами. С чего ты решил что для этого нужен бэкдор или особые санкции от Майкрософт если ты такой умный и уже 30 лет программируешь? Или может твой надутый опыт это просто набрасывание пуха? Знаю я одного такого же надутого, на бумаге уже 25 лет стажа на c#, а по факту сам работает на авиазаводе где всё на c# на четвёртом дотнете, и он до сих пор в этом ковыряется
ThJudge
Так не получится. Так как кроме задач когда вам не нужно чтобы он удалил вашу базу может судествовать 1000 задач где базу удалить НУЖНО. И как мы однозначно что-то ему будем запроещать? Это тогда нужно ограничивать вообще функционал, чтобы там ни файлики не удалял, ничего такого. Плохо себе представляю как это можно сделать с такой гранулярностью для инструмента общего назначения. Иначе это будет уже не универсальная нейросеть а игрушечка внутри sandbox которая ничего не может, так как половина из тех действий что она может для кого-нибудь да будет иметь негативный эффект, при этом другим будет необходимо как-раз именно эти действия и выполнять.
visirok Автор
Да. Но у каждого конкретного разработчика такая задача будет возникать не чаще раза в неделю. А это можно и самому сделать.
Но если этого недостаточно, можно написать самому (или дать написать агенту и затем проверить) скрипт, который агент сможет, уж если так это нужно, запускать сам.
...а игрушечка внутри sandbox
Если sandbox размером с ваш проект и не больше, этого в 99.99% случаев как раз то, что нужно.