AIOX: o framework que transforma agents de IA em squad operável
AIOX é o framework de governança de squads de IA aplicada do Sinkra Hub: 8 layers da identidade do business até a evolução do framework, 8 princípios constitucionais enforced via hooks pré-commit e pré-push, e arquitetura hub-and-spoke que isola 4 businesses no mesmo monorepo sem que mudanças num quebrem os outros.
Principais conclusões
- 01AIOX opera uma camada acima de LangGraph/CrewAI: governança operacional de longo prazo, não orquestração de uma run.
- 02Arquitetura em 8 layers (L1-L8) usa separação física por diretório para amarrar CODEOWNERS por camada.
- 03Constitution tem 8 princípios enforced via hooks executáveis (push, story, quality), não via disciplina humana.
- 04Squad SINKRA-compliant é projetado automaticamente para Claude Code, Gemini e Cursor via *sync-ecosystem.
- 05Hub-and-spoke isola 4 businesses no mesmo monorepo; cross-business só via squad ou serviço compartilhado.
Que problema o AIOX resolve que LangGraph e CrewAI não resolvem?
LangGraph e CrewAI são bibliotecas de orquestração de agentes — você escreve código Python que define grafos de execução, ferramentas e roteamento. Elas resolvem o "como" tático: como passar mensagem entre agentes, como aplicar guardrails, como gerenciar estado durante uma run.
AIOX opera uma camada acima. Resolve o "como" operacional de longo prazo: como múltiplos times humanos trabalham com squads de agentes durante meses, como mudanças num squad não vazam para outros, como agents preservam autoridade exclusiva (só @devops empurra código, só @db-sage roda migration), como squads são projetados para Claude Code, Gemini e Cursor sem dupla escrita. Quem precisa só de orquestração de uma run usa LangGraph e está bem servido. Quem precisa rodar isso em produção com múltiplos businesses, governança formal e CLI First, AIOX é a resposta opinada.
Como funciona a arquitetura em 8 layers?
AIOX organiza tudo em oito camadas, da mais concreta à mais abstrata: L1 Business contém os businesses do hub e seus dados isolados em workspace/businesses/{slug}/; L2 Execution hospeda os squads SINKRA-governados em squads/; L3 Product traz aplicações compartilhadas em apps/; L4 Services abriga adapters em services/; L5 Infrastructure são pacotes @sinkra/* e CI/CD; L6 Framework é o canônico AIOX em .aiox-core/; L7 Governance tem constituição, CODEOWNERS e hooks em .claude/; L8 Evolution é o sistema de auto-aprendizado.
A separação física por diretórios não é cosmética — é o que permite CODEOWNERS aplicar regras de aprovação diferentes por camada (mudança em squads/ precisa de owner do squad; mudança em workspace/businesses/aiox/ precisa do owner do business AIOX; mudança em .aiox-core/ precisa do core team). Sem essa separação, governança vira reuniões intermináveis em vez de regra mecânica.
O que é a Constitution AIOX e como ela é enforced?
A Constitution lista oito princípios não-negociáveis: (1) CLI First (CLI > Observability > UI; toda feature precisa funcionar 100% via CLI antes de UI); (2) Agent Authority (operações exclusivas por agent — só @devops faz push/PR/release); (3) Story-Driven (todo código exige story com critérios de aceitação); (4) No Invention (specs traçam de requirement, nunca inventar feature); (5) Quality First (lint e typecheck precisam passar antes do merge); (6) Task-First (tasks são unidade primária, não agents); (7) KISS (sem overengineering, escopo bounded e logical); (8) Extraction Pipeline sem fallbacks (extractors emitem só valor extraído ou marcador extraction_gap, nunca default universal).
O detalhe que diferencia da maioria dos frameworks: cada princípio é enforced via hook executável, não via disciplina. enforce-git-push-authority.sh bloqueia push se o agent ativo não for @devops. enforce-story-reference.sh avisa quando commit não cita story. enforce-quality-first.sh bloqueia push se doctor falhar. Princípio sem mecanismo é placa de rua sem fiscalização — vira ornamento.
O que significa um squad ser SINKRA-compliant?
SINKRA é o protocolo de mapeamento de processos do hub. Um squad é SINKRA-compliant quando segue um esqueleto fixo: config.yaml com pack, slash_prefix, entry_agent e name; estrutura de diretórios agents/, data/, rules/, skills/, workflows/, tasks/, templates/, scripts/ na raiz (flat por padrão, KISS); um agent declarado como is_entry: true; e validação verde em npm run validate:squad-structure.
Compliance não é burocracia — é o que permite que *sync-ecosystem projete o squad para todos os IDEs suportados automaticamente. Sem o esqueleto, projeção quebra; com ele, um squad recém-materializado vira slash command em Claude Code, Gemini e Cursor sem nenhuma duplicação manual de código. O squad content-geo é exemplo: definido uma vez em squads/content-geo/, virou /geo:geo-chief em Claude Code, slash equivalente em Gemini, e contexto consumível em Cursor.
Como squads são projetados para Claude Code, Gemini e Cursor?
O comando *sync-ecosystem lê squads/{nome}/config.yaml, agents/*.md e skills/*.md, e gera as projeções por IDE: .claude/agents/, .claude/skills/ para Claude Code; .gemini/agents/ e .gemini/commands/ para Gemini; e arquivos equivalentes para outros IDEs registrados. Cada projeção respeita as convenções do IDE alvo (front matter, naming, paths) sem que o autor do squad precise saber dessas convenções.
O autor escreve uma vez em squads/, marca o squad como ide_sync_published: true em squads/sinkra-squad/data/ecosystem-registry.yaml, e roda npm run sync:ide. O resultado é onboarding zero para qualquer time entrar num IDE diferente: o squad já está lá. Squads marcados como ide_sync_published: false ficam manuais, geralmente quando a projeção exige customização que não vale automatizar (caso do próprio content-geo, que tem skills com surface manual em .claude/skills/).
Como isolamento por business funciona em hub-and-spoke?
O hub é o monorepo sinkra-hub. Spokes são os businesses (atualmente AllFluence, AIOX, Academia Lendária e Bilhon). Cada business tem seu workspace em workspace/businesses/{slug}/ com 5 camadas (L0-identity, L1-strategy, L2-tactical, L3-product, L4-operational), TTLs por camada (365d/90d/60d/30d/7d) e CODEOWNERS específico que limita quem pode editar o que.
A regra de ouro é simples: um business nunca lê ou escreve no workspace de outro diretamente. Cross-business só via squad ou serviço compartilhado. Essa restrição é o que permite que mudança num business não cause regressão noutro — o blast radius está fisicamente delimitado pelo diretório. Squads vivem em squads/ (compartilhados, business-agnostic) justamente para que cada business consuma o mesmo squad com inputs diferentes, em vez de cada um forkar a lógica.
Como adotar AIOX em um time pequeno?
O AIOX foi desenhado para multi-business, mas funciona em single-business. O caminho mínimo de adoção: clone o monorepo, mantenha apenas workspace/businesses/{seu-slug}/, desative os outros businesses no squads/sinkra-squad/data/ecosystem-registry.yaml, e configure CODEOWNERS para um único owner. Os squads compartilhados continuam funcionando porque são business-agnostic.
O ROI vem nos primeiros três meses: parar de pensar em "como fazer agent X" e passar a pensar em "qual squad executa o processo Y" muda a velocidade de implementação. Stories deixam de ser tickets soltos e viram artefatos reproduzíveis com critério de aceitação claro. Push para produção deixa de ser ato individual e vira protocolo: @dev propõe, @devops executa, @qa valida.
Como AIOX se compara com LangGraph, CrewAI e AutoGen?
Comparar AIOX com LangGraph, CrewAI ou AutoGen é tentador, mas a comparação só faz sentido se ficar claro que estão em camadas diferentes. AIOX governa squads em produção por meses; os outros orquestram uma run de agentes. O lado a lado abaixo mostra onde cada um brilha e onde a confusão de camada gera escolha errada.
Top-line
| Atributo | AIOX | LangGraph | CrewAI | AutoGen |
|---|---|---|---|---|
| Camada | Operacional (governance) | Tática (run orchestration) | Tática (role-based) | Tática (multi-agent chat) |
| Linguagem | Node + Python (hooks) | Python | Python | Python (Studio: GUI) |
| Distribuição | Monorepo + CLI First | pip lib | pip lib | pip lib + Studio |
| Multi-tenancy | Hub-and-spoke nativo | Manual (app-level) | Manual | Manual |
| Governance enforcement | Hooks executáveis | App-level apenas | App-level apenas | App-level apenas |
| IDE projection | Sync para Claude/Gemini/Cursor | n/a | n/a | n/a |
| Long-term run | Meses entre times | Single execution | Single execution | Single execution |
Matriz por dimensão (12)
| # | Dimensão | AIOX | LangGraph | CrewAI | AutoGen |
|---|---|---|---|---|---|
| 1 | Definição de agent | .md persona files | TypedDict + node fn | Agent class (role/goal/backstory) | ConversableAgent class |
| 2 | State management | Filesystem (tasks/outputs) | State graph | Shared context | Chat history |
| 3 | Authority enforcement | Hooks bloqueiam | App-level | App-level | App-level |
| 4 | Multi-IDE | 1 source → N projections | Code Python | Code Python | Code Python ou Studio |
| 5 | Governance formal | Constitution + 8 layers | Ad-hoc por dev | Ad-hoc | Ad-hoc |
| 6 | Skill library | skills/*.md on-demand | Tool list por agent | Tool list | Tool registration |
| 7 | Squad scaffolding | validate:squad-structure | Free-form | Free-form | Free-form |
| 8 | Persistência cross-session | outputs/{squad}/{mission}/ | App responsibility | App responsibility | App responsibility |
| 9 | Onboarding novo dev | Clone monorepo + ler CLAUDE.md | Aprender API + setup | API + setup | API + setup |
| 10 | Caso de uso ideal | Hub multi-business + workflow de meses | App single-purpose | App single-purpose | App single-purpose |
| 11 | License | Open-source-ready (CLI-first) | MIT | MIT | MIT |
| 12 | Limite explícito | Não orquestra run sozinho | Não governa frota | Não governa frota | Não governa frota |
Verdict: Não são concorrentes diretos. AIOX é o como time grande de IA aplicada opera em produção; LangGraph/CrewAI/AutoGen são o como uma run de agentes flui internamente. Squads AIOX podem usar LangGraph ou CrewAI por dentro para orquestrar a run de seus agentes — o aninhamento é desenhado, não acidental. Quem precisa só de orquestração de uma run usa LangGraph; quem precisa rodar isso em produção com governança formal por meses usa AIOX por cima.
Onde o AIOX falha e o que ele explicitamente NÃO resolve?
AIOX não resolve criatividade. O framework garante que processo é executado, que governança é respeitada, que mudança não vaza para outro business. Mas não substitui o pensamento original que vai dentro de um agent ou de uma story. Se a entrada é fraca (story mal escrita, agent mal especificado), AIOX entrega execução fiel de algo fraco — não conserta.
AIOX também não resolve falta de equipe. Hub-and-spoke pressupõe que existem owners diferentes por business; em time de uma pessoa, todo CODEOWNERS aponta para a mesma pessoa e a separação por aprovação vira teatro. Para esse caso, modo single-business é honesto. Por fim, AIOX não resolve adoção de IDE: se o time não usa Claude Code, Gemini ou Cursor, a projeção *sync-ecosystem não tem destino e parte do valor evapora — o squad continua útil como documentação executável, mas perde o loop de ativação por slash command.
Perguntas frequentes
AIOX é open-source?
Preciso de Claude Code para usar AIOX?
Como AIOX se compara com LangGraph ou CrewAI?
Posso usar AIOX só para um business?
AIOX impõe um stack específico?
Sobre o autor
Equipe Editorial
Equipe responsável pela curadoria, revisão e publicação de artigos técnicos no blog.