Ir para o conteúdo

Refinamento em laço

O mesmo agente passa três vezes pelo texto, melhorando a cada rodada, e só então um segundo agente apresenta o resultado.

Atualizado em 01 de set. de 2026

Pedir "melhore este texto" uma vez dá uma melhora. Pedir três vezes, cada uma sobre a versão anterior, dá outra coisa — é o mesmo truque de quem reescreve um parágrafo até ele ficar bom.

O card Laço While repete um trecho do fluxo enquanto a condição for verdadeira, com um teto de segurança (max_iterations) para nenhum agente ficar rodando para sempre.

Como importar

Na plataforma: Agents → Importar, escolha o arquivo baixado. Ele entra como um rascunho novo (nada existente é alterado), com ids de observabilidade renovados. Depois preencha o que é do seu ambiente — credenciais, URLs e bases de conhecimento — e publique.

O arquivo

refine-loop.hinow-agent.jsonjson
{
 "format": "hinow.agent",
 "version": 1,
 "exported_at": "2026-09-01T00:00:00Z",
 "credentials_included": false,
 "agent": {
  "name": "Refinamento em laço",
  "description": "O texto passa três vezes pelo mesmo agente, melhorando a cada rodada, e só depois é apresentado.",
  "avatar": null,
  "model": "hinow/hicode",
  "system_prompt": null,
  "config": {},
  "tools": null,
  "workflow": {
   "nodes": [
    {
     "id": "start",
     "type": "start",
     "position": {
      "x": 300,
      "y": 0
     },
     "data": {
      "label": "Início",
      "variables": []
     }
    },
    {
     "id": "loop-1",
     "type": "while",
     "position": {
      "x": 285,
      "y": 150
     },
     "data": {
      "name": "3 rodadas",
      "loop_condition": "{{round}} <= 3",
      "max_iterations": 4
     }
    },
    {
     "id": "agent-melhora",
     "type": "agent",
     "position": {
      "x": 560,
      "y": 150
     },
     "data": {
      "name": "lapidador",
      "model": "hinow/hicode",
      "system_prompt": "Melhore o texto mais recente da conversa (o do usuário na 1ª vez; depois, a sua última versão): mais claro, mais forte, mais conciso. Responda SÓ com a nova versão, prefixada por 'v{{round}}: '.",
      "config": {}
     }
    },
    {
     "id": "agent-final",
     "type": "agent",
     "position": {
      "x": 275,
      "y": 340
     },
     "data": {
      "name": "apresentador",
      "model": "hinow/hicode",
      "system_prompt": "Apresente a versão final do texto lapidado e, em 1 frase, o que evoluiu desde o original.",
      "config": {}
     }
    },
    {
     "id": "end-1",
     "type": "end",
     "position": {
      "x": 305,
      "y": 500
     },
     "data": {
      "label": "Fim"
     }
    }
   ],
   "edges": [
    {
     "id": "e-start-loop-1-d",
     "source": "start",
     "target": "loop-1"
    },
    {
     "id": "e-loop-1-agent-melhora-loop",
     "source": "loop-1",
     "target": "agent-melhora",
     "sourceHandle": "loop"
    },
    {
     "id": "e-agent-melhora-loop-1-d",
     "source": "agent-melhora",
     "target": "loop-1"
    },
    {
     "id": "e-loop-1-agent-final-exit",
     "source": "loop-1",
     "target": "agent-final",
     "sourceHandle": "exit"
    },
    {
     "id": "e-agent-final-end-1-d",
     "source": "agent-final",
     "target": "end-1"
    }
   ]
  }
 }
}

Card a card

CardPor que está aquiO que faz
**Laço While**Repetição controlada.Condição {{round}} <= 3 e max_iterations: 4. Duas saídas: LOOP (repete) e EXIT (segue).
**Agent lapidador**O trabalho que se repete.Melhora a última versão e prefixa com v{{round}} — dá para ver a evolução rodada a rodada.
**A volta ao laço**É ela que fecha o ciclo.A ligação do agente **de volta** para o While é o que faz a rodada seguinte acontecer. Sem ela, o laço roda uma vez só.
**Agent apresentador**Separar iterar de entregar.Sai pela EXIT e apresenta a versão final, dizendo em uma frase o que evoluiu.

Sempre com teto

max_iterations é o cinto de segurança: se a condição nunca virar falsa (variável que não incrementa, condição mal escrita), é ele que encerra o laço. Um laço sem teto é a forma mais rápida de queimar tokens.

Como adaptar ao seu caso

  • Até passar no critério, não até contar 3: troque a condição por uma variável que um agente avaliador define ({{aprovado}} == false) — o laço para quando a qualidade chega, não quando o contador estoura.
  • Reprocessar uma fila: o laço consome uma coleção declarada no Início, um item por rodada.
  • Tentar de novo com backoff: um laço em volta de um Webhook que às vezes falha, com o agente decidindo se vale insistir.

Todos os fluxos prontos

Outros agents completos para importar e adaptar.