Visão geral

A camada de IA é opcional e não-bloqueante. O sistema funciona completamente sem uma API key configurada — nesse caso, todas as análises são feitas pelo motor de regras tradicional. Quando a IA está disponível (Claude AI), ela enriquece os resultados sem substituir a lógica existente.

Graceful Degradation Se a API key do Claude AI (Anthropic) não estiver configurada ou houver falha na chamada, o sistema ignora a IA silenciosamente e usa os resultados do motor de regras. Nenhum erro é exibido ao usuário.

Funcionalidades de IA

1. Recomendação de arquitetura com IA

Onde aparece: Aba "Assessment" → Card de recomendação → Painel "AI Insights"

Após o assessment ser concluído, o motor de regras determina a estratégia. A IA recebe o perfil da aplicação e o resultado do motor e gera:

  • Validação da estratégia recomendada
  • Sumário executivo — texto narrativo pronto para relatórios
  • Riscos adicionais não capturados pelas regras
  • Próximos passos sugeridos (numerados e acionáveis)
  • Nota de confiança contextual

O card de recomendação exibe a badge AI Enhanced quando o insight da IA está disponível.

2. Análise de riscos com IA

Onde aparece: Página da aplicação → Aba "Risks" → Botão "Analyze with AI"

Envia o perfil completo da aplicação para a IA e recebe de 5 a 10 riscos contextuais:

  • Riscos além das regras pré-definidas
  • Riscos específicos do stack (ex.: problemas conhecidos do ORM com o banco utilizado)
  • Riscos organizacionais e de compliance contextualizados

Cada risco pode ser registrado no sistema com um clique em "Register →".

3. Geração de procedimentos de migração com IA

Onde aparece: Migration Plan → Procedimentos marcados com AI Generated

Ao gerar um plano de migração, a IA produz procedimentos personalizados para o stack específico da aplicação:

  • Migration Procedure — runbook completo com comandos reais para o stack (Java/Spring → OKD, por exemplo)
  • Containerization Procedure — Dockerfile exemplo, multi-stage build, configuração de entrypoint, manifests OKD (Deployment, Service, Route, ConfigMap, Secret)

Os procedimentos gerados por IA substituem os templates genéricos quando disponíveis.

4. Análise de postura OKD/OCP (Doctor AI)

Onde aparece: Doctor AI → Clusters → Run Read-Only Scan

O Claude AI avalia o inventário de workloads coletado via API do cluster e gera:

  • Findings classificados por severidade (critical, high, medium, low, info)
  • Recomendações de remediação específicas por finding
  • Score de saúde do cluster e tendência
  • Findings vinculados ao governance gate do ativo correspondente

Configuração

Variáveis de ambiente

# .env
AI_PROVIDER=claude
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ANTHROPIC_MODEL=claude-sonnet-4-6
ANTHROPIC_MAX_TOKENS=4096
ANTHROPIC_TIMEOUT=60

# Feature flags — desative funcionalidades individualmente
AI_FEATURE_ARCHITECTURE=true
AI_FEATURE_PROCEDURES=true
AI_FEATURE_RISKS=true
AI_FEATURE_DOCTOR=true
AI_FEATURE_REPORTS=false

Feature flags

VariávelControlaDefault
AI_FEATURE_ARCHITECTUREAI Insights no card de recomendaçãotrue
AI_FEATURE_PROCEDURESProcedimentos de mudança gerados por IAtrue
AI_FEATURE_RISKSAnálise de riscos com IAtrue
AI_FEATURE_DOCTORAnálise de postura OKD/OCP pelo Doctor AItrue
AI_FEATURE_REPORTSNarrativa de relatório gerada por IAfalse

Arquivo de configuração

As configurações ficam em config/ai.php. Para alterar o modelo ou os parâmetros sem alterar variáveis de ambiente, edite diretamente:

return [
    'provider' => env('AI_PROVIDER', 'claude'),
    'claude' => [
        'api_key'    => env('ANTHROPIC_API_KEY'),
        'model'      => env('ANTHROPIC_MODEL', 'claude-sonnet-4-6'),
        'max_tokens' => (int) env('ANTHROPIC_MAX_TOKENS', 4096),
        'timeout'    => (int) env('ANTHROPIC_TIMEOUT', 60),
    ],
    'features' => [
        'architecture_recommendation' => (bool) env('AI_FEATURE_ARCHITECTURE', true),
        'migration_procedures'        => (bool) env('AI_FEATURE_PROCEDURES', true),
        'risk_analysis'               => (bool) env('AI_FEATURE_RISKS', true),
        'doctor_posture_analysis'     => (bool) env('AI_FEATURE_DOCTOR', true),
        'report_narrative'            => (bool) env('AI_FEATURE_REPORTS', false),
    ],
];

Arquitetura técnica

ClasseResponsabilidade
App\Services\AI\ClaudeProviderWrapper da API Anthropic. Métodos: chat(), chatJson(), isAvailable()
App\Services\AI\RiskAnalysisServiceGera sugestões de riscos. Método: suggestRisks(Application, ?Assessment)
App\Services\ArchitectureRecommendationEngineMotor de regras + augmentação IA via getAIInsights()
App\Services\MigrationProcedureGeneratorGerador de runbooks com generateAIProcedures()
App\Services\DoctorHealthAnalysisServiceAnálise de postura OKD/OCP pelo Claude AI
App\Http\Controllers\Web\AIControllerEndpoint AJAX para análise de riscos: POST /ai/applications/{id}/risks

Verificar se a IA está configurada

php artisan tinker

# Verificar disponibilidade
app(\App\Services\AI\ClaudeProvider::class)->isAvailable();
// true = configurada, false = sem API key