Chro Agent

CHRO Agent - Documentação Completa

📋 Visão Geral

O CHRO Agent (Chief Human Resources Officer) é um agente executivo do CSuite que otimiza talentos e cultura organizacional. Ele monitora performance de equipes, analisa talentos, avalia cultura organizacional e identifica gaps de habilidades.

Status:Implementado (v1.0.0) - Pronto para uso


🎯 Propósito

O CHRO Agent existe para:

  1. Monitorar Equipes: Acompanhar performance de equipes
  2. Analisar Talentos: Identificar top talent e riscos de retenção
  3. Avaliar Cultura: Monitorar métricas de cultura organizacional
  4. Analisar Carga: Avaliar distribuição de carga de trabalho
  5. Identificar Gaps: Detectar gaps de habilidades e necessidades de treinamento

🏗️ Arquitetura

Fluxo de Execução

1. Recebe Payload
   
2. Build Context
   ├─ Team Performance (performance de equipes)
   ├─ Talent Analytics (talentos, retenção)
   ├─ Culture Metrics (cultura organizacional)
   ├─ Workload Analysis (carga de trabalho)
   ├─ Skills Gap (gaps de habilidades)
   └─ Memory Query (precedentes de RH)
   
3. Determine Decision Type
   ├─ CHRO.DEVELOP_TALENT (desenvolver talento)
   ├─ CHRO.REBALANCE_WORKLOAD (rebalancear carga)
   ├─ CHRO.IMPROVE_CULTURE (melhorar cultura)
   └─ CHRO.IDENTIFY_RETENTION (identificar retenção)
   
4. Calculate Confidence
   
5. Propose Actions
   ├─ DEVELOP_TALENT
   ├─ REBALANCE_WORKLOAD
   ├─ IMPROVE_CULTURE
   └─ IDENTIFY_RETENTION
   
6. Policy Validation
   
7. Policy Engine Integration
   
8. Execute Actions
   
9. Record Outcome

Componentes


🔌 Integrações

1. Sales Manager

Base URL: https://csuite.internut.com.br/sales-manager

Endpoint Descrição Uso
GET /manager/today Tarefas do dia Performance de vendedores

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 de RH
GET /v1/governance/policies/radar Policy Radar Políticas de RH

3. Executive API

Base URL: https://csuite.internut.com.br/executive

Endpoint Descrição Uso
POST /v1/memory/query Consultar memória Precedentes de RH

4. HR Systems (Opcional)

Base URL: Configurável via CSUITE_HR_URL

Endpoint Descrição Uso
GET /api/employees Listar funcionários Dados de funcionários
GET /api/performance Performance Métricas de performance

📥 Payload de Entrada

Formato Padrão

{
  "org_id": 0,
  "as_of_date": "2025-01-04",
  "time_window_days": 30,
  "focus": {
    "themes": ["team_performance", "talent_analytics", "culture_metrics", "workload_analysis", "skills_gap"],
    "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": "CHRO.DEVELOP_TALENT | CHRO.REBALANCE_WORKLOAD | CHRO.IMPROVE_CULTURE | CHRO.IDENTIFY_RETENTION",
    "confidence": 0.85,
    "proposed_actions": [
      {
        "action": "DEVELOP_TALENT",
        "team_member": "seller_1",
        "reason": "Alto potencial identificado",
        "development_plan": "Plano de desenvolvimento"
      }
    ]
  },
  "context": {
    "team_performance": {
      "summary": "Resumo de performance de equipes",
      "teams_status": [],
      "performance_trends": []
    },
    "talent_analytics": {
      "talent_metrics": {},
      "retention_indicators": {},
      "top_talent": [],
      "at_risk_talent": []
    },
    "culture_metrics": {
      "culture_score": 0.85,
      "culture_indicators": [],
      "improvement_areas": []
    },
    "workload_analysis": {
      "balance_concerns": false,
      "overloaded_teams": [],
      "underloaded_teams": [],
      "recommendations": []
    },
    "skills_gap": {
      "gaps_identified": [],
      "training_needs": [],
      "development_priorities": []
    }
  },
  "execution": {
    "status": "completed",
    "actions": []
  },
  "opportunities": [
    {
      "type": "DEVELOP_TALENT",
      "description": "Desenvolver talento identificado",
      "impact": "alto | médio | baixo",
      "confidence": 0.85,
      "team_member": "seller_1"
    }
  ],
  "recommendations": [
    {
      "action": "Criar plano de desenvolvimento para seller_1",
      "reason": "Alto potencial identificado",
      "priority": "alta",
      "hr_impact": "alto"
    }
  ],
  "next_steps": [
    "Criar plano de desenvolvimento",
    "Monitorar progresso",
    "Avaliar resultados"
  ],
  "generated_at": "2025-01-04T09:00:00",
  "org_id": 0,
  "as_of_date": "2025-01-04"
}

🔄 Decision Types

CHRO.DEVELOP_TALENT

Descrição: Desenvolver talento identificado

Condições:
- Alto potencial identificado
- Performance acima da média
- Oportunidade de desenvolvimento
- Confidence >= 0.7

Ações:
- DEVELOP_TALENT: Criar plano de desenvolvimento
- IDENTIFY_RETENTION: Identificar risco de retenção

CHRO.REBALANCE_WORKLOAD

Descrição: Rebalancear carga de trabalho

Condições:
- Desequilíbrio de carga detectado
- Membros sobrecarregados ou subutilizados
- Confidence >= 0.7

Ações:
- REBALANCE_WORKLOAD: Redistribuir carga
- IMPROVE_CULTURE: Melhorar cultura (se necessário)

CHRO.IMPROVE_CULTURE

Descrição: Melhorar cultura organizacional

Condições:
- Cultura score abaixo do ideal
- Indicadores de cultura negativos
- Confidence >= 0.9

Ações:
- IMPROVE_CULTURE: Implementar melhorias de cultura
- DEVELOP_TALENT: Desenvolver talentos (se necessário)

CHRO.IDENTIFY_RETENTION

Descrição: Identificar risco de retenção

Condições:
- Talento em risco identificado
- Performance baixa ou declinante
- Confidence >= 0.8

Ações:
- IDENTIFY_RETENTION: Alertar sobre risco de retenção
- DEVELOP_TALENT: Desenvolver talento (se aplicável)


🎛️ Autonomia

Níveis de Autonomia

Nível Descrição Condição
L0 Sempre recomendação DEVELOP_TALENT, REBALANCE_WORKLOAD, ou confidence < 0.7
L1 Identificar retenção automaticamente IDENTIFY_RETENTION e confidence >= 0.8
L2 Melhorar cultura automaticamente IMPROVE_CULTURE 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_SALES_MANAGER_URL=https://csuite.internut.com.br/sales-manager
CSUITE_MEMORY_URL=https://csuite.internut.com.br/executive
CSUITE_HR_URL=https://csuite.internut.com.br/hr  # Opcional

# Webhook
CHRO_BRIEF_WEBHOOK_URL=https://hooks.slack.com/services/...

# Configuração
ORG_ID=0
TIME_WINDOW_DAYS=30

Cron Job

O CHRO Agent executa diariamente às 09:00:

cd workflows/scripts
./setup_cron_chro.sh

Cron Entry:

0 9 * * * cd /path/to/workflows/scripts && /usr/bin/python3 chro_agent_daily_brief.py >> logs/chro_agent_cron.log 2>&1

🚀 Uso

Execução Manual

cd workflows/scripts
python3 chro_agent_daily_brief.py

Output

O brief é publicado no Slack e salvo em arquivo JSON:

chro_brief_YYYYMMDD_HHMMSS.json

Formato do Brief no Slack

O brief é formatado com:
- Header com status de cultura (🟢/🟡/🔴 baseado em culture_score)
- Contexto de recursos humanos
- Performance de equipes
- Cultura organizacional (score)
- Carga de trabalho (preocupações)
- Oportunidades identificadas
- Recomendações prioritárias
- Próximos passos


🔍 Métricas Monitoradas

Team Performance

Talent Analytics

Culture Metrics

Workload Analysis

Skills Gap


🛠️ Troubleshooting

Erro: "OPENAI_API_KEY não configurada"

Solução: Configure a variável de ambiente OPENAI_API_KEY ou LLM_API_KEY.

Erro: "Sales Manager retornou 404"

Solução: Verifique se o csuite-sales-manager está rodando e acessível.

Erro: "Dados limitados de RH"

Solução: Integre com sistemas de RH externos via CSUITE_HR_URL para dados completos.

Brief não publicado no Slack

Solução:
1. Verifique se CHRO_BRIEF_WEBHOOK_URL está configurada
2. Verifique se o webhook do Slack está válido
3. Verifique logs em chro_agent.log


📚 Referências


Última atualização: 2025-01-04

🔊 Text-to-Speech

1.0x
1.0
Pronto para reproduzir