--- name: telemetry description: > Visualização e gestão de telemetria de uso. Dashboard, top componentes, análise de erros, subutilização. argument-hint: "[dashboard|top|unused|errors] [period] [filter]" --- # /descomplicar:telemetry Visualização e gestão de telemetria de uso. ## Objectivo Mostrar métricas de uso de agentes, skills e MCPs. Identificar padrões, componentes subutilizados e oportunidades de optimização. ## Sintaxe ``` /descomplicar:telemetry [action] [period] [filter] ``` ## Acções Disponíveis ### 1. Dashboard Geral ``` /descomplicar:telemetry dashboard /descomplicar:telemetry dashboard 7d # Últimos 7 dias /descomplicar:telemetry dashboard 30d # Últimos 30 dias (default) ``` **Query:** ```sql SELECT 'Agents' as component, COUNT(DISTINCT agent_id) as unique_used, COUNT(*) as total_invocations, AVG(duration_sec) as avg_duration, SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(*) as success_rate FROM cr_agent_usage WHERE created_at > DATE_SUB(NOW(), INTERVAL 30 DAY) UNION ALL SELECT 'Skills' as component, COUNT(DISTINCT skill_id) as unique_used, COUNT(*) as total_invocations, AVG(duration_sec) as avg_duration, SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(*) as success_rate FROM cr_skill_usage WHERE created_at > DATE_SUB(NOW(), INTERVAL 30 DAY) UNION ALL SELECT 'MCP Tools' as component, COUNT(DISTINCT mcp_tool_id) as unique_used, COUNT(*) as total_invocations, AVG(response_time_ms) / 1000 as avg_duration, SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(*) as success_rate FROM cr_mcp_tool_usage WHERE created_at > DATE_SUB(NOW(), INTERVAL 30 DAY); ``` **Output:** ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ TELEMETRY DASHBOARD - Últimos 30 dias ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ Componente │ Únicos │ Invocações │ Avg Duration │ Success Rate ║ ║ ─────────────────────────────────────────────────────────────────── ║ ║ Agents │ 32 │ 1,234 │ 45.2s │ 94.5% ║ ║ Skills │ 28 │ 567 │ 12.8s │ 97.2% ║ ║ MCP Tools │ 156 │ 8,901 │ 0.8s │ 99.1% ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ TENDÊNCIA: ↑ 12% vs período anterior ║ ╚══════════════════════════════════════════════════════════════════════╝ ``` ### 2. Top Componentes ``` /descomplicar:telemetry top agents 10 /descomplicar:telemetry top skills 10 /descomplicar:telemetry top mcps 10 ``` **Query (Agents):** ```sql SELECT a.slug, a.name, COUNT(*) as invocations, AVG(au.duration_sec) as avg_duration, SUM(CASE WHEN au.success = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(*) as success_rate FROM cr_agent_usage au JOIN cr_agents a ON au.agent_id = a.id WHERE au.created_at > DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY a.id ORDER BY invocations DESC LIMIT 10; ``` **Output:** ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ TOP 10 AGENTS - Últimos 30 dias ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ # │ Agent │ Invocações │ Avg │ Success ║ ║ ─────────────────────────────────────────────────────────────────── ║ ║ 1 │ wordpress-plugin-developer │ 156 │ 52s │ 96% ║ ║ 2 │ marketing-planning-expert │ 134 │ 38s │ 94% ║ ║ 3 │ php-fullstack-engineer │ 98 │ 61s │ 92% ║ ║ 4 │ seo-specialist │ 87 │ 45s │ 98% ║ ║ 5 │ content-manager │ 76 │ 32s │ 97% ║ ║ 6 │ copywriter │ 65 │ 28s │ 99% ║ ║ 7 │ sales-manager │ 54 │ 41s │ 91% ║ ║ 8 │ dev-helper │ 48 │ 55s │ 89% ║ ║ 9 │ n8n-automation-expert │ 42 │ 67s │ 95% ║ ║ 10 │ easypanel-specialist │ 38 │ 72s │ 93% ║ ╚══════════════════════════════════════════════════════════════════════╝ ``` ### 3. Componentes Subutilizados ``` /descomplicar:telemetry unused /descomplicar:telemetry unused 90d # Não usados há 90 dias ``` **Query:** ```sql -- Agentes nunca usados ou não usados há 30+ dias SELECT a.slug, a.name, a.category, COALESCE(MAX(au.created_at), 'Nunca') as last_used, DATEDIFF(NOW(), COALESCE(MAX(au.created_at), '2020-01-01')) as days_since FROM cr_agents a LEFT JOIN cr_agent_usage au ON a.id = au.agent_id WHERE a.status = 'active' GROUP BY a.id HAVING days_since > 30 OR last_used = 'Nunca' ORDER BY days_since DESC; ``` **Output:** ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ COMPONENTES SUBUTILIZADOS (>30 dias sem uso) ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ AGENTS (14 de 46) ║ ║ ├── backup-specialist │ Nunca usado │ Considerar arquivar ║ ║ ├── reflect-agent │ 45 dias │ Auto-trigger activo?║ ║ └── ... ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ SKILLS (26 de 54) ║ ║ ├── archive │ 60 dias │ Raramente necessária║ ║ └── ... ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ RECOMENDAÇÃO: Revisar componentes não usados há >90 dias ║ ╚══════════════════════════════════════════════════════════════════════╝ ``` ### 4. Análise de Erros ``` /descomplicar:telemetry errors /descomplicar:telemetry errors agent wordpress-plugin-developer ``` **Query:** ```sql SELECT a.slug, COUNT(*) as total_errors, COUNT(*) * 100.0 / (SELECT COUNT(*) FROM cr_agent_usage WHERE agent_id = a.id) as error_rate, MAX(au.created_at) as last_error FROM cr_agent_usage au JOIN cr_agents a ON au.agent_id = a.id WHERE au.success = 0 AND au.created_at > DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY a.id ORDER BY total_errors DESC LIMIT 10; ``` ### 5. Registar Uso (automático via hooks) ```sql -- Registado automaticamente pelo hook PostToolUse INSERT INTO cr_agent_usage (agent_id, session_id, success, duration_sec, created_at) VALUES ( (SELECT id FROM cr_agents WHERE slug = '{agent_slug}'), '{session_id}', {success}, {duration}, NOW() ); INSERT INTO cr_mcp_tool_usage (mcp_tool_id, agent_id, response_time_ms, success, created_at) VALUES ( (SELECT id FROM cr_mcp_tools WHERE tool_name = '{tool_name}'), (SELECT id FROM cr_agents WHERE slug = '{agent_slug}'), {response_time}, {success}, NOW() ); ``` ## Integração com Decision Trees A telemetria alimenta as decision trees para melhorar a selecção de agentes: ```sql -- Actualizar confidence baseado em success rate UPDATE cr_decision_trees dt SET dt.confidence_score = ( SELECT AVG(CASE WHEN au.success = 1 THEN 1.0 ELSE 0.5 END) FROM cr_agent_usage au WHERE au.agent_id = dt.agent_id AND au.created_at > DATE_SUB(NOW(), INTERVAL 30 DAY) ) WHERE dt.status = 'active'; ``` ## Métricas de Saúde | Métrica | Threshold | Acção | |---------|-----------|-------| | Success Rate | < 90% | Investigar erros | | Avg Duration | > 120s | Optimizar agente | | Unused (dias) | > 90 | Considerar arquivar | | Error Spike | > 5 em 1h | Alerta imediato | ## Output Esperado ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ TELEMETRY DASHBOARD - Últimos 30 dias ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ Componente │ Únicos │ Invocações │ Avg Duration │ Success Rate ║ ║ Agents │ 32 │ 1,234 │ 45.2s │ 94.5% ║ ║ Skills │ 28 │ 567 │ 12.8s │ 97.2% ║ ║ MCP Tools │ 156 │ 8,901 │ 0.8s │ 99.1% ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ TENDÊNCIA: ↑ 12% vs período anterior ║ ╚══════════════════════════════════════════════════════════════════════╝ ```