CDO Agent - Documentação Completa
📋 Visão Geral
O CDO Agent (Chief Digital/Data Officer / Diretor Digital ou de Dados) é um agente executivo do CSuite que lidera transformação digital e estratégia de dados. Ele monitora qualidade de dados, avalia transformação digital, analisa insights e otimiza estratégia de dados.
Status: ✅ Implementado (v1.0.0) - Pronto para uso
🎯 Propósito
O CDO Agent existe para:
- Monitorar Qualidade: Acompanhar qualidade de dados (completude, precisão)
- Avaliar Transformação: Monitorar status de transformação digital
- Analisar Insights: Processar análises e insights de dados
- Otimizar Estratégia: Avaliar e otimizar estratégia de dados
🏗️ Arquitetura
Fluxo de Execução
1. Recebe Payload
↓
2. Build Context
├─ Data Quality (qualidade de dados)
├─ Digital Transformation (transformação digital)
├─ Analytics Insights (análises e insights)
├─ Data Strategy (estratégia de dados)
└─ Memory Query (precedentes digitais/dados)
↓
3. Determine Decision Type
├─ CDO.IMPROVE_DATA_QUALITY (melhorar qualidade)
├─ CDO.ACCELERATE_DIGITAL (acelerar digital)
├─ CDO.ENHANCE_ANALYTICS (aprimorar análises)
└─ CDO.OPTIMIZE_STRATEGY (otimizar estratégia)
↓
4. Calculate Confidence
↓
5. Propose Actions
├─ IMPROVE_DATA_QUALITY
├─ ACCELERATE_DIGITAL
├─ ENHANCE_ANALYTICS
└─ OPTIMIZE_STRATEGY
↓
6. Policy Validation
↓
7. Policy Engine Integration
↓
8. Execute Actions
↓
9. Record Outcome
Componentes
- YAML Config:
agents/cdo/cdo_agent.yaml- Configuração canônica - Script Python:
workflows/scripts/cdo_agent_daily_brief.py- Execução diária - Cron Setup:
workflows/scripts/setup_cron_cdo.sh- Configuração de cron
🔌 Integrações
1. Customer Decisions
Base URL: https://csuite.internut.com.br/customer-decisions
| Endpoint | Descrição | Uso |
|---|---|---|
GET /api/metrics |
Métricas de dados | Qualidade de dados |
2. Policy Engine
Base URL: https://csuite.internut.com.br/executive
| Endpoint | Descrição | Uso |
|---|---|---|
POST /v1/policy/evaluate |
Avaliar decisão | Validação de políticas digitais |
GET /v1/governance/policies/radar |
Policy Radar | Políticas digitais |
3. Executive API
Base URL: https://csuite.internut.com.br/executive
| Endpoint | Descrição | Uso |
|---|---|---|
POST /v1/memory/query |
Consultar memória | Precedentes digitais/dados |
4. Data Systems (Opcional)
Base URL: Configurável via CSUITE_DATA_URL
| Endpoint | Descrição | Uso |
|---|---|---|
GET /api/analytics |
Análises | Insights e análises |
GET /api/data-quality |
Qualidade | Qualidade de dados |
📥 Payload de Entrada
Formato Padrão
{
"org_id": 0,
"as_of_date": "2025-01-04",
"time_window_days": 30,
"focus": {
"themes": ["data_quality", "digital_transformation", "analytics_insights", "data_strategy"],
"constraints": []
},
"attention": {
"max_recommendations": 3,
"max_output_tokens": 1200
}
}
Campos
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
org_id |
integer | ✅ | ID da organização |
as_of_date |
string | ✅ | Data de referência (YYYY-MM-DD) |
time_window_days |
integer | ❌ | Janela de análise (padrão: 30) |
focus.themes |
array | ❌ | Temas de foco |
attention.max_recommendations |
integer | ❌ | Máximo de recomendações (padrão: 3) |
📤 Payload de Saída
Formato Padrão
{
"decision": {
"decision_type": "CDO.IMPROVE_DATA_QUALITY | CDO.ACCELERATE_DIGITAL | CDO.ENHANCE_ANALYTICS | CDO.OPTIMIZE_STRATEGY",
"confidence": 0.85,
"proposed_actions": [
{
"action": "IMPROVE_DATA_QUALITY",
"reason": "Qualidade de dados abaixo do ideal",
"priority": "alta"
}
]
},
"context": {
"data_quality": {
"summary": "Resumo de qualidade de dados",
"quality_score": 0.85,
"completeness": 0.90,
"accuracy": 0.88,
"data_issues": []
},
"digital_transformation": {
"summary": "Resumo de transformação digital",
"transformation_score": 0.75,
"digital_initiatives": [],
"transformation_indicators": []
},
"analytics_insights": {
"summary": "Resumo de análises e insights",
"key_insights": [],
"trends": [],
"opportunities": []
},
"data_strategy": {
"summary": "Resumo de estratégia de dados",
"strategy_items": [],
"governance_status": "status",
"architecture_status": "status"
}
},
"execution": {
"status": "completed",
"actions": []
},
"opportunities": [
{
"type": "IMPROVE_DATA_QUALITY",
"description": "Melhorar qualidade de dados identificado",
"impact": "alto | médio | baixo",
"confidence": 0.85,
"priority": "alta"
}
],
"recommendations": [
{
"action": "Melhorar qualidade de dados",
"reason": "Qualidade abaixo do ideal",
"priority": "alta",
"digital_impact": "alto"
}
],
"next_steps": [
"Melhorar qualidade",
"Acelerar transformação",
"Otimizar estratégia"
],
"generated_at": "2025-01-04T09:15:00",
"org_id": 0,
"as_of_date": "2025-01-04"
}
🔄 Decision Types
CDO.IMPROVE_DATA_QUALITY
Descrição: Melhorar qualidade de dados
Condições:
- Qualidade de dados abaixo do ideal
- Problemas de completude ou precisão
- Oportunidade de melhoria
- Confidence >= 0.8
Ações:
- IMPROVE_DATA_QUALITY: Melhorar qualidade
- OPTIMIZE_STRATEGY: Otimizar estratégia (se necessário)
CDO.ACCELERATE_DIGITAL
Descrição: Acelerar transformação digital
Condições:
- Transformação digital abaixo do esperado
- Oportunidades identificadas
- Alinhamento estratégico
- Confidence >= 0.7
Ações:
- ACCELERATE_DIGITAL: Acelerar transformação
- ENHANCE_ANALYTICS: Aprimorar análises (se necessário)
CDO.ENHANCE_ANALYTICS
Descrição: Aprimorar análises e insights
Condições:
- Análises abaixo do ideal
- Oportunidades de aprimoramento
- Dados disponíveis
- Confidence >= 0.9
Ações:
- ENHANCE_ANALYTICS: Aprimorar análises
- IMPROVE_DATA_QUALITY: Melhorar qualidade (se necessário)
CDO.OPTIMIZE_STRATEGY
Descrição: Otimizar estratégia de dados
Condições:
- Estratégia não otimizada
- Oportunidades identificadas
- Alinhamento necessário
- Confidence >= 0.7
Ações:
- OPTIMIZE_STRATEGY: Otimizar estratégia
- ACCELERATE_DIGITAL: Acelerar digital (se necessário)
🎛️ Autonomia
Níveis de Autonomia
| Nível | Descrição | Condição |
|---|---|---|
| L0 | Sempre recomendação | ACCELERATE_DIGITAL, OPTIMIZE_STRATEGY, ou confidence < 0.7 |
| L1 | Melhorar qualidade automaticamente | IMPROVE_DATA_QUALITY e confidence >= 0.8 |
| L2 | Aprimorar análises automaticamente | ENHANCE_ANALYTICS e confidence >= 0.9 |
⚙️ Configuração
Variáveis de Ambiente
# LLM
OPENAI_API_KEY=sk-...
LLM_MODEL=gpt-4o-mini
# CSuite Services
CSUITE_POLICY_ENGINE_URL=https://csuite.internut.com.br/executive
CSUITE_EXECUTIVE_URL=https://csuite.internut.com.br/executive
CSUITE_CUSTOMER_DECISIONS_URL=https://csuite.internut.com.br/customer-decisions
CSUITE_MEMORY_URL=https://csuite.internut.com.br/executive
CSUITE_DATA_URL=https://csuite.internut.com.br/data # Opcional
# Webhook
CDO_BRIEF_WEBHOOK_URL=https://hooks.slack.com/services/...
# Configuração
ORG_ID=0
TIME_WINDOW_DAYS=30
Cron Job
O CDO Agent executa diariamente às 09:15:
cd workflows/scripts
./setup_cron_cdo.sh
Cron Entry:
15 9 * * * cd /path/to/workflows/scripts && /usr/bin/python3 cdo_agent_daily_brief.py >> logs/cdo_agent_cron.log 2>&1
🚀 Uso
Execução Manual
cd workflows/scripts
python3 cdo_agent_daily_brief.py
Output
O brief é publicado no Slack e salvo em arquivo JSON:
cdo_brief_YYYYMMDD_HHMMSS.json
Formato do Brief no Slack
O brief é formatado com:
- Header com status de qualidade (🟢/🟡/🔴 baseado em quality_score)
- Contexto digital/dados
- Qualidade de dados (score)
- Transformação digital (score)
- Oportunidades identificadas
- Recomendações prioritárias
- Próximos passos
🔍 Métricas Monitoradas
Data Quality
- Quality Score: Score de qualidade (0.0 a 1.0)
- Completeness: Completude dos dados (0.0 a 1.0)
- Accuracy: Precisão dos dados (0.0 a 1.0)
- Data Issues: Problemas identificados
- Data Sources: Fontes de dados
Digital Transformation
- Transformation Score: Score de transformação (0.0 a 1.0)
- Digital Policies Count: Número de políticas digitais
- Digital Initiatives: Iniciativas digitais
- Transformation Indicators: Indicadores de transformação
Analytics Insights
- Key Insights: Insights principais
- Trends: Tendências identificadas
- Opportunities: Oportunidades de análise
Data Strategy
- Strategy Items: Itens de estratégia
- Governance Status: Status de governança
- Architecture Status: Status de arquitetura
🛠️ Troubleshooting
Erro: "OPENAI_API_KEY não configurada"
Solução: Configure a variável de ambiente OPENAI_API_KEY ou LLM_API_KEY.
Erro: "Customer Decisions retornou 404"
Solução: Verifique se o csuite-customer-decisions está rodando e acessível.
Erro: "Dados limitados de qualidade"
Solução: Integre com sistemas de dados externos via CSUITE_DATA_URL para dados completos.
Brief não publicado no Slack
Solução:
1. Verifique se CDO_BRIEF_WEBHOOK_URL está configurada
2. Verifique se o webhook do Slack está válido
3. Verifique logs em cdo_agent.log
📚 Referências
- YAML Config:
agents/cdo/cdo_agent.yaml - Script Python:
workflows/scripts/cdo_agent_daily_brief.py - README:
agents/cdo/README.md - Customer Decisions:
csuite-customer-decisions/README.md
Última atualização: 2025-01-04