# Protocolo de Instrumentação Automática v1.0 **Data:** 2026-02-03 **Propósito:** Auto-registar métricas de execução de skills para análise PDCA --- ## Visão Geral Toda skill instrumentada deve gravar automaticamente métricas de execução na tabela `tblskill_agent_metrics` do Desk CRM. ## Quando Instrumentar Skills que: - Têm baseline definido em `_knowledge-map.json` - São frequentemente usadas (>5x/semana) - Estão em processo de optimização ## Estrutura de Instrumentação ### 1. Início de Execução Ao iniciar a skill, registar: ```javascript const SKILL_START = Date.now(); const SESSION_ID = crypto.randomUUID(); // ou usar session_id existente ``` ### 2. Rastreio de Consultas KB Se a skill consultar Dify KB: ```javascript let KB_CONSULTED = false; let KB_HITS = 0; let KB_MISS = 0; // Após cada consulta Dify bem sucedida KB_CONSULTED = true; KB_HITS++; // Se consulta falhou ou sem resultados KB_MISS++; ``` ### 3. Contagem de Tool Calls ```javascript let TOOL_CALLS = 0; // Incrementar a cada tool call TOOL_CALLS++; ``` ### 4. Fim de Execução - Gravar Métrica **Via SQL directo (fallback robusto):** ```sql INSERT INTO tblskill_agent_metrics ( type, name, duration_ms, status, session_id, task_id, project_id, staff_id, kb_consulted, kb_hits, kb_miss, tool_calls, error_type, error_message, context_tokens, output_tokens, model_used, created_at ) VALUES ( 'skill', '/nome-skill', {DURATION_MS}, '{STATUS}', '{SESSION_ID}', {TASK_ID}, {PROJECT_ID}, 25, {KB_CONSULTED}, {KB_HITS}, {KB_MISS}, {TOOL_CALLS}, NULL, NULL, NULL, NULL, 'opus-4.5', NOW() ); ``` **Via MCP tool (quando disponível):** ```javascript mcp__desk-crm-v3__log_skill_metric({ type: 'skill', name: '/nome-skill', duration_ms: Date.now() - SKILL_START, status: 'success', // ou 'error', 'partial' session_id: SESSION_ID, task_id: CURRENT_TASK_ID, project_id: CURRENT_PROJECT_ID, staff_id: 25, // AikTop kb_consulted: KB_CONSULTED, kb_hits: KB_HITS, kb_miss: KB_MISS, tool_calls: TOOL_CALLS }); ``` ## Status Possíveis | Status | Quando Usar | |--------|-------------| | `success` | Skill completou com sucesso | | `error` | Skill falhou com erro | | `partial` | Skill completou parcialmente | | `cancelled` | Utilizador cancelou | ## Campos Opcionais | Campo | Quando Preencher | |-------|------------------| | `task_id` | Se executando dentro de tarefa Desk | | `project_id` | Se contexto de projecto conhecido | | `error_type` | Se status = 'error' | | `error_message` | Se status = 'error' | | `context_tokens` | Se disponível via API | | `output_tokens` | Se disponível via API | ## Template para Skills Adicionar esta secção no final de cada SKILL.md instrumentada: ```markdown --- ## Instrumentação Automática Esta skill grava métricas automaticamente para análise PDCA. ### Ao Executar Esta Skill 1. **Início:** Registar timestamp inicial 2. **Consultas KB:** Rastrear hits/miss do Dify 3. **Fim:** Gravar métrica via SQL ou MCP ### Query para Gravar (executar no final) \`\`\`sql INSERT INTO tblskill_agent_metrics (type, name, duration_ms, status, staff_id, kb_consulted, created_at) VALUES ('skill', '/nome-skill', {DURACAO_MS}, '{STATUS}', 25, {KB_CONSULTADO}, NOW()); \`\`\` ### Ver Métricas \`\`\`bash /metrics /nome-skill \`\`\` ``` ## Integração com /reflect Se degradação detectada (performance >15% pior que baseline): 1. `/metrics` mostra alerta 2. Sugerir `/reflect` para investigação 3. `/reflect` analisa padrões e propõe melhorias 4. Registar ciclo PDCA em `tblskill_agent_pdca_cycles` --- **Protocolo v1.0** | 2026-02-03