Meu Agente de Codificação Concluiu a Tarefa. Por que o Thread Morreu?

O pior bug em um agente de codificação não é um crash.

É quando a primeira tarefa é bem-sucedida, mas a próxima mensagem parece amnésia. Você pede uma tarefa. O agente termina. Então você diz: "deixe o botão verde".

Para você, esta é a mesma conversa. Para o sistema, uma tarefa concluída muitas vezes significa que a sessão acabou. O sistema começa do zero.

Ao construir o CliGate, percebi que misturei três camadas diferentes:

Elas não são a mesma coisa.

Uma conversa é um espaço de longa duração para conversar. Uma sessão de runtime é o thread de trabalho para essa conversa. Um turno é uma única execução dentro dessa sessão.

Quando uma tarefa é concluída, apenas o turno deve terminar. A sessão deve permanecer ativa.

O fluxo quebrado é assim: Usuário pede uma tarefa -> Sessão de runtime inicia -> Tarefa é concluída -> Conversa limpa a sessão ativa -> O próximo acompanhamento inicia uma sessão totalmente nova.

Isso quebra acompanhamentos curtos como:

Se o sistema desconectar a sessão imediatamente, você terá que repetir tudo. O agente funciona, mas a conversa parece artificial.

Eu corrigi isso tornando o modelo explícito:

Parei de tratar a conclusão da tarefa como o fim da sessão. Essa pequena mudança melhora toda a percepção do produto.

No CliGate, uma nova sessão só começa se:

Isso condiz com a forma como os humanos pensam. Um usuário espera que uma aba de chat funcione como um thread contínuo. Isso é vital em aplicativos móveis como Telegram ou Feishu.

A nova lógica é simples:

Isso faz com que o agente pareça um colega de trabalho, em vez de um lançador de comandos.

Se você constrói agentes de codificação, lembre-se disso: A conversa é a unidade durável. A sessão de runtime é o trabalhador reutilizável. O turno é o que termina no sucesso ou na falha.

Separe estas três camadas. Seus follow-ups finalmente parecerão conversacionais.

Fonte: https://dev.to/codekingai/my-coding-agent-finished-the-task-why-did-the-thread-die-2jk2

Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi