Estou na área de tecnologia há muitos anos, tendo passado por diferentes fases e ferramentas. Desde 2012, venho trabalhando com dados, Machine Learning e Deep Learning. Quando os Transformers ganharam força, passei a trabalhar cada vez mais com soluções de IA e, nos últimos anos, com arquiteturas desse tipo em aplicações de produção que atendem milhões de usuários.

[Pitch] Criei a AAL (Agent Architecture Language): uma especificação em YAML para desenhar sistemas de IA

AAL: Uma Especificação em YAML

Sempre gostei de desenhar as soluções antes de iniciar o desenvolvimento para ter uma visão geral e tentar pensar em todos os cenários. Para isso, usei ferramentas como Lucidchart, Draw.io, Excalidraw, entre várias outras. O problema é que diagramas visuais podem acabar separados do código e ficar desatualizados conforme a arquitura muda.

Com LLMs capazes de gerar e revisar código, comecei a pensar: por que não descrever a arquitetura em um formato que também possa ser versionado, validado e transformado em um diagrama?

Mermaid já resolve muito bem a criação de diagramas a partir de texto e continuo gostando da ferramenta, mas no meu caso senti falta de representar componentes específicos de sistemas com agentes, como modelos, tools, memória e guardrails, além de validar as referências entre eles. Foi daí que surgiu a AAL (Agent Architecture Language), uma especificação declarativa em YAML para descrever arquiteturas de agentes.

Descrição da AAL

A AAL é uma especificação declarativa e simples em YAML, onde você descreve cada componente e cria as conexões entre eles para formar o diagrama da sua arquitetura. Exemplo de um agente com duas tools básicas em.aal.yaml:

```yaml
agent: agent1

components:

  • name: tool1

type: basic

  • name: tool2

type: basic

references:

  • tool1
  • tool2

connections:

  • from: tool1

to: tool2
```

As referências em tools registram as dependências do agente. Já topology define as conexões direcionadas que aparecem no canvas. Separar essas duas coisas permite declarar o que o agente usa e, independentemente, o que quero destacar visualmente na arquitetura.

Ferramenta de Edição e Visualização

Criei também o Graphen Studio, uma ferramenta open source para editar e visualizar essas definições no navegador. A ideia nasceu de uma necessidade minha e ainda está evoluindo.

Funcionalidades do Graphen Studio

O Graphen Studio lê esse YAML em tempo real no navegador, faz a validação do schema e constrói o grafo interativo da arquitetura. A AAL também tem campos para grupos, MCPs, memórias, guardrails e componentes de condição ou ação.

Limitações e Propósito

Um ponto importante: AAL e Graphen Studio não executam os agentes, chamam tools nem avaliam condições. A proposta é descrever, validar e visualizar a arquitetura, não substituir o framework ou runtime que implementa o sistema.

Exemplo de uso

Exemplo de um agente com duas tools básicas em.aal.yaml:

Conclusão

A AAL e o Graphen Studio são ferramentas que permitem representar a arquitetura usando esse padrão em YAML, que pode ser versionado no projeto. Cheguei a pensar em montar algo nessa ideia de templates, mas como essas ferramentas de geração de código estão cada dia mais avançadas fiquei na dúvida se realmente faria sentido, talvez uma skill bem pensada já seria suficiente.

Referências

  • [Graphen Studio](https://graphen-studio.github.io/graphen/studio/)
  • [Documentação da AAL](https://graphen-studio.github.io/graphen/docs/)
  • [Repositório GitHub](https://github.com/graphen-studio/graphen)
  • [SKILL para geração automática via LLM](https://github.com/graphen-studio/graphen/tree/main/skills/aal-architecture-skill)

A AAL e o Graphen Studio são ferramentas que permitem representar a arquitetura usando esse padrão em YAML, que pode ser versionado no projeto.

AgentArchitectureCrieiLanguagePitch