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.
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ável | Controla | Default |
|---|---|---|
AI_FEATURE_ARCHITECTURE | AI Insights no card de recomendação | true |
AI_FEATURE_PROCEDURES | Procedimentos de mudança gerados por IA | true |
AI_FEATURE_RISKS | Análise de riscos com IA | true |
AI_FEATURE_DOCTOR | Análise de postura OKD/OCP pelo Doctor AI | true |
AI_FEATURE_REPORTS | Narrativa de relatório gerada por IA | false |
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
| Classe | Responsabilidade |
|---|---|
App\Services\AI\ClaudeProvider | Wrapper da API Anthropic. Métodos: chat(), chatJson(), isAvailable() |
App\Services\AI\RiskAnalysisService | Gera sugestões de riscos. Método: suggestRisks(Application, ?Assessment) |
App\Services\ArchitectureRecommendationEngine | Motor de regras + augmentação IA via getAIInsights() |
App\Services\MigrationProcedureGenerator | Gerador de runbooks com generateAIProcedures() |
App\Services\DoctorHealthAnalysisService | Análise de postura OKD/OCP pelo Claude AI |
App\Http\Controllers\Web\AIController | Endpoint 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