Что агентам ИИ никогда не следует делать самостоятельно
Как установить правила, которые позволят агентам эффективно выполнять свою работу и избегать неприятностей.
Делиться

Весь контент об агентах сосредотачивается на том, что они могут сделать.
Целью представляется автономия: дать им инструменты , дать им доступ , позволить им действовать самостоятельно.
Чем больше свободы, тем лучше результат.
В целом, это точное описание. Я пользуюсь услугами агентов ежедневно. Они действительно повысили мою производительность. Я в это верю!
А ещё я потерял два часа работы из-за агента, который делал именно то, что я просил.
Я занимался очисткой ветки разработки новой функции.
В описании задачи было сказано: «Удалить неиспользуемые файлы и очистить репозиторий». Агент истолковал слово «неиспользуемые» широко , удалил каталог конфигурации, к которому я не прикасался несколько месяцев, но на который всё ещё ссылался скрипт развертывания, и продолжил работу.
Я обнаружил это во время проверки различий. Конфигурация не была в системе контроля версий. Два часа ушло на её восстановление по памяти и истории Git.
Задача была ясна, и агент следовал инструкциям, единственная проблема заключалась в том, что ничто не указывало ему, где остановиться .
Умение определять, какие задачи следует ограничивать , — важная часть эффективной работы с агентами. Предоставьте им полную свободу действий в неправильной категории, и вы потратите весь день на исправление того, на что у них ушло всего тридцать секунд.
Привет! Меня зовут Сара Нобрега, и на канале Learn AI я научу вас, как стать опытным пользователем ИИ. Подписка бесплатна!
То, к чему агент ни в коем случае не должен прикасаться в одиночку.
Некоторые задачи обратимы . Например, рефакторизованную функцию можно отменить или удалить новый модульный тест. Цена ошибки невелика.
Стоимость восстановления зависит от задачи . Отмена изменений в рефакторизованной функции занимает считанные секунды; достаточно просто отменить коммит, но восстановление удаленной рабочей таблицы может занять целую неделю, если оно вообще возможно.
Вопрос, который следует задать перед запуском задачи: можно ли это отменить ?
Если да, позвольте агенту переместиться. Если нет, добавьте контрольную точку перед его запуском.
Вот матрица разрешений, которой я руководствуюсь в своей работе:

Категории, для которых всегда требуется участие человека.
В некоторых категориях требуется проверка человеком, независимо от того, насколько четко определена задача.
Риск ошибки слишком высок, а затраты на ее исправление слишком велики, чтобы позволять агенту принимать решения самостоятельно.

- Деструктивные операции с файлами
`rm -rf`, `git clean -fd`, `git reset --hard`.
Эти действия удаляют или отбрасывают работу, которая может быть невосстановимой .
Агент выполнит их, если в описании задачи подразумевается очистка.
У меня был случай, когда команда `git clean -fd` запустилась посреди рефакторинга, потому что в задании было указано «очистить временные файлы».
Моя незавершенная работа исчезла. Никаких сбоев не произошло, поскольку агент сделал именно то, что было сказано. Защита обеспечивается явным списком блокировки с этапом подтверждения, и агент не может самостоятельно определить, где заканчивается «очистка».
2. Запись в базу данных и миграции
Любое DELETE без условия WHERE , любое DROP или TRUNCATE , любая миграция схемы, затрагивающая производственные данные.
Опечатка в условии WHERE может привести к удалению данных из таблицы. Миграция, выполненная не по порядку, может повредить данные, которые невозможно восстановить. Всегда проверяйте данные перед запуском.
3. Облачная инфраструктура
`terraform apply`, `kubectl delete`, `aws iam *`, `gcloud iam *`.
Изменения в инфраструктуре затрагивают работающие системы и зачастую другие команды. Изменения прав доступа особенно опасны, поскольку ущерб может оставаться незаметным до тех пор, пока что-нибудь не выйдет из строя.

4. Внедрение в производство
Любое развертывание в производственной среде должно проходить проверку человеком, даже если код был сгенерирован агентом.
Конвейеры CI/CD могут автоматически запускать выходные данные агента, и это нормально. Решение о развертывании в производственной среде остается за вами.
Вы знаете, что находится в процессе выполнения, какие инциденты не устранены, какое техническое обслуживание запланировано. У агента нет всей этой информации, и он не может запросить её в процессе работы.
5. Логика аутентификации и безопасности
Потоки аутентификации, правила авторизации, обработка токенов, управление сессиями.
Здесь ошибки обнаруживаются не в модульных тестах, а в отчетах об инцидентах, иногда спустя месяцы.
Агент, пишущий логику аутентификации, выдаст результат, который будет выглядеть корректно и пройдет проверку на корректность.
Опасными являются крайние условия: токен, срок действия которого не истекает при определенной последовательности вызовов API, или маршрут, который обходит промежуточное ПО при отсутствии параметра.
Именно такие уязвимости упускают модульные тесты, и именно их выявляет проверка безопасности. Каждое изменение аутентификации требует участия человека, который будет целенаправленно искать эти пробелы, а не того, кто доволен тем, что «счастливый сценарий» уже реализован.
6. Секреты, файлы `.env`, ключи API
Чтение или запись учетных данных агентом создает риск утечки информации. По умолчанию оставьте эту категорию недоступной и обрабатывайте ее вручную.
git push --force относится к своей собственной категории, поскольку она переписывает историю на удалённом репозитории. После отправки изменений локальные ветки других участников начинают расходиться. Восстановление становится сложным, а иногда и невозможным.
Людям тоже следует быть осторожными со всеми этими командами. Агенты просто облегчают их случайное срабатывание, поскольку они скрыты в более длинной последовательности, казалось бы, безопасных шагов.
AGENTS.md: составьте договор
С самого начала обеспечьте агентам четкую структуру. Файл AGENTS.md в корневом каталоге вашего репозитория сообщает агенту, что это за проект, как его запустить и к чему ему нельзя прикасаться без разрешения.
Нечетко определенный файл AGENTS.md позволяет создать агента, заполняющего пробелы предположениями. Я узнал об этом, работая с кодом, в котором вообще не было файла AGENTS.md.
Задача заключалась в «организации структуры проекта». Агент перемещал файлы между каталогами, руководствуясь понятными ему соглашениями об именовании. Всё, что ссылалось на эти пути, перестало работать.
На выполнение задачи агенту потребовалось двадцать минут; на очистку у меня ушло два часа. Три строки ограничений по объему работ полностью бы этому помешали.
Вот шаблон, который я использую:
# AGENTS.md ## Project [Brief description of the project and tech stack] ## Setup ```bash # Install npm install # or pip install -r requirements.txt # Run npm run dev # Test npm test # Lint npm run lint ``` ## Coding rules - Make minimal changes. Don't refactor unrelated code. - If behavior changes, add or update tests. - Don't touch files outside the scope of the task. - Keep diffs readable. One concern per commit. ## Safety rules Ask before running any command in blocked_commands.md. If you're unsure whether a command is safe, stop and ask. ## Definition of done - Tests pass - Diff is explainable in one sentence - Final report provided (see below) ## Final report format After every task, provide: 1. Summary of changes 2. Files changed 3. Tests run and result 4. Risks or assumptions 5. Anything not completed ```
В сопроводительном файле blocked_commands.md точно указано, какие команды требуют подтверждения пользователя перед запуском:
# blocked_commands.md ## Destructive file operations - rm -rf - git clean -fd - git reset --hard ## Git operations - git push --force - git push --force-with-lease ## Database operations - DROP TABLE - TRUNCATE TABLE - DELETE without WHERE clause - Any migration that alters a production schema ## Cloud / infrastructure - terraform apply - kubectl delete - aws iam * - gcloud iam * ## Secrets - Any command reading or writing .env files - Any command touching API keys or credentials
Если в файле AGENTS.md содержится неточная информация, агент будет гадать. Если же информация конкретна, агент выполнит действие, и поэтому этот файл является вашим контрактом. Пишите его до начала выполнения задачи, а не после того, как что-то сломается.
Ознакомьтесь с моими двумя последними статьями , где вы узнаете, как предоставить вашему ИИ неограниченный контекст , а также рассмотрите шесть распространенных сложных решений, которые инженерам по ИИ приходится принимать в процессе эксплуатации.
Двухагентный цикл
Для препаратов средней и высокой сложности используйте не один агент, а два.
Агент 1 выполняет задачу. Агент 2 проводит проверку. Затем Агент 1 применяет только критические замечания.
Подсказка от исполнителя :
You are a senior software engineer implementing a specific task. Task: [describe the task] Context: [link to AGENTS.md or paste relevant sections] Rules: - Make minimal changes. - Stay in scope. - Don't refactor unrelated code. - Add tests if behavior changes. - When done, provide a final report: summary, files changed, tests run, risks, anything incomplete.
Задание для рецензента:
You are a code reviewer with no attachment to the implementation. Review this diff: [paste diff] Check for: - Bugs and edge cases - Missing tests - Security issues - Unintended behavior changes - Anything outside the stated scope Output: - Critical issues (must fix) - Minor issues (optional) - Anything you'd flag for a human Do not rewrite the code. Flag, don't fix.
Агент-рецензент не преследует никаких личных интересов, связанных с кодом. Он ищет ошибки, граничные случаи, проверяет покрытие тестами и выявляет проблемы безопасности, не пытаясь переделывать работу.
Проверка кода — это способ выявить то, что вы упустили. В случае с двухагентным циклом это тот же процесс, только автоматизированный.
Итоговый отчет
Требовать предоставления итогового отчета по каждой задаче агента:
1. Краткое описание изменений
2. Файлы изменены.
3. Проводятся тесты и выдаются результаты.
4. Риски или предположения
5. Все незавершенные работы.
Это делает агента ответственным . Если он не может четко изложить свою работу, это сигнал о том, что задача была выполнена некачественно.
Кроме того, система автоматически создает документацию без необходимости ее ручного написания. Отчеты накапливаются. Если что-то сломается через неделю, вы сможете точно отследить, что изменилось и почему.
Непривлекательная работа

Ажиотаж вокруг агентов с искусственным интеллектом никуда не денется, и в большинстве случаев это оправдано. Они действительно повышают вашу производительность .
Наибольшую пользу от них получают те специалисты, которые проделали подготовительную работу: написали файл AGENTS.md , продумали уровни доступа, составили список заблокированных команд, настроили цикл с двумя агентами.
Агенты работают эффективнее, когда получают четкие инструкции. Эта часть работы зависит от вас.
Спасибо за прочтение!
Вы можете найти меня в LinkedIn и Substack , где я делюсь более подробной информацией об искусственном интеллекте и магистратуре.
Сара Нобрега Посмотреть все работы Сары Нобреги
Источник: towardsdatascience.com

Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.