exec і зберігає довготривалі завдання в пам’яті. Інструмент process керує цими фоновими сеансами.
Інструмент exec
Параметри:
Поведінка:
- Виконання на передньому плані повертає вивід безпосередньо.
- Після переведення у фоновий режим (явно або через завершення часу
yieldMs) інструмент повертаєstatus: "running"+sessionIdі короткий фрагмент кінця виводу. - Фонові виконання та виконання з
yieldMsуспадковуютьtools.exec.timeoutSec, якщо у виклику явно не переданоtimeout. - Вивід залишається в пам’яті, доки не буде опитано або очищено сеанс.
- Якщо інструмент
processзаборонено,execвиконується синхронно та ігноруєyieldMs/background. - Запущені команди exec отримують
OPENCLAW_SHELL=execдля контекстно-залежних правил оболонки/профілю. - Для довготривалої роботи, яка починається зараз: запустіть її один раз і покладайтеся на автоматичне пробудження після завершення (якщо ввімкнено), щойно команда виведе дані або завершиться помилкою.
- Якщо автоматичне пробудження після завершення недоступне або потрібне підтвердження тихого успішного виконання команди, яка завершується без виводу, опитуйте її за допомогою
process. - Не імітуйте нагадування чи відкладені подальші дії циклами
sleepабо повторним опитуванням — для майбутньої роботи використовуйте Cron.
Перевизначення через змінні середовища
Конфігурація (бажаніша за перевизначення через змінні середовища)
Міст для дочірніх процесів
Під час запуску довготривалих дочірніх процесів поза інструментами exec/process (повторні запуски CLI, допоміжні засоби Gateway) підключайте допоміжний засіб мосту дочірніх процесів, щоб сигнали завершення передавалися далі, а обробники від’єднувалися після виходу/помилки. Це запобігає появі осиротілих процесів у systemd і забезпечує узгоджене завершення роботи на різних платформах.Інструмент process
Дії:
Примітки:
- У списку зберігаються лише фонові сеанси — тільки в пам’яті, не на диску. Після перезапуску процесу сеанси втрачаються.
- Активний фоновий сеанс блокує узгоджене призупинення хоста та безпечний перезапуск Gateway, доки власник процесу не підтвердить його фактичне завершення.
process removeможе негайно приховати активний сеанс після запиту на припинення; призупинення та перезапуск залишатимуться заблокованими до підтвердження завершення.- Журнали сеансу зберігаються в історії чату лише тоді, коли ви виконуєте
process poll/logі результат інструмента записується. - Область дії
processобмежена окремим агентом; він бачить лише сеанси, запущені цим агентом. - Використовуйте
poll/logдля перевірки стану, журналів або підтвердження завершення, коли автоматичне пробудження після завершення недоступне. - Використовуйте
logперед відновленням інтерактивного CLI, щоб одночасно бачити поточний перебіг сеансу, стан stdin і підказку щодо очікування введення. - Використовуйте
write/send-keys/submit/paste/kill, коли потрібне введення або втручання. process listмістить похідне полеname(дієслово команди + ціль) для швидкого перегляду.process list,pollіlogповідомляютьwaitingForInputлише тоді, коли сеанс усе ще має доступний для запису stdin і неактивний довше за поріг очікування введення (стандартно 15000 мс,OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS).process logвикористовує построковіoffset/limit. Якщо обидва параметри не вказано, повертаються останні 200 рядків із підказкою щодо посторінкового перегляду. Якщоoffsetзадано, аlimit— ні, повертаються рядки відoffsetдо кінця (без обмеження у 200 рядків).timeoutдляpollочікує до вказаної кількості мілісекунд перед поверненням; значення понад 30000 обмежуються до 30000.- Опитування призначене для перевірки стану на вимогу, а не для планування циклів очікування. Якщо робота має виконатися пізніше, використовуйте Cron.