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для получения статуса, журналов или подтверждения завершения, когда автоматическое уведомление о завершении недоступно. - Перед восстановлением интерактивного CLI используйте
log, чтобы одновременно видеть текущую расшифровку, состояние 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.