Blog
Notas sobre o harness, os modelos por baixo dele e o que muda quando chega um novo.
Sincronização de memória sem “a última gravação vence”
Duas máquinas, um conjunto de notas, uma delas editada enquanto a outra estava dormindo. Todo sistema de sincronização responde a isso, e a maioria responde com uma comparação de timestamps que descarta silenciosamente um dos lados. Isso serve para um rascunho que você pode redigitar. Não serve para o arquivo que um agente lê antes de cada turno, porque o que ele descarta é a linha que você escreveu para impedir que algo aconteça de novo.
Ids de modelo não pertencem ao TypeScript
Um id de modelo é o fato que muda mais rápido em todo este sistema. Os fornecedores os renomeiam, os aposentam, lançam uma variante datada, mudam discretamente para onde aponta o alias sem data e restringem metade deles conforme a conta que está pedindo. Compile isso em um pacote e você garantiu que o pacote estará errado em poucas semanas — não quebrado de um jeito óbvio, o que pelo menos geraria um relato de bug, mas errado justamente do jeito em que um seletor oferece a alguém um modelo que a chave dessa pessoa não consegue chamar.
Uma regra deny é o único limite que você tem
Todo o resto que um harness de agentes chama de permissão é um julgamento sobre custo. Vale dizer isso com todas as letras, porque a interface não diz: um pedido de aprovação, um modo chamado Auto e uma configuração de diretórios graváveis parecem a mesma espécie de coisa, e só um deles é uma linha que o sistema vai manter aconteça o que acontecer.
Trocar de modelo no meio da sessão não custa nada
E isso é uma decisão de design, não um recurso. A maioria das ferramentas de agentes é escrita para um único fornecedor e adaptada aos outros depois. A ordem parece um detalhe de implementação. É a coisa toda.