4

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

Estou na área de tecnologia há muitos anos e passei 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.

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 arquitetura 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.

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.

Como funciona a AAL?

A ideia foi criar uma especificação declarativa e simples em YAML (que todo dev já conhece), 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:

version: "1.1"
metadata:
  name: Assistant

models:
  - id: claude_sonnet
    provider: anthropic
    model: claude-sonnet-4-5

agents:
  - id: assistant
    name: Assistant
    role: General purpose assistant
    model: claude_sonnet
    tools: [calculator, web_search]

tools:
  - id: calculator
    name: Calculator
    mechanism: function
  - id: web_search
    name: Web Search
    mechanism: webhook
    endpoint: "https://api.example.com/search"

topology:
  - from: assistant
    to: calculator
    label: Math operations
  - from: assistant
    to: web_search
    label: Information lookup

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.

O que o Graphen faz (e o que não faz)

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.

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.

Imagem do Graphen

Teste ou explore o projeto

E para quem quiser testar a geração automática via LLM, criei uma SKILL que facilita esse trabalho:
AAL Architecture Skill no GitHub

Espero que seja útil para alguém! Fiquem à vontade para mandar dúvidas, sugestões ou críticas.

Vocês costumam usar Mermaid no dia a dia ou acham que uma DSL em YAML faz sentido para esse cenário?

Carregando publicação patrocinada...
1

Meus 2 cents,

Parabens pela iniciativa !

Fiquei com uma duvida: pelo que entendi, voce implementa os agentes usando algum outro workflow/framework (p.ex. langchain/langflow) e neste projeto a ideia eh apenas visualizar o grafo de uso dele. Eh isso ?

Pensando assim, valeria a pena implementar um sistema de templates, onde apos o grafo validado o agente final seria gerado ? (ou pelo menos a estrutura dele - ou nem vale, uma vez que na pratica o agente vai ter um bocado de codigo dedicado que fica complexo demais abstrair)

Repositorio devidamente starreado e forkeado, obrigado por compartilhar !

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS

1

Opa muito obrigado! Isso mesmo, a ideia é 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.