Plataforma de agentes de IA · v1.0.0

Cálculo de engenharia civil com IA que não inventa número.

O agente entende o problema e escolhe o método normativo. A conta sai do Python — validada, com referência à norma e memorial pronto. Nunca do modelo de linguagem.

# pergunte em português; a engine responde com cálculo + validação
> Dimensione uma viga 25×50 C30,
  vão 5 m, g=10 e q=10 kN/m

Md   = 101,17 kN·m       x/d = 0,141 (dúctil)
As   = 5,40 cm²  →  3 Ø 16 mm
validação: unidades ✓ física ✓ norma ✓ equilíbrio ✓
APROVADO
# + memorial em Markdown e aviso de responsabilidade (ART)
O que é

A IA orquestra. O Python calcula.

Uma plataforma onde engenheiros conversam com agentes de IA para resolver cálculos de engenharia civil. A divisão de trabalho é a decisão central do projeto — e o que a torna confiável.

🧠 IA que orquestra

Interpreta o pedido em linguagem natural, identifica o domínio, escolhe o método normativo e explica cada etapa. Não soma, não multiplica, não interpola.

🐍 Python que calcula

Toda aritmética é determinística, com unidades verificadas via pint e modelos Pydantic. O número sai sempre de uma ferramenta — nunca do LLM.

✅ Validação obrigatória

Unidades, física, norma e equilíbrio checados antes de apresentar. Cada resultado vem com memorial e o aviso de responsabilidade técnica.

Como funciona

Quatro camadas, responsabilidades separadas

Por que delegar? Um LLM calculando "de cabeça" cai abaixo de 10% de confiabilidade em problemas de engenharia estrutural; delegar a uma ferramenta determinística leva a confiabilidade a mais de 99%. É a base do design.

Engenheiro · linguagem natural Agente · escolhe o método MCP server Engine Python · cálculo Validação Memorial + aviso (ART)
1

Agentes

Um orchestrator roteia para o especialista (concreto, fundações, aço…). Interpreta e documenta; nunca calcula.

2

MCP server

Ferramentas finas expõem cada cálculo ao agente. Sem ferramenta para o pedido → abstenção (não inventa).

3

Engine Python

Núcleos por domínio com fórmulas normativas, unidades pint e resultados Pydantic.

4

Validação + memorial

4 verificações independentes, depois o memorial em Markdown com o disclaimer de responsabilidade.

Pré-requisitos

O que precisa para rodar

Tudo local, sem build. Gerenciado por uv; o servidor de cálculo conversa com o Claude Code via MCP.

uv + Python ≥ 3.11

Instala dependências (numpy, scipy, sympy, pint, pydantic, mcp…).

# instalar deps (com dev)
uv sync --extra dev

MCP server de cálculos

Expõe ~40 ferramentas determinísticas ao agente.

# iniciar (stdio)
uv run python mcp/calc-server/server.py

Claude Code

A interface em linguagem natural com os agentes.

# abrir no diretório do projeto
claude
Guia de uso · passo a passo

Do clone ao primeiro cálculo

Comandos reais do projeto — copiáveis. Os três primeiros passos validam que a engine está sã antes de você pedir qualquer coisa.

1

Instalar dependências

Cria o ambiente e baixa as bibliotecas de cálculo e de desenvolvimento.

uv sync --extra dev
2

Rodar a suíte de testes

Cada cálculo nasceu de um teste com valor conferido à mão e a cláusula NBR citada.

uv run pytest -q  # 359 testes (334 unitários + 25 E2E)
3

Conferir a engine ponta a ponta

Roda casos representativos sem precisar subir o servidor.

uv run python mcp/calc-server/server.py --selftest  # → SELFTEST OK
4

Pedir um cálculo no Claude Code

Com o MCP conectado, fale em português; o agente escolhe o método e devolve o memorial.

# exemplo de pedido
"Dimensione uma viga 25×50 cm de C30, vão 5 m, g=10 e q=10 kN/m."
5

Ou chamar a engine direto, em Python

Todo cálculo é uma função solve_* que devolve o bundle padrão (resultado, validação, memorial, aviso, aprovado).

from lib.service import solve_rectangular_beam

b = solve_rectangular_beam(b_cm=25, h_cm=50, fck_mpa=30, fyk_mpa=500,
                           vao_m=5.0, g_knm=10, q_knm=10)
b["aprovado"]                      # True
b["resultado"]["as_adopted_cm2"]   # 5.40
print(b["memorial_markdown"])        # memorial completo + aviso ART
Domínios · 18 cálculos

O que a plataforma calcula

Lista completa (com cada solve_*, ferramenta MCP e norma) no catálogo de cálculos. A fonte que o agente consulta em tempo de execução é a ferramenta listar_capacidades.

🏛️ Concreto armado

Viga (flexão), pilar com 2ª ordem, sapata isolada, laje em 1 e 2 direções. NBR 6118 · 6122

⛰️ Geotecnia & fundações

Capacidade de carga (Vesic), recalque (elástico/adensamento), empuxo (Rankine/Coulomb), estaca por SPT. Aoki-Velloso × Décourt

💧 Hidráulica & saneamento

Conduto forçado (Hazen-Williams/Darcy-Weisbach), canal aberto (Manning), perda de carga.

🔩 Estruturas metálicas

Barra comprimida, ligação parafusada, solda de filete. NBR 8800

🛣️ Pavimento · terra · taludes

Pavimento flexível (DNER/DNIT), balanço corte/aterro, talude (infinito e Fellenius). NBR 11682

💰 Orçamento & documentação

Custo direto + BDI (base tipo SINAPI, amostra), memória por projeto e relatório consolidado.

Escopo honesto: é um copiloto para educação, pesquisa e verificação cruzada — não substitui TQS/Eberick/SAP2000 nem a responsabilidade técnica do engenheiro (ART). Protendido, madeira, alvenaria, dinâmica e métodos avançados ficam como abstenção explícita.

Roadmap

Seis fases — todas concluídas

Plano completo em docs/06-fases-implementacao.md. Cada fase fechou com testes verdes, ruff limpo e selftest do MCP OK.

v0.1.0
Fase 1 — FundaçãoViga de concreto (flexão NBR 6118) + camada de validação + MCP server.
v0.2.0
Fase 2 — EstruturalPilares, lajes, sapatas, cargas (NBR 6120), combinações e exports Excel/PDF.
v0.3.0
Fase 3 — Geotecnia + HidráulicaCapacidade de carga, recalque, empuxo, estacas; condutos, canal e perdas.
v0.4.0
Fase 4 — Orçamento + DocumentaçãoBase SINAPI + BDI, memória por projeto e relatório consolidado.
v0.5.0
Fase 5 — Normas + MetálicasNBR 8800 (compressão, ligações), consulta normativa e interpolação de tabelas.
v1.0.0
Fase 6 — PolimentoPavimento, terraplenagem e taludes + suíte E2E, docs completas e guia de contribuição.