Quando você realmente tenta construir agentes de IA baseados em LLM,
em algum momento acaba sempre batendo em barreiras muito parecidas.
- claramente os modelos ficaram mais inteligentes, mas
- a execução continua instável
- não dá para explicar por que agiu daquele jeito
- até com a mesma entrada o resultado muda
Então normalmente chegamos a esta conclusão.
“O modelo ainda não é suficiente. Vamos usar um modelo maior.”
Mas, depois de passar por várias tentativas e erros na prática, o que senti foi que o centro do problema não é a inteligência do modelo, e sim o fato de que
o ‘mundo (World)’ em que o agente opera não foi projetado.
A essência do problema: o mundo existe só dentro da cabeça do modelo
Em muitas arquiteturas de agentes,
elementos como estado, regras e possibilidades de ação
ficam todos implicitamente embutidos no raciocínio do modelo.
Ou seja,
- o que é possível
- por que uma determinada ação falhou
- quando o estado mudou
para tudo isso esperamos que o modelo “lembre e raciocine por conta própria”.
Nessa estrutura,
por melhor que o modelo fique,
é difícil garantir depuração, reprodutibilidade e explicabilidade.
Mudança de perspectiva: World-Centric Architecture
Por isso, neste texto proponho inverter a perspectiva e desenhar agentes não de forma
centrada no modelo (Intelligence-Centric), mas sim
centrada no mundo (World-Centric).
A ideia central é simples.
- o mundo deve existir explicitamente fora do modelo
- o estado deve ser fixado como Snapshot
- mudanças de estado devem acontecer por um único caminho, chamado Patch/Apply
- “esta ação é possível?” deve ser algo calculado estruturalmente
E o princípio mais importante é esta frase.
> A inteligência não deve executar, apenas propor
O modelo pode propor “o que gostaria de tentar fazer”,
mas não deve ter autoridade para realmente alterar o estado.
Por que isso é importante?
Nessa estrutura, acontece algo interessante.
- ações impossíveis nem chegam à etapa de execução
- falhas são explicadas por razões estruturais, e não porque “o modelo é burro”
- mesmo que a escolha de ações seja aleatória, o sistema não quebra
Isso porque
a correção (correctness) é garantida não pelo raciocínio do modelo, mas pelas regras do mundo e pelo modelo de estado.
Acredito que esta abordagem está mais próxima de um
“sistema operável em produção”
do que de uma demo de pesquisa.
O que este texto não é
- um tutorial de um novo framework de agentes ❌
- um texto comparando desempenho de modelos ❌
- uma discussão sobre prompt engineering ❌
Em vez disso,
> “Por que estamos construindo agentes de IA de forma tão instável?”
foi a pergunta que eu quis levantar.
Também tenho curiosidade sobre como essa abordagem pode ser vista a partir da perspectiva de máquinas de estado, workflow engines, DSLs ou mesmo PL.
Opiniões ou críticas a partir da pergunta
“afinal, em que isso se reduz?”
também são bem-vindas.
Ainda não há comentários.