Saltar para o conteúdo
kenjtecJournal
Pesquisar no Journal

Quando o agente de IA falha: o durable-harness da Vercel retoma a partir do estado do trabalho

Retomar é mais do que um chat guardado. O nosso próprio exemplo de exportação explica pontos de controlo, efeitos secundários pouco claros e onde a repetição segura atinge o seu limite.

O Tobias espera com um envelope; entre uma caixa e o envelope está um pequeno portão aberto com uma bandeira vermelha. Ilustração criada com IA.

Um agente escreve um relatório, cria um ficheiro e depois envia uma mensagem. Em seguida, o processo é interrompido. Ao reiniciar, o chat diz: «Vou enviar o resultado agora.» A mensagem já saiu? O ficheiro tem de ser criado novamente? Um histórico de conversa fluido não responde a estas perguntas.

A 19 de outubro de 2026, a Vercel publicou o durable-harness. O projeto regista os passos e os resultados do agente para que o trabalho possa ser retomado, e trata as ferramentas interrompidas de forma diferente consoante a sua propriedade de repetição. O lançamento é uma ocasião para pensar com mais cuidado sobre o estado do trabalho. O exemplo deste artigo é um modelo nosso, não um teste que tenhamos feito ao projeto.

Intenção, chamada e resultado são três coisas diferentes

Uma intenção descreve o que deve acontecer a seguir. Uma chamada iniciada mostra que o trabalho começou. Só um resultado guardado documenta o que o teu próprio processo sabe sobre isso. Se estes níveis forem confundidos, um reinício pode facilmente produzir trabalho duplicado ou saltar algo que nunca foi concluído.

Para o relatório, o registo «Exportação concluída» não é, portanto, suficiente. Precisa de uma referência aos dados de entrada utilizados e ao ficheiro efetivamente criado. Se o documento de origem mudar, uma exportação anterior pode ainda existir, mas já não é o resultado certo. A reutilização começa com uma atribuição clara.

Step: export-17
Input: bericht-v3
State: completed
Result: bericht-v3.pdf
Next step: notification

Isto é um cartão de controlo legível, não um formato de API. Mostra a diferença essencial entre um nome de ficheiro mencionado numa conversa e um resultado rastreável de um passo específico. Num processo real, o ficheiro correspondente teria de existir de forma verificável.

Um reinício seguro conhece os estados pouco claros

Considera três pontos em que o processo poderia ser interrompido. Antes da exportação, ainda não há resultado. Depois da exportação, mas antes da mensagem, o ficheiro pode ser reutilizado. Enquanto a mensagem está a ser enviada, a situação é mais difícil: o destinatário pode já tê-la recebido, enquanto a confirmação falta no teu próprio registo.

O estado local «nenhuma confirmação guardada» não prova, portanto, «não enviado». Repetir cegamente o passo poderia transformar a incerteza numa mensagem duplicada. Um processo sensato marca este passo como pouco claro e verifica junto do serviço externo, desde que o serviço ofereça uma consulta de estado adequada.

É exatamente aqui que as ações diferem. Voltar a ler um ficheiro existente normalmente não altera nada para o destinatário. Outra mensagem, encomenda ou pagamento, pelo contrário, pode desencadear um novo efeito. Um registo durável não resolve estas diferenças em nome do sistema externo.

A idempotência é uma propriedade da operação

Uma operação repetível deve ser identificável de forma a que o mesmo pedido não crie acidentalmente uma nova tarefa. Se um serviço suportar uma chave destinada a este fim, a mesma operação lógica tem de manter a mesma chave. Uma chave gerada de novo a cada reinício perderia precisamente esta relação.

Se e como isto funciona de forma fiável depende do contrato concreto do serviço. Uma framework de agentes não consegue tornar uma ação repetível em segurança só por lhe dar um rótulo simpático. Nem «exatamente uma vez» é uma consequência gratuita de os registos serem guardados de forma durável.

Um pequeno teste de interrupção explica mais do que uma execução bem-sucedida

No teu próprio ambiente de desenvolvimento, impõe-se um exercício inofensivo: primeiro substitui o passo de envio por um registo local, interrompe o processo nos três pontos mencionados e observa que estados existem ao reiniciar. Anota previamente que passos podem ser repetidos e quais precisam de uma verificação. Não uses pagamentos ou mensagens reais nesta primeira investigação.

A conclusão não está numa taxa de sucesso inventada. Está em conseguir identificar as fronteiras de estado no teu próprio processo. O durable-harness é uma abordagem técnica concreta para isso. Um bom reinício, no entanto, começa sempre com a mesma pergunta: o que aconteceu comprovadamente, e onde é que ainda não sabemos?

Fontes e estado

Pesquisa e documentação à data de 25 de outubro de 2026. Tornar cada harness durável.

Hamburgo é o nosso ponto de partida.

O que é útil viaja contigo.

IA prática de Hamburgo, explicada para todos.

Artigos guardados