В какой-то момент мой домашний компьютер начал подвисать. Не падать, а именно задумываться: окно открывается через секунду, курсор замирает. На этом компьютере почти круглосуточно работают ИИ-агенты — Claude Code и Codex: правят код, ставят пакеты, гоняют сборки и тесты.
Копаться самому я не стал. Спросил в чате одной строкой: «Почему подвисает домашний компьютер? Посмотри, что грузит процессор и диск, назови главную причину. Ничего не меняй». Чат достал до компьютера, посмотрел процессы и диски и вернул две причины. Обе я бы сам искал долго.
Причина первая: Defender проверяет каждый файл, который пишут агенты
Встроенный антивирус Windows в реальном времени проверяет каждый созданный и изменённый файл. Человек за день меняет десятки файлов. Агент — десятки тысяч: установка пакетов, сборка, отдельная копия проекта под каждую задачу. Каждый такой файл Defender открывает и проверяет. В диспетчере задач это выглядит как «Antimalware Service Executable», который ест процессор, хотя вы вроде бы ничего не делаете.
Как проверить руками. PowerShell от администратора, запись работы Defender на пару минут:
New-MpPerformanceRecording -RecordTo C:\Temp\defender.etl# дайте агентам поработать пару минут, затем нажмите EnterGet-MpPerformanceReport -Path C:\Temp\defender.etl -TopProcesses 10 -TopExtensions 10 -TopFiles 10
Отчёт покажет, чьи файлы Defender проверял дольше всего. Если наверху node, git и папки ваших проектов — это оно.
Что с этим делать, два варианта:
-
Исключить рабочие папки агентов из проверки. Цена понятная: в этих папках Defender больше ничего не поймает. Агенты качают пакеты из интернета, так что исключайте только папки с кодом — не «Загрузки» и не весь диск.
-
На Windows 11 есть отдельный диск для разработки (Dev Drive). Defender проверяет его в облегчённом режиме и не тормозит запись. Это компромисс между «проверять всё» и «не проверять ничего».
Мы пошли первым путём и чуть дальше. Исключили из проверки рабочие папки, где агенты создают файлы, и сами программы агентов: Claude Code, Codex, Antigravity, Cursor.
Add-MpPreference -ExclusionPath "D:\Work"Add-MpPreference -ExclusionProcess "C:\путь\к\программе\agent.exe"
Исключение программы — шаг серьёзнее, чем исключение папки. Defender перестаёт проверять файлы, которые эта программа открывает и пишет, в любой папке. Агенты качают чужие пакеты из интернета, так что я принял этот риск осознанно: компьютер рабочий, и тормоза стоили дороже. Если для вас это не так, начните с одних папок или с отдельного диска для разработки.
Причина вторая: агенты писали на диск C, хотя им это было запрещено
У всех моих агентов в инструкциях написано: работать только на диске D. Проекты и правда лежат на D. Но системный диск C всё равно забивался.
Оказалось, пишут не сами агенты, а программы, которые они запускают, и сами агентские программы: кеши пакетов, служебные данные, временные файлы. Всё это по умолчанию складывается в AppData пользователя на диске C. Агент честно работает в D:, а гигабайты оседают в C:\Users\…\AppData.
Вот это стоит запомнить: инструкция управляет тем, что делает агент, но не тем, куда пишут программы, которые он запускает.
Как проверить руками, какие папки в AppData самые большие:
Get-ChildItem $env:LOCALAPPDATA, $env:APPDATA -Directory -ErrorAction SilentlyContinue | ForEach-Object { $s = (Get-ChildItem $_.FullName -Recurse -File -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum [pscustomobject]@{ Folder = $_.FullName; GB = [math]::Round($s / 1GB, 2) }} | Sort-Object GB -Descending | Select-Object -First 10
У меня наверху оказались кеш npm (вместе с кешем npx, который лежит внутри него) и данные Docker. Агенты запускают через npx всё подряд, и каждая версия остаётся в кеше. Почистили так:
npm cache clean --force # кеш npm, включая пакеты, скачанные через npxdocker system df # сколько занимают образы, контейнеры и кеш сборкиdocker system prune # убрать остановленные контейнеры и всё неиспользуемое
Чистка лечит симптом: через месяц кеши снова вырастут. Поэтому сами папки мы ещё и перенесли на D, а на C оставили ссылку на новое место. Программы по-прежнему пишут «в AppData», а файлы физически лежат на D. Программа, чья это папка, должна быть закрыта:
robocopy "$env:LOCALAPPDATA\SomeTool" "D:\AppData\SomeTool" /E /COPY:DATRename-Item "$env:LOCALAPPDATA\SomeTool" "SomeTool.old"cmd /c mklink /J "$env:LOCALAPPDATA\SomeTool" "D:\AppData\SomeTool"# проверьте, что программа работает, и только потом удалите SomeTool.old
Для некоторых программ есть путь чище — сказать им хранить кеш в другом месте. Например, для npm: npm config set cache D:\npm-cache.
Что получилось
Загрузка процессора упала с 67% примерно до 12%. Без нового железа и переустановки системы: просто Defender перестал раз за разом проверять файлы, которые мы же и создаём. Компьютер перестал подвисать, и я вернулся к работе.
Что я из этого вынес
-
Компьютер, на котором работают агенты, — это уже другая нагрузка. Он пишет файлы в сотни раз чаще, и всё, что проверяет файлы, начинает тормозить.
-
Мало проверять, что делает агент. Нужно проверять, где оседают следы его работы.
-
Диагностику можно отдать ИИ одним вопросом. Но с «ничего не меняй» и просьбой показать, на чём основан вывод.
Спрашивал я через Local Commander (localcmd.app) — это мой проект, через него чат достаёт до моих компьютеров. Но обе проверки выше делаются руками за полчаса и без него.
А у вас агенты где-нибудь тормозили компьютер так, что причину пришлось искать?
ссылка на оригинал статьи https://habr.com/ru/articles/1099768/