exec e mantém tarefas de longa duração na memória. A ferramenta process gerencia essas sessões em segundo plano.
Ferramenta exec
Parâmetros:
Comportamento:
- Execuções em primeiro plano retornam a saída diretamente.
- Quando executada em segundo plano (explicitamente ou devido ao tempo limite de
yieldMs), a ferramenta retornastatus: "running"+sessionIde um pequeno trecho final da saída. - Execuções em segundo plano e com
yieldMsherdamtools.exec.timeoutSec, a menos que a chamada forneça umtimeoutexplícito. - A saída permanece na memória até que a sessão seja consultada ou removida.
- Se a ferramenta
processnão for permitida,execserá executada de forma síncrona e ignoraráyieldMs/background. - Os comandos exec iniciados recebem
OPENCLAW_SHELL=execpara regras de shell/perfil sensíveis ao contexto. - Para trabalhos de longa duração que começam agora: inicie-os uma vez e conte com a ativação automática após a conclusão (quando habilitada), assim que o comando produzir saída ou falhar.
- Se a ativação automática após a conclusão não estiver disponível ou você precisar confirmar o êxito silencioso de um comando que termina corretamente sem saída, consulte com
process. - Não simule lembretes ou acompanhamentos adiados com loops de
sleepou consultas repetidas — use cron para trabalhos futuros.
Substituições por variáveis de ambiente
Configuração (preferível às substituições por variáveis de ambiente)
Integração de processos filhos
Ao iniciar processos filhos de longa duração fora das ferramentas exec/process (reinicializações da CLI, auxiliares do Gateway), anexe o auxiliar de integração de processos filhos para que os sinais de encerramento sejam encaminhados e os listeners sejam desconectados na saída ou em caso de erro. Isso evita processos órfãos no systemd e mantém o encerramento consistente entre plataformas.Ferramenta process
Ações:
Observações:
- Somente sessões em segundo plano são listadas/persistidas — apenas na memória, não no disco. As sessões são perdidas quando o processo é reiniciado.
- Uma sessão ativa em segundo plano bloqueia a suspensão cooperativa do host e a reinicialização segura do Gateway até que o proprietário do processo confirme que ele realmente terminou.
process removepode ocultar imediatamente uma sessão em execução após solicitar o encerramento; a suspensão e a reinicialização permanecem bloqueadas até a confirmação da saída.- Os logs da sessão só são salvos no histórico do chat se você executar
process poll/loge o resultado da ferramenta for registrado. processtem escopo por agente; ela só vê sessões iniciadas por esse agente.- Use
poll/logpara verificar o status, os logs ou a conclusão quando a ativação automática após a conclusão não estiver disponível. - Use
logantes de recuperar uma CLI interativa, para que a transcrição atual, o estado de stdin e a indicação de espera por entrada fiquem visíveis em conjunto. - Use
write/send-keys/submit/paste/killquando precisar fornecer entrada ou intervir. process listinclui umnamederivado (verbo do comando + destino) para consultas rápidas.process list,polleloginformamwaitingForInputsomente quando a sessão ainda tem stdin gravável e permanece inativa por mais tempo que o limite de espera por entrada (padrão: 15000 ms,OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS).process logusaoffset/limitcom base em linhas. Quando ambos são omitidos, retorna as últimas 200 linhas com uma indicação de paginação. Quandooffseté definido elimitnão é, retorna deoffsetaté o fim (sem limite de 200).- O
timeoutdepollaguarda até essa quantidade de milissegundos antes de retornar; valores acima de 30000 são limitados a 30000. - A consulta serve para obter o status sob demanda, não para agendar loops de espera. Se o trabalho precisar ocorrer posteriormente, use cron.