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:
- Monitorar Equipes: Acompanhar performance de equipes
- Analisar Talentos: Identificar top talent e riscos de retenção
- Avaliar Cultura: Monitorar métricas de cultura organizacional
- Analisar Carga: Avaliar distribuição de carga de trabalho
- 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
- YAML Config:
agents/chro/chro_agent.yaml- Configuração canônica - Script Python:
workflows/scripts/chro_agent_daily_brief.py- Execução diária - Cron Setup:
workflows/scripts/setup_cron_chro.sh- Configuração de cron
🔌 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
- Total Teams: Número total de equipes
- Team Status: Status de cada equipe
- Performance Trends: Tendências de performance
- Avg Performance: Performance média
Talent Analytics
- Total Talent: Número total de talentos
- High Performers: Número de high performers
- Low Performers: Número de low performers
- Retention Risk: Número de talentos em risco
- Top Talent: Lista de top talent
Culture Metrics
- Culture Score: Score de cultura (0.0 a 1.0)
- Culture Indicators: Indicadores de cultura
- Improvement Areas: Áreas de melhoria
- HR Policies: Número de políticas de RH
Workload Analysis
- Balance Concerns: Preocupações de balanceamento
- Overloaded Teams: Equipes sobrecarregadas
- Underloaded Teams: Equipes subutilizadas
- Avg Tasks Per Member: Média de tarefas por membro
Skills Gap
- Gaps Identified: Gaps de habilidades identificados
- Training Needs: Necessidades de treinamento
- Development Priorities: Prioridades de desenvolvimento
🛠️ 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
- YAML Config:
agents/chro/chro_agent.yaml - Script Python:
workflows/scripts/chro_agent_daily_brief.py - README:
agents/chro/README.md - Sales Manager:
csuite-sales-manager/README.md
Última atualização: 2025-01-04