--- name: decision-trees description: > Gestão das árvores de decisão para selecção automática de agentes. Listar, criar, ajustar confidence, testar e recalibrar. argument-hint: "[list|show|create|adjust|test|recalibrate] [tree-name] [args]" --- # /descomplicar:decision-trees Gestão das árvores de decisão para selecção automática de agentes. ## Objectivo Visualizar, criar e ajustar as decision trees que determinam qual agente usar para cada tipo de tarefa. ## Sintaxe ``` /descomplicar:decision-trees [action] [args] ``` ## Acções Disponíveis ### 1. Listar Decision Trees ``` /descomplicar:decision-trees list ``` **Query:** ```sql SELECT dt.id, dt.name, a.slug as agent, dt.trigger_keywords, dt.confidence_score, dt.usage_count, dt.status FROM cr_decision_trees dt JOIN cr_agents a ON dt.agent_id = a.id ORDER BY dt.usage_count DESC; ``` **Output:** ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ DECISION TREES (5 activas) ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ ID │ Nome │ Agent │ Conf │ Uses ║ ║ ─────────────────────────────────────────────────────────────────── ║ ║ 1 │ wordpress-tasks │ wordpress-plugin-dev │ 0.92 │ 156 ║ ║ 2 │ marketing-campaigns │ marketing-planning-exp │ 0.88 │ 134 ║ ║ 3 │ seo-optimization │ seo-specialist │ 0.85 │ 87 ║ ║ 4 │ php-development │ php-fullstack-engineer │ 0.90 │ 98 ║ ║ 5 │ infrastructure-tasks │ easypanel-specialist │ 0.82 │ 38 ║ ╚══════════════════════════════════════════════════════════════════════╝ ``` ### 2. Ver Detalhes ``` /descomplicar:decision-trees show wordpress-tasks ``` **Query:** ```sql SELECT dt.*, a.slug as agent_slug, a.name as agent_name, a.category as agent_category FROM cr_decision_trees dt JOIN cr_agents a ON dt.agent_id = a.id WHERE dt.name = 'wordpress-tasks'; ``` **Output:** ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ DECISION TREE: wordpress-tasks ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ Agent: wordpress-plugin-developer ║ ║ Category: dev ║ ║ Confidence: 0.92 ║ ║ Usage Count: 156 ║ ║ Status: active ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ TRIGGER KEYWORDS ║ ║ ├── Primary: wordpress, wp, plugin, tema, theme ║ ║ ├── Secondary: woocommerce, elementor, gutenberg ║ ║ └── Negative: performance (→ wordpress-performance-specialist) ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ TRIGGER CONDITIONS ║ ║ { ║ ║ "keywords": ["wordpress", "wp", "plugin", "tema"], ║ ║ "exclude_keywords": ["performance", "speed", "cache"], ║ ║ "min_confidence": 0.7, ║ ║ "fallback_agent": "dev-helper" ║ ║ } ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ PERFORMANCE (30 dias) ║ ║ ├── Invocações: 156 ║ ║ ├── Success Rate: 96% ║ ║ └── Avg Duration: 52s ║ ╚══════════════════════════════════════════════════════════════════════╝ ``` ### 3. Criar Decision Tree ``` /descomplicar:decision-trees create ``` Modo interactivo: 1. Nome da tree 2. Agente a recomendar 3. Keywords primárias 4. Keywords secundárias (opcional) 5. Keywords negativas (opcional) 6. Confidence inicial (default: 0.75) **Query:** ```sql INSERT INTO cr_decision_trees (name, agent_id, trigger_keywords, trigger_condition, confidence_score, status, created_at) VALUES ( 'new-tree-name', (SELECT id FROM cr_agents WHERE slug = 'target-agent'), 'keyword1, keyword2, keyword3', '{"keywords": ["keyword1", "keyword2"], "min_confidence": 0.7}', 0.75, 'active', NOW() ); ``` ### 4. Ajustar Confidence ``` /descomplicar:decision-trees adjust wordpress-tasks +0.05 /descomplicar:decision-trees adjust wordpress-tasks 0.95 ``` **Query:** ```sql UPDATE cr_decision_trees SET confidence_score = 0.95, updated_at = NOW() WHERE name = 'wordpress-tasks'; ``` ### 5. Testar Selecção ``` /descomplicar:decision-trees test "criar plugin wordpress para formulários" ``` **Processo:** 1. Extrair keywords do input 2. Comparar com todas as decision trees activas 3. Calcular score para cada match 4. Retornar agente com maior confidence **Query:** ```sql SELECT dt.name as tree, a.slug as agent, dt.confidence_score, -- Simular match score ( LENGTH(dt.trigger_keywords) - LENGTH(REPLACE(LOWER(dt.trigger_keywords), 'wordpress', '')) ) / LENGTH('wordpress') as keyword_matches FROM cr_decision_trees dt JOIN cr_agents a ON dt.agent_id = a.id WHERE dt.status = 'active' AND ( LOWER(dt.trigger_keywords) LIKE '%wordpress%' OR LOWER(dt.trigger_keywords) LIKE '%plugin%' OR LOWER(dt.trigger_keywords) LIKE '%formulário%' ) ORDER BY dt.confidence_score * keyword_matches DESC LIMIT 3; ``` **Output:** ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ TEST: "criar plugin wordpress para formulários" ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ MATCHES ║ ║ ─────────────────────────────────────────────────────────────────── ║ ║ #1 │ wordpress-tasks │ wordpress-plugin-dev │ 0.92 │ ████ ║ ║ #2 │ php-development │ php-fullstack-engineer │ 0.65 │ ██░░ ║ ║ #3 │ (fallback) │ dev-helper │ 0.50 │ █░░░ ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ RECOMENDAÇÃO: wordpress-plugin-developer (confidence: 0.92) ║ ╚══════════════════════════════════════════════════════════════════════╝ ``` ### 6. Actualizar Baseado em Telemetria ``` /descomplicar:decision-trees recalibrate ``` Actualiza confidence scores baseado no success rate real: **Query:** ```sql UPDATE cr_decision_trees dt SET confidence_score = GREATEST(0.5, LEAST(0.99, (SELECT AVG(CASE WHEN au.success = 1 THEN 1.0 ELSE 0.3 END) * (1 + LOG10(COUNT(*) + 1) / 10) FROM cr_agent_usage au WHERE au.agent_id = dt.agent_id AND au.created_at > DATE_SUB(NOW(), INTERVAL 30 DAY)) )), updated_at = NOW() WHERE dt.status = 'active'; ``` ### 7. Desactivar/Activar ``` /descomplicar:decision-trees disable wordpress-tasks /descomplicar:decision-trees enable wordpress-tasks ``` ## Integração com Selecção de Agentes Quando o Claude recebe uma tarefa, o sistema: 1. Extrai keywords do prompt 2. Query decision trees activas 3. Calcula score: `confidence * keyword_match_ratio` 4. Selecciona agente com maior score 5. Regista em telemetria 6. Incrementa usage_count ```python # Pseudo-código do context-builder.py def select_agent(task_description): keywords = extract_keywords(task_description) query = """ SELECT a.slug, dt.confidence_score, dt.trigger_keywords FROM cr_decision_trees dt JOIN cr_agents a ON dt.agent_id = a.id WHERE dt.status = 'active' """ trees = db.execute(query) best_match = None best_score = 0 for tree in trees: match_ratio = calculate_keyword_match(keywords, tree.trigger_keywords) score = tree.confidence_score * match_ratio if score > best_score: best_score = score best_match = tree.agent_slug return best_match or 'dev-helper' # fallback ``` ## Output Esperado ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ DECISION TREES (5 activas) ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ ID │ Nome │ Agent │ Conf │ Uses ║ ║ 1 │ wordpress-tasks │ wordpress-plugin-dev │ 0.92 │ 156 ║ ║ 2 │ marketing-campaigns │ marketing-planning-exp │ 0.88 │ 134 ║ ║ 3 │ seo-optimization │ seo-specialist │ 0.85 │ 87 ║ ╠══════════════════════════════════════════════════════════════════════╣ ║ Telemetria-based confidence recalibration: ON ║ ╚══════════════════════════════════════════════════════════════════════╝ ```