O que paseo-loop faz?
Execute um loop de agente até que uma condição de saída seja atendida. Use quando o usuário disser "loop", "babysit", "continue tentando até", "verificar a cada X", "monitorar" ou quiser uma execução autônoma iterativa.
Visão Geral
Esta habilidade permite que um agente de IA execute uma ação repetidamente até que uma condição de saída seja satisfeita. Isso é útil para tarefas como:
- Monitorar um serviço até que ele responda
- Tentar um deploy até que seja bem-sucedido
- Verificar o resultado de um teste a cada intervalo
- Aguardar um arquivo aparecer ou um log conter uma mensagem específica
Funcionamento
- O agente recebe um comando no formato
loop [comando] [condição]. - O agente executa o comando fornecido repetidamente.
- A cada iteração, verifica se a condição de saída foi atingida (ex: saída do comando contém "success", um arquivo existe, passou um tempo limite).
- Se a condição for satisfeita, o loop termina e o agente reporta o resultado.
- Se uma condição de fallback (ex: número máximo de iterações, timeout global) for atingida, o loop termina com erro.
Exemplos de Uso
loop 'kubectl get pods' 'Running'– Executakubectl get podsaté que a saída contenha "Running".loop 'curl -f http://localhost:8080/health' '200'– Tenta um health check até receber HTTP 200.loop 'npm test' 'passing'– Roda testes até que apareça "passing" no log.loop 'ls /tmp/result.txt' '' --max-iterations 10 --interval 5– Verifica a existência de um arquivo a cada 5 segundos, no máximo 10 vezes.
Parâmetros Suportados
| Parâmetro | Descrição | Padrão |
|---|---|---|
comando | Comando a ser executado repetidamente | Obrigatório |
condição | String ou regex que indica sucesso | Vazio (sucesso se comando retorna 0) |
--interval | Tempo de espera entre iterações (em segundos) | 10 |
--max-iterations | Número máximo de iterações | 100 |
--timeout | Tempo máximo total (em segundos) | 1800 (30 min) |
--verbose | Exibe detalhes de cada iteração | false |
Dicas
- Use
--intervalpara evitar sobrecarregar sistemas com verificações muito frequentes. - Combine com
--max-iterationspara evitar loops infinitos indesejados. - A condição é case-insensitive por padrão.
- Se a condição estiver vazia, o loop considera sucesso se o comando retornar código 0.
Solução de Problemas
- Loop nunca termina: Verifique se a condição de saída está correta. Use
--verbosepara ver a saída de cada iteração. - Comando não encontrado: Certifique-se de que o comando está disponível no PATH do ambiente.
- Timeout atingido: Aumente o valor de
--timeoutou verifique se o processo que está sendo monitorado está progredindo.
Contribuição
Sinta-se à vontade para abrir issues ou pull requests no repositório github.com/getpaseo/paseo-loop.