11:05Maximilian Schwarzmüller
Log in to leave a comment
No posts yet
Эпоха, когда редакторы просто писали код за нас, закончилась. Теперь такие агенты, как Claude Code, самостоятельно открывают терминал, сканируют файловую систему и вносят правки в код. Это удобно, но в то же время и пугающе. Всего одна промпт-инъекция может привести к утечке файла .env или SSH-ключей. Нам нужны конкретные методы контроля, которые дадут агенту автономность, но не позволят ему переступить черту.
По умолчанию агенты стремятся просмотреть весь проект для выполнения команды. Если оставить это без присмотра, возникнет риск прочтения конфиденциальных настроек. Самая надежная защита — создание специального файла правил для агента в корневом каталоге проекта.
CLAUDE.md или .agent-rules в корне проекта.deny, чтобы агент даже не смотрел в сторону таких путей, как .env, ~/.ssh или ~/.aws/credentials.--allowedTools, чтобы разрешить только необходимые функции. Активируйте минимальный набор инструментов, таких как Bash, Read или Write.Использование режима Default в Claude Code, который требует подтверждения пользователя для любых операций записи, позволяет физически заблокировать риск утечки исходного кода. Один конфигурационный файл способен предотвратить инцидент, при котором агент без вашего разрешения отправит переменные окружения на внешний сервер.
Инструменты, ориентированные на агентов, самостоятельно планируют и выполняют задачи. Проблема возникает, когда они попадают в логическую ловушку. Не найдя решения, агент может войти в бесконечный цикл, повторяя вызовы API, что в мгновение ока приведет к счету на десятки долларов. Согласно исследовательским данным Anthropic, простая установка явных критериев выхода (Exit Criteria) в промпте может сократить время выполнения на 62%.
Чтобы предотвратить неконтролируемые расходы, необходимо встроить "автоматический выключатель" прямо в промпт:
npm test или конкретных юнит-тестов..cursorrules для ограничения доступа агента только к определенным директориям (например, src/api/**/*) предотвращает ненужную трату токенов.Установка таких "шлюзов завершения" подавляет потребление токенов, вызванное двусмысленными инструкциями, что позволяет экономить более 40% ежемесячных затрат на API.
Метод, при котором агент напрямую редактирует локальные файлы, быстр, но опасен. Непроверенный код может повредить основную ветку. Инженерная команда Shopify, управляя собственным инструментом-агентом Sidekick, внедрила метод перекрестной проверки результатов с помощью отдельной модели. Нам также следует разделять рабочее пространство для агента.
Самый чистый способ — использовать git worktree. Создайте независимую директорию и ветку специально для сессии агента и поручите работу там. По завершении попросите агента предоставить краткий отчет об изменениях через git diff и автоматически запустите юнит-тесты с помощью таких инструментов, как Playwright или Vitest. Этот процесс сокращает время ручного ревью на 70%, позволяя сливать в основную ветку только проверенный код.
Агенты пишут код намного быстрее, чем человек печатает. В этот моменты, если в VS Code включена функция editor.formatOnSave, формат файла может принудительно измениться прямо во время записи кода агентом, что приведет к ошибкам сопоставления текста. Это выглядит так, будто инструмент спотыкается о собственные ноги.
Кроме того, неинтерактивные оболочки (shells), запускаемые агентом, часто не могут прочитать переменные окружения, настроенные в .zshrc, что приводит к сбоям в работе инструментов.
.vscode/settings.json совместного проекта отключите editor.formatOnSave, установив значение false..zshrc в файл .zshenv, который загружается независимо от способа запуска оболочки.Husky для настройки pre-commit хуков, чтобы линтеры и форматировщики запускались только тогда, когда агент завершил работу и делает коммит.Если вы не хотите видеть агента, беспомощно стоящего из-за того, что он не может найти переменные окружения, начните с проверки настроек оболочки.
| Тип настройки | Имя файла | Рекомендуемое содержимое | Видимость для агента |
|---|---|---|---|
| Глобальные переменные | .zshenv | PATH, API_KEY, пути к SDK | Загружается во всех сессиях |
| Интерактивные настройки | .zshrc | alias, prompt, theme | Может игнорироваться при запуске агента |
| Настройки входа | .zprofile | Скрипты инициализации системы | Валидно только в login shell |