Seus agentes pagam para interpretar a arquitetura. Toda vez.
Diagrama é feito para gente ler. Entregar um a um modelo transforma cada tarefa em um exercício de interpretação.
Ler um draw.io queima tokens
O arquivo é um XML enorme, cheio de coordenadas, estilos e ids gerados. O agente gasta tokens para reconstruir um grafo que nunca foi guardado como grafo.
Screenshots custam mais e alucinam mais
Tokens de imagem e, depois, a inferência do que cada seta quer dizer. É push ou polling? Síncrono ou assíncrono? O modelo alucina uma resposta.
O mesmo diagrama gera um design diferente a cada execução
A interpretação é probabilística. Duas sessões leem a mesma imagem e constroem sistemas diferentes.
Ninguém avisa ao agente que ele errou
Não existe ciclo de feedback para um design. Dependências soltas e contratos quebrados só aparecem em produção, nunca no prompt.
Um harness de system design.
Contexto para ler, guardrails para respeitar e feedback para corrigir. Validar é rodar um programa, não escrever um prompt: não custa nada e dá o mesmo resultado em toda execução.
- 01
Contexto
O agente lê a arquitetura como dado tipado. Sem decifrar desenho, sem alucinar o que uma seta quer dizer.
- 02
Guardrails
Suas regras viram policies que toda mudança precisa cumprir: ownership, dependências permitidas, nomenclatura, tudo que o CEL consegue expressar.
- 03
Feedback
O asl compila a mudança e devolve poucas linhas de diagnóstico. O agente corrige sozinho, e o CI barra o merge quando o exit code é 1.
Você define o que é antipadrão no seu contexto.
Várias aplicações escrevendo no mesmo banco de dados pode ser aceitável em uma empresa e um erro na sua. Escreva essa regra uma única vez e toda arquitetura proposta por um agente será verificada contra ela, antes de qualquer linha de código.
01O agente propõe
O billing-service precisa registrar dados de crédito, e gravar direto no credit-db é o caminho mais rápido para entregar a funcionalidade.
apiVersion: asl/v1
kind: Application
metadata:
name: credit-service
spec:
providers:
aws: EKS
language: Go
---
apiVersion: asl/v1
kind: Application
metadata:
name: billing-service
spec:
providers:
aws: EKS
language: Go
---
apiVersion: asl/v1
kind: Database
metadata:
name: credit-db
spec:
providers:
aws: RDSPostgreSQL
---
apiVersion: asl/v1
kind: Relationship
metadata:
name: credit-db-edges
spec:
edges:
- from:
kind: Application
name: credit-service
to:
kind: Database
name: credit-db
type: writes
- from:
kind: Application
name: billing-service
to:
kind: Database
name: credit-db
type: writes
02Seu contexto diz não
Uma CustomPolicy, versionada com o código: um banco de dados tem um único escritor.
apiVersion: asl/v1
kind: CustomPolicy
metadata:
name: single-writer
namespace: acme
spec:
severity: error
selector:
kind: Database
assertions:
# only one application may write to this database
- expression: to(manifest, 'writes').size() <= 1
message: Only one application may write to database
03O compilador responde
Sem chamada a modelo nenhum. O agente lê poucas linhas, dá ao billing-service um banco só dele e roda de novo.
error: Only one application may write to database
--> architecture/credit.asl.yaml:18
policy: acme.single-writer
error: could not compile due to 1 previous error (6.6ms)
O ASL não é diagrama como código.
Não desenhe a arquitetura. Especifique.
Um único compilador. Use onde você já trabalha.
As mesmas checagens e o mesmo resultado no seu pipeline, nas suas ferramentas, no navegador e nos seus scripts.
No seu pipeline
Rode a cada pull request. Uma arquitetura que viola uma regra derruba o build antes de ser integrada.
Nas suas ferramentas
Integre a checagem ao portal ou à plataforma interna que o seu time já usa. A arquitetura é validada ali mesmo, sem ninguém sair da ferramenta.
Em um editor de diagramas
Alimente um editor de diagramas: a pessoa desenha no canvas e o ASL valida a arquitetura por trás, ao vivo e sem servidor.
Em Python
Rode as mesmas checagens em scripts e notebooks, junto das suas ferramentas de dados e IA.
Dê aos seus agentes um design que eles consigam ler.
Escreva a regra uma vez. Toda proposta de um agente passa por ela antes de virar código.