Ваші агенти лишають по собі процеси.
AgentsRoom їх знаходить.
AI агент запускає справжній системний процес на кожен виклик інструмента. Більшість завершуються за секунди. Деякі не завершуються ніколи, і саме вони тримають у заручниках гігабайти пам'яті, взагалі не використовуючи CPU.
Вартовий процесів обходить дочірні процеси ваших агентів, позначає ті, що перестали просуватися, називає відповідального агента і завершує їх одним кліком. Ніщо не завершується за вашою спиною.
На що вартовий дивиться насправді: процеси, які запустив один агент, і які з них перестали працювати.
AI агент не зводиться до одного процесу. Кожен виклик інструмента запускає на вашій машині справжній процес: пошук, збірку, перевірку типів, прогін тестів, скрипт. Помножте це на кілька агентів, що працюють паралельно, на цілий день, і ви отримаєте сотні процесів, народжених і похованих так, що ви не побачили жодного.
Майже всі вони завершуються. Проблема в тих, що не завершуються. Пошук, чий шаблон розриває рушій регулярних виразів, не падає і не гальмує: він виділяє пам'ять, іде у стиснену пам'ять, а потім усе життя проводить на сторінкових помилках при 4% CPU. Він не закінчить ніколи. Його ніхто ніколи не вб'є. А якщо агента, який його запустив, закрито, процес переходить під процес init і стає сиротою, за якого на машині більше ніхто не відповідає.
Ось чому гальмування підкрадається непомітно. Немає одної гучної події, є повільне накопичення за робочий день, і це саме та форма, через яку винуватять не те: перегрів, забагато агентів, витік пам'яті в застосунку. У сесії, яку ми виміряли, сам застосунок займав 2,8 ГБ на 91 процес, а вісім CLI агентів разом 1,6 ГБ. Ні те, ні інше не було проблемою.
Вартовий процесів і є та сама страхувальна сітка. Він стежить за тим, що агенти лишають по собі, каже, який процес завис і хто його запустив, і дає вам його завершити. Першопричини змінюватимуться й далі: інший інструмент, інший шаблон, інший провайдер. Сітці змінюватися не потрібно.
Чому машина, на якій працюють AI агенти, сповільнюється
Цифри нижче взяті з однієї виміряної сесії на ноутбуці з 16 ГБ і вісьмома робочими агентами. Тут немає жодної оцінки на око.
Машина працювала п'ять з половиною годин. Жодних проблем з температурою: тротлінг не зафіксовано, батарея 30,6 °C. Середнє навантаження трималося між 17 і 21 на 8 ядрах, а процесор проводив 56% часу в ядрі при 1,5% простою. Саме це співвідношення все й видає. Машина, яка справді працює, проводить час у користувацькому коді; якщо ж 56% часу йде в систему, то ядро тільки й робить, що стискає, розтискає і свопить пам'ять.
Сім завислих процесів пошуку займали від 3,9 до 8,0 ГБ кожен, тобто 41,8 ГБ на машині з 16 ГБ RAM. Своп був заповнений на 22,3 ГБ із 23,5, а від моменту завантаження в нього було записано близько 993 ГБ. Завершення цих семи процесів миттєво повернуло 15,5 ГБ, без перезапуску бодай одного агента і без перезапуску застосунку.
Руками цього ніхто не ловить тому, що звичні інструменти про це брешуть. На macOS завислий процес може показувати 20 МБ резидентної пам'яті, займаючи при цьому 8 ГБ, бо все, чого він торкався, пройшло через компресор пам'яті. Один такий ми виміряли наживо: 4,7 ГБ резидентної пам'яті при реальному обсязі 14 ГБ. Віртуальний розмір теж не допомагає: на цій платформі навіть launchd показує близько 440 ГБ віртуального розміру, тож фільтр по ньому позначить машину цілком.
Та сама сесія, година за годиною: пласти пам'яті, якими вже ніхто не користується, і що стається, коли їх звільняють.
І ці процеси мають чотири властивості, які гарантують, що завтра вони все ще будуть тут.
Вони ніколи не закінчують
Їхня власна пам'ять лежить у свопі, тож замість обчислень вони проводять час на сторінкових помилках. Здоровий пошук вантажить ядро вщент; ці сидять на 4%. Виходу з цієї спіралі немає, і скільки не чекай, легше не стане.
Вони ніколи не помирають
У виклику інструмента немає таймауту. Ніщо на машині не має думки про процес, який простоює п'ятдесят хвилин. Він сидітиме там, доки хтось його не вб'є або машина не перезавантажиться.
Вони переживають свого агента
Закрийте вкладку агента, і процес може вижити, перейшовши під процес init. Від цієї миті його більше ніщо ні з чим не пов'язує: це процес-сирота, і прибирати за ним уже нікому. Двоє із семи, яких ми виміряли, вже були в такому стані.
Вони накопичуються
По одному на кожен прохід перевірки, по одному на кожен невдалий пошук. Ось чому гальмування за день лише наростає і чому перезавантаження виглядає як розв'язання. Воно нічого не розв'язує, воно просто обнуляє лічильник.
Що робить вартовий процесів
Він стежить за процесами, які породжують ваші агенти, і навмисно дуже вузький у тому, чого взагалі торкається.
Вимірює справжню пам'ять
Не резидентний розмір, який занижує завислий процес на гігабайти. Вартовий читає реальний обсяг зайнятої пам'яті, разом зі стисненими сторінками і сторінками, що пішли у своп, тож процес, який показує 20 МБ, а займає 8 ГБ, видно таким, яким він є.
Дивиться на CPU, а не лише на RAM
Сама лише пам'ять позначала б кожну збірку на вашій машині. Вартовий вимірює навантаження процесора як швидкість між двома сканами, тож процес, який спершу гарував, а потім заклинив, усе одно ловиться, а збірка, яка справді працює, лишається в спокої.
Ловить осиротілі процеси
Процес, який пережив агента, що його запустив, позначається сам по собі, бо його пам'ять ніхто інший уже не поверне. Належність запам'ятовується, поки процес ще прив'язаний: це єдина мить, коли її взагалі можна встановити.
Один клік, щоб його завершити
Індикатор у рядку стану перелічує кожен завислий процес з агентом, який його породив, його пам'яттю, віком і навантаженням CPU. Завершення прибирає і його, і все, що він породив сам. Пам'ять повертається одразу, а ваші агенти працюють далі.
macOS, Windows і Linux
Кожній системі потрібне своє вимірювання, щоб сказати про пам'ять правду: стиснені сторінки на macOS, резидентна плюс та, що пішла у своп, на Linux, приватна виділена пам'ять на Windows. Усі три реалізовані, а не заплановані.
Коштує майже нічого
Один знімок процесів на хвилину, заміряний приблизно в 40 мс на машині з 824 процесами. Дорогий замір пам'яті запускається лише тоді, коли щось уже виглядає завислим, а поки жоден агент не активний, скан не запускається взагалі.
Правило, яке не дає йому кричати «вовки»
Вартового, який позначає ваші збірки, ви вимкнете за тиждень. Тому процес ніколи не позначається за самою лише пам'яттю. Він має бути великим, він має жити вже якийсь час, і він має перестати використовувати процесор. Усі три умови разом.
Роботу робить саме третя умова. Перевірка типів чи бандлер теж тримають гігабайти по кілька хвилин, але при цьому вантажать ядро вщент. Процес, що застряг у свопі, тримається близько 4%, бо все життя чекає на сторінкові помилки замість того, щоб обчислювати. Саме цей розрив відрізняє машину, яка працює, від машини, яка тоне, і це єдиний сигнал, що надійно їх розділяє.
Навантаження процесора до того ж вимірюється, а не зчитується. Звична цифра, яку показує системний інструмент, це середнє за все життя процесу, і вона все ще виглядає зайнятою для того, хто двадцять хвилин гарував, а потім заклинив. Вартовий натомість порівнює спожитий процесорний час між двома сканами, тож бачить він останню хвилину, а не останню годину.
Як це працює
Чотири кроки, раз на хвилину, і дорогий з них майже ніколи не виконується.
Один дешевий знімок машини
Щохвилини вартовий робить один знімок усіх запущених процесів і обходить дерево під кожним терміналом агента. Заміряна вартість на машині з 824 процесами: близько 40 мс. Поки жоден агент не запущений, цього не стається взагалі.
Відібрати підозрюваних
З цього знімка він лишає тільки дочірні процеси агентів, які живуть довше за ваш поріг і більше не використовують процесор. За звичайної роботи цей список порожній, і на цьому все закінчується.
Виміряти тих, хто виглядає завислим
Лише для цього короткого списку вартовий платить за справжній замір пам'яті, зі стисненими сторінками і тими, що пішли у своп. Процес, який він не зміг виміряти, не позначається ніколи: невідомість не вирок.
Повідомити і дати вам вирішити
У рядку стану з'являється індикатор, і одне-єдине сповіщення повідомляє вам про це. Ви відкриваєте список, бачите, що це за процес, скільки він займає, як давно він завис і який агент його запустив, і завершуєте його, якщо хочете.
Чого він не торкнеться ніколи
Інструмент, здатний завершувати процеси, зобов'язаний вузько розуміти, що його стосується. Ці межі структурні, а не опції, які треба не забути увімкнути.
- Самого CLI агента. Хоч якого провайдера ви запустите, вартовий захищає бінарник, яким застосунок запустив цей термінал. Це ім'я він читає із самого запуску, а не з зашитого списку, тож дочірній процес того самого CLI захищений теж, на будь-якій глибині.
- Ваших терміналів dev-команд. Dev-сервер у стані спокою підпадає під усі ознаки втеклого процесу: товстий, старий, процесор не вантажить. І це ж єдиний процес, який ви справді хочете бачити робочим. Стежать лише за терміналами агентів, тож ваш dev-сервер у кадр не потрапляє ніколи.
- Оболонки і внутрішньої механіки застосунку. Термінальний помічник і оболонка, в якій працює агент, виключені за побудовою. Кандидатами стають лише процеси інструментів нижче CLI агента.
- Усього, чого він не всиновив. Єдиний шлях, здатний завершити процес, відмовляє будь-якому процесу, якого вартовий не підібрав у дереві самого агента. Він не може перетворитися на спосіб завершити щось інше на вашій машині.
І ніщо не завершується автоматично, поки ви цього не попросите. За замовчуванням вартовий повідомляє, що знайшов, а вирішуєте ви, бо саме ви знаєте, чи великий і тихий процес був очікуваним.
Коли він виправдовує своє місце
Кожна з цих ситуацій реальна, жодна не гіпотетична.
Машина повільніша о 18:00, ніж о 9:00
Немає моменту, коли щось зламалося, є рівне сповзання за день. Така форма майже завжди означає накопичені завислі процеси, і її найважче продіагностувати руками, бо в будь-яку окрему мить ніщо не виглядає неправильним.
Кілька агентів працюють паралельно
Що більше агентів ви запускаєте, то більше викликів інструментів, і то більше шансів, що один із них заклинить. Частка відмов на виклик крихітна; помножена на день паралельної роботи, вона перестає бути крихітною.
Пошук, який так і не повернувся
Шаблон, який розриває рушій регулярних виразів, виділяє гігабайти на файлі в кілька сотень кілобайт. Агент чекає на нього, ви чекаєте на агента, а платить за обох машина.
Ви закрили агента, а процес лишився
Закриття вкладки звільняє не завжди і не все. Уже від'єднаний процес зберігає свою пам'ять і втрачає останній зв'язок із чимось, що видно в застосунку.
Ноутбук із 16 ГБ
На машині з великим запасом RAM кілька завислих процесів ховаються довго. На ноутбуці з 16 ГБ вони швидко впираються у своп, і щойно система починає стискати пам'ять, усі ваші агенти сповільнюються одночасно.
Перш ніж звинувачувати застосунок
Коли машина ледве повзе з відкритим AgentsRoom, очевидний підозрюваний: сам застосунок. Справжні цифри по кожному процесу, з агентом, який його запустив, перетворюють підозру на те, що справді можна перевірити.
Межі задаєте ви
Значення за замовчуванням навмисно обережні. Усе, що нижче, живе в налаштуваннях, на вкладці «Термінал», і кожне з них агент теж може прочитати і змінити через MCP-інструменти AgentsRoom.
- Стежити за дочірніми процесами агентів
- Увімкнено за замовчуванням. Вимкніть його, і жоден скан більше не запуститься, ніколи.
- Повідомляти вище порога пам'яті
- Два гігабайти за замовчуванням. Нижче цього завислий процес не вартий того, щоб вас відволікати. Підніміть поріг на робочій станції з великим запасом RAM, опустіть його на ноутбуці, де пам'ять на вагу золота.
- Після мінімального часу життя
- П'ять хвилин за замовчуванням. Саме це не дає позначити повільне, але законне завдання, бо майже ніщо з того, що вам справді потрібно, не триває п'ять хвилин узагалі без процесора.
- Завершувати завислі процеси автоматично
- Вимкнено за замовчуванням, і це усвідомлене продуктове рішення, а не обережність. Вартовий виносить судження, а чи був великий і тихий процес очікуваним, знаєте лише ви. Увімкніть його, і він діятиме сам, надсилаючи сповіщення постфактум.
Поріг за процесором навмисно не виведено назовні. Це те саме вимірювання, яке відділяє робочу збірку від завислого процесу, і це не питання смаку.
Часті запитання
Чи означає це, що AgentsRoom сповільнює мій комп'ютер?
Ні, і саме тому ця функція існує. У сесії, яку ми виміряли, застосунок займав 2,8 ГБ на 91 процес, а вісім CLI агентів разом 1,6 ГБ. Ті 41,8 ГБ тримали процеси інструментів, які заклинили. AgentsRoom просто виявляється єдиним місцем, звідки видно всіх агентів і всі процеси, які вони породили, а отже і єдиним місцем, звідки можна розсудити.
Він уб'є мою збірку чи прогін тестів?
Ні. Процес позначається тільки тоді, коли він великий І старий І перестав використовувати процесор. Збірка, яка справді працює, вантажить ядро вщент, тож вона не проходить третю умову і кандидатом не стає ніколи. Ця умова існує саме для того, щоб провести таку межу.
Чи стежить він за моїм dev-сервером?
Ні, і не стежитиме ніколи. Dev-сервер у стані спокою підпадає під усі ознаки втеклого процесу: він займає багато пам'яті, працює вже годинами і не використовує процесор між запитами. Стежать лише за дочірніми процесами терміналів агентів, тож ваші dev-команди за побудовою поза периметром.
Чи може він завершити самого агента?
Ні. CLI агента захищений за будь-якого провайдера, і захист спирається на бінарник, яким застосунок запустив цей термінал, а не на список відомих імен. Оболонка і термінальний помічник самого застосунку виключені теж.
Що таке процес-сирота і чому до нього окреме ставлення?
Процес, чий батько завершився, переходить під процес init системи. Від цієї миті ніщо не пов'язує його з агентом, який його запустив, тож прибирати за ним буде нікому. AgentsRoom запам'ятовує належність, поки процес ще прив'язаний: це єдина мить, коли її можна встановити, і завдяки цьому він усе одно може повідомити про процес пізніше.
Скільки коштує саме це стеження?
Один знімок процесів на хвилину, заміряний приблизно в 40 мс на машині з 824 процесами. Дорожчий замір пам'яті застосовується лише до процесів, які вже виглядають завислими, а за звичайної роботи це означає, що він не застосовується. І поки жоден агент не активний, скану не існує зовсім.
Чому не подивитися просто на колонку пам'яті в «Моніторингу системи»?
Бо на macOS вона занижує проблему на порядок. Процес, витіснений у стиснену пам'ять, може показувати 20 МБ резидентної, займаючи при цьому 8 ГБ. Один такий ми виміряли наживо: 4,7 ГБ резидентної при реальному обсязі 14 ГБ. Віртуальний розмір не кращий: навіть системні процеси показують його сотнями гігабайт.
Чи працює це з Claude Code, Codex та рештою?
Так. Вартовий нічого не знає про жоден конкретний інструмент чи провайдер. Він стежить за дочірніми процесами того термінала агента, який ви запустили, а захищений CLI читається із самого запуску. Додавання провайдера тут нічого не змінює.
Чи працює це на Windows і Linux?
Так. Кожній платформі потрібне своє вимірювання, щоб пам'ять не брехала: стиснені сторінки на macOS, резидентна плюс та, що пішла у своп, на Linux, приватна виділена пам'ять на Windows. Усі три реалізовані.
Чи завершуватиме він процеси, не спитавши мене?
Лише якщо ви це увімкнете. За замовчуванням він повідомляє, що знайшов, з агентом, пам'яттю, віком і навантаженням процесора, а вирішуєте ви. Автоматичне завершення лишається налаштуванням, вимкненим з коробки.
Що стається з агентом, коли я завершую один із його процесів?
Агент працює далі. Його виклик інструмента отримує помилку замість того, щоб висіти вічно, і це саме той результат, який вам потрібен: цей процес усе одно ніколи б не завершився. Ніщо не перезапускається, і жоден контекст не втрачається.
Чи усуває це першопричину?
Ні, і він навіть не намагається. Причини змінюються: сьогодні один інструмент, завтра інший шаблон, за місяць інший провайдер. Це страхувальна сітка, і вона розрахована на те, щоб працювати далі, коли причина виявиться такою, якої ще ніхто не бачив.
Вам також може сподобатися
Канарейка контексту
Інше раннє попередження: воно стежить за контекстом самого агента, а не за машиною, і каже вам, що агент відхиляється, перш ніж він почне вигадувати файли й API.
Термінали розробника
Запускайте свої dev-сервери і довгі команди просто в AgentsRoom, зі сповіщенням, коли довга команда завершилася. Це саме ті термінали, яких вартовий процесів за задумом не торкається ніколи.
Відстеження статусу агентів
З першого погляду видно, які агенти працюють, які чекають на вас, а які бездіяльні, і жодного термінала читати не потрібно.
Використання токенів
Інший ресурс, за яким варто стежити. Споживання токенів і квота по кожному агенту, щоб ви знали, куди йде ваш ліміт.
Розділений вигляд
Кілька агентів пліч-о-пліч в одному вікні, у кожного своя панель, свій колір і свій статус наживо.
CLI Doctor
Коли агент не може стартувати, він каже вам, чому і що з цим робити, замість того щоб лишити вас перед порожнім терміналом.
Годі платити за процеси, якими ніхто не користується
AgentsRoom безкоштовний для завантаження, а вартовий процесів працює з першого запуску.
Додаток-компаньйон: контролюйте своїх агентів на ходу
Використовуйте свого: Claude, Codex, Antigravity CLI або іншого AI-провайдера.
Надсилайте баги та запити прямо у свій публічний беклог.
Погляд на AgentsRoom в дії.