OpenClaw запускає shell-команди через інструментDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
exec і зберігає довготривалі завдання в пам’яті. Інструмент process керує цими фоновими сеансами.
Інструмент exec
Ключові параметри:command(обов’язково)yieldMs(типово 10000): автоматично переводити у фон після цієї затримкиbackground(bool): негайно перевести у фонtimeout(секунди, типовоtools.exec.timeoutSec): завершити процес після цього часу очікування; задавайтеtimeout: 0лише щоб вимкнути таймаут процесу exec для цього викликуelevated(bool): запускати поза пісочницею, якщо підвищений режим увімкнений/дозволений (gatewayтипово абоnode, коли ціль exec —node)- Потрібен справжній TTY? Установіть
pty: true. workdir,env
- Запуски на передньому плані повертають вивід безпосередньо.
- Коли переведено у фон (явно або через таймаут), інструмент повертає
status: "running"+sessionIdі короткий хвіст виводу. - Фонові запуски та запуски з
yieldMsуспадковуютьtools.exec.timeoutSec, якщо виклик не надає явнийtimeout. - Вивід зберігається в пам’яті, доки сеанс не буде опитано або очищено.
- Якщо інструмент
processзаборонений,execзапускається синхронно й ігноруєyieldMs/background. - Породжені команди exec отримують
OPENCLAW_SHELL=execдля контекстно-залежних правил shell/профілю. - Для довготривалої роботи, яка починається зараз, запустіть її один раз і покладайтеся на автоматичне пробудження після завершення, коли воно ввімкнене й команда видає вивід або завершується з помилкою.
- Якщо автоматичне пробудження після завершення недоступне або потрібне підтвердження тихого успіху
для команди, яка коректно завершилася без виводу, використовуйте
processдля підтвердження завершення. - Не імітуйте нагадування чи відкладені подальші дії циклами
sleepабо повторним опитуванням; використовуйте Cron для майбутньої роботи.
Міст дочірніх процесів
Під час породження довготривалих дочірніх процесів поза інструментами exec/process (наприклад, перезапуски CLI або допоміжні процеси Gateway) підключайте допоміжний міст дочірніх процесів, щоб сигнали завершення пересилалися, а слухачі від’єднувалися під час виходу/помилки. Це запобігає осиротілим процесам у systemd і забезпечує узгоджену поведінку завершення роботи на різних платформах. Перевизначення середовища:PI_BASH_YIELD_MS: типова затримка yield (мс)PI_BASH_MAX_OUTPUT_CHARS: ліміт виводу в пам’яті (символи)OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS: ліміт очікуваних stdout/stderr на потік (символи)PI_BASH_JOB_TTL_MS: TTL для завершених сеансів (мс, обмежено 1 хв–3 год)OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS: поріг простою виводу, після якого фонові сеанси з можливістю запису позначаються як такі, що ймовірно очікують введення (типово 15000 мс)
tools.exec.backgroundMs(типово 10000)tools.exec.timeoutSec(типово 1800)tools.exec.cleanupMs(типово 1800000)tools.exec.notifyOnExit(типово true): поставити системну подію в чергу + запросити Heartbeat, коли фоновий exec завершується.tools.exec.notifyOnExitEmptySuccess(типово false): якщо true, також ставити в чергу події завершення для успішних фонових запусків, які не створили виводу.
Інструмент process
Дії:list: запущені + завершені сеансиpoll: зчитати новий вивід для сеансу (також повідомляє статус виходу)log: прочитати агрегований вивід і показати підказки для відновлення введення (підтримуєoffset+limit)write: надіслати stdin (data, необов’язковоeof)send-keys: надіслати явні клавішні токени або байти до сеансу на базі PTYsubmit: надіслати Enter / повернення каретки до сеансу на базі PTYpaste: надіслати буквальний текст, необов’язково обгорнутий у режим bracketed pastekill: завершити фоновий сеансclear: видалити завершений сеанс із пам’ятіremove: завершити, якщо запущений; інакше очистити, якщо завершений
- Лише фонові сеанси відображаються у списку/зберігаються в пам’яті.
- Сеанси втрачаються під час перезапуску процесу (без збереження на диск).
- Журнали сеансів зберігаються в історії чату лише якщо ви запускаєте
process poll/logі результат інструмента записується. processмає область дії на рівні агента; він бачить лише сеанси, запущені цим агентом.- Використовуйте
poll/logдля статусу, журналів, підтвердження тихого успіху або підтвердження завершення, коли автоматичне пробудження після завершення недоступне. - Використовуйте
logперед відновленням інтерактивного CLI, щоб поточний transcript, стан stdin і підказка очікування введення були видимі разом. - Використовуйте
write/send-keys/submit/paste/kill, коли потрібне введення або втручання. process listмістить похіднеname(дієслово команди + ціль) для швидкого перегляду.process list,pollіlogповідомляютьwaitingForInputлише коли сеанс усе ще має stdin з можливістю запису й простоює довше за поріг очікування введення.process logвикористовує рядковіoffset/limit.- Коли і
offset, іlimitпропущено, повертаються останні 200 рядків і додається підказка щодо пагінації. - Коли надано
offset, аlimitпропущено, повертається вивід відoffsetдо кінця (без обмеження 200). - Опитування призначене для статусу на вимогу, а не для планування циклу очікування. Якщо робота має відбутися пізніше, натомість використовуйте Cron.