|
| 1 | +# Agentes Especializados - Proyecto IACT |
| 2 | + |
| 3 | +Este directorio contiene la definición de agentes especializados para automatización de tareas DevOps y desarrollo en el proyecto IACT Call Center. |
| 4 | + |
| 5 | +## Agentes Disponibles |
| 6 | + |
| 7 | +### 1. GitOpsAgent |
| 8 | + |
| 9 | +**Archivo**: `gitops_agent.md` |
| 10 | + |
| 11 | +**Propósito**: Operaciones Git y gestión de repositorio |
| 12 | + |
| 13 | +**Capacidades**: |
| 14 | +- Sincronización de ramas principales |
| 15 | +- Limpieza de ramas obsoletas |
| 16 | +- Auditoría de estructura de repositorio |
| 17 | +- Gestión de workflows Git |
| 18 | + |
| 19 | +**Cuándo usar**: |
| 20 | +- Después de múltiples PRs mergeados |
| 21 | +- Limpieza periódica de ramas |
| 22 | +- Sincronización antes de release |
| 23 | +- Auditoría de estructura del repositorio |
| 24 | + |
| 25 | +**Ejemplo**: |
| 26 | +``` |
| 27 | +GitOpsAgent: Sincroniza todas las ramas principales con develop |
| 28 | +y genera reporte completo de cambios. |
| 29 | +``` |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +### 2. ReleaseAgent |
| 34 | + |
| 35 | +**Archivo**: `release_agent.md` |
| 36 | + |
| 37 | +**Propósito**: Gestión de releases y versionado semántico |
| 38 | + |
| 39 | +**Capacidades**: |
| 40 | +- Cálculo automático de versión según commits |
| 41 | +- Generación de changelogs |
| 42 | +- Creación de tags Git |
| 43 | +- Actualización de archivos de versión |
| 44 | +- Preparación de release notes |
| 45 | + |
| 46 | +**Cuándo usar**: |
| 47 | +- Crear nuevo release (major, minor, patch) |
| 48 | +- Generar changelog |
| 49 | +- Crear release candidate |
| 50 | +- Hotfix urgente |
| 51 | + |
| 52 | +**Ejemplo**: |
| 53 | +``` |
| 54 | +ReleaseAgent: Crear nuevo release minor. |
| 55 | +Analiza commits desde último tag, genera changelog, |
| 56 | +actualiza versiones y crea tag. |
| 57 | +``` |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +### 3. DependencyAgent |
| 62 | + |
| 63 | +**Archivo**: `dependency_agent.md` |
| 64 | + |
| 65 | +**Propósito**: Gestión de dependencias y vulnerabilidades |
| 66 | + |
| 67 | +**Capacidades**: |
| 68 | +- Actualización de dependencias (conservadora/moderada/agresiva) |
| 69 | +- Escaneo de vulnerabilidades (CVEs) |
| 70 | +- Auditoría de licencias |
| 71 | +- Limpieza de dependencias no usadas |
| 72 | +- Gestión de lockfiles |
| 73 | + |
| 74 | +**Cuándo usar**: |
| 75 | +- Actualización mensual de dependencias |
| 76 | +- Respuesta a alerta de CVE |
| 77 | +- Auditoría de licencias antes de release |
| 78 | +- Limpieza de dependencias obsoletas |
| 79 | + |
| 80 | +**Ejemplo**: |
| 81 | +``` |
| 82 | +DependencyAgent: Actualiza dependencias con estrategia conservadora. |
| 83 | +Solo patches y minors. Genera reporte de cambios. |
| 84 | +``` |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +### 4. SecurityAgent |
| 89 | + |
| 90 | +**Archivo**: `security_agent.md` |
| 91 | + |
| 92 | +**Propósito**: Auditorías de seguridad y compliance |
| 93 | + |
| 94 | +**Capacidades**: |
| 95 | +- Escaneo de código con Bandit |
| 96 | +- Detección de secrets con gitleaks |
| 97 | +- Análisis de amenazas STRIDE |
| 98 | +- Validación de restricciones del proyecto |
| 99 | +- Auditoría de configuración de seguridad |
| 100 | + |
| 101 | +**Cuándo usar**: |
| 102 | +- Antes de cada release |
| 103 | +- Auditoría mensual de seguridad |
| 104 | +- Después de cambios en autenticación |
| 105 | +- Respuesta a incidente de seguridad |
| 106 | +- Validación de cumplimiento |
| 107 | + |
| 108 | +**Ejemplo**: |
| 109 | +``` |
| 110 | +SecurityAgent: Ejecuta auditoría completa de seguridad. |
| 111 | +Incluye: código, dependencias, secrets, configuración. |
| 112 | +Genera reporte priorizado por severidad. |
| 113 | +``` |
| 114 | + |
| 115 | +--- |
| 116 | + |
| 117 | +### 5. CodeTasker (Original) |
| 118 | + |
| 119 | +**Archivo**: `my_agent.md` |
| 120 | + |
| 121 | +**Propósito**: Tareas de programación asíncronas |
| 122 | + |
| 123 | +**Capacidades**: |
| 124 | +- Escribir funciones en múltiples lenguajes |
| 125 | +- Depurar errores |
| 126 | +- Refactorizar módulos |
| 127 | +- Generar documentación |
| 128 | +- Ejecutar pruebas de código |
| 129 | + |
| 130 | +**Cuándo usar**: |
| 131 | +- Tareas de programación delegables |
| 132 | +- Trabajo en segundo plano |
| 133 | +- Refactorización de código |
| 134 | + |
| 135 | +--- |
| 136 | + |
| 137 | +## Cómo Usar los Agentes |
| 138 | + |
| 139 | +### Sintaxis General |
| 140 | + |
| 141 | +``` |
| 142 | +[NombreAgente]: [Descripción de tarea] |
| 143 | +[Parámetros opcionales] |
| 144 | +``` |
| 145 | + |
| 146 | +### Ejemplos de Invocación |
| 147 | + |
| 148 | +**Ejemplo 1 - Operación Simple**: |
| 149 | +``` |
| 150 | +GitOpsAgent: Sincroniza ramas principales |
| 151 | +``` |
| 152 | + |
| 153 | +**Ejemplo 2 - Con Parámetros**: |
| 154 | +``` |
| 155 | +ReleaseAgent: Crear release patch |
| 156 | +Tag: v1.3.1 |
| 157 | +Mensaje: "Hotfix crítico en autenticación" |
| 158 | +``` |
| 159 | + |
| 160 | +**Ejemplo 3 - Operación Compleja**: |
| 161 | +``` |
| 162 | +DependencyAgent: Actualiza dependencias con estrategia conservadora. |
| 163 | +Solo patches y minors que resuelvan vulnerabilidades. |
| 164 | +Excluir: Django (actualizar manualmente) |
| 165 | +Generar reporte detallado. |
| 166 | +``` |
| 167 | + |
| 168 | +## Buenas Prácticas |
| 169 | + |
| 170 | +### 1. Especifica Claramente la Tarea |
| 171 | + |
| 172 | +**Bien**: |
| 173 | +``` |
| 174 | +SecurityAgent: Escanea vulnerabilidades en dependencias Python. |
| 175 | +Prioriza CRITICAL y HIGH. Genera reporte con comandos de corrección. |
| 176 | +``` |
| 177 | + |
| 178 | +**Mal**: |
| 179 | +``` |
| 180 | +SecurityAgent: checa el código |
| 181 | +``` |
| 182 | + |
| 183 | +### 2. Incluye Contexto Relevante |
| 184 | + |
| 185 | +**Bien**: |
| 186 | +``` |
| 187 | +ReleaseAgent: Crear hotfix patch para CVE-2023-xxxxx. |
| 188 | +Prioridad: URGENTE. Solo actualizar Django a 4.2.7. |
| 189 | +``` |
| 190 | + |
| 191 | +**Mal**: |
| 192 | +``` |
| 193 | +ReleaseAgent: hacer release |
| 194 | +``` |
| 195 | + |
| 196 | +### 3. Define Expectativas de Output |
| 197 | + |
| 198 | +**Bien**: |
| 199 | +``` |
| 200 | +GitOpsAgent: Audita estructura de ramas. |
| 201 | +Verifica: 4 ramas principales, sin ramas obsoletas >30 días. |
| 202 | +Genera: reporte en docs/qa/registros/ |
| 203 | +``` |
| 204 | + |
| 205 | +**Mal**: |
| 206 | +``` |
| 207 | +GitOpsAgent: ve las ramas |
| 208 | +``` |
| 209 | + |
| 210 | +### 4. Especifica Restricciones |
| 211 | + |
| 212 | +**Bien**: |
| 213 | +``` |
| 214 | +DependencyAgent: Actualiza dependencias. |
| 215 | +NO actualizar: Django, Celery (breaking changes) |
| 216 | +Solo: patches de paquetes en requirements/base.txt |
| 217 | +``` |
| 218 | + |
| 219 | +**Mal**: |
| 220 | +``` |
| 221 | +DependencyAgent: actualiza todo |
| 222 | +``` |
| 223 | + |
| 224 | +## Integración con Workflows |
| 225 | + |
| 226 | +Los agentes se integran con los procesos del proyecto: |
| 227 | + |
| 228 | +### Pre-commit |
| 229 | +```yaml |
| 230 | +# .pre_commit_config.yaml |
| 231 | +- repo: local |
| 232 | + hooks: |
| 233 | + - id: security-check |
| 234 | + name: SecurityAgent Pre-commit |
| 235 | + entry: SecurityAgent |
| 236 | + args: ["Escanea secrets en staged files"] |
| 237 | +``` |
| 238 | +
|
| 239 | +### CI/CD |
| 240 | +```yaml |
| 241 | +# .github/workflows/release.yml |
| 242 | +- name: Create Release |
| 243 | + run: | |
| 244 | + ReleaseAgent: Crear release según tipo de commit. |
| 245 | + Push tag al remoto. |
| 246 | +``` |
| 247 | +
|
| 248 | +### Cron Jobs |
| 249 | +```yaml |
| 250 | +# .github/workflows/dependency-check.yml |
| 251 | +on: |
| 252 | + schedule: |
| 253 | + - cron: '0 0 * * 1' # Lunes |
| 254 | +jobs: |
| 255 | + check: |
| 256 | + - name: Check Dependencies |
| 257 | + run: | |
| 258 | + DependencyAgent: Escanea vulnerabilidades. |
| 259 | + Crea issue si encuentra CRITICAL. |
| 260 | +``` |
| 261 | +
|
| 262 | +## Estructura de Reportes |
| 263 | +
|
| 264 | +Todos los agentes generan reportes en formato estándar: |
| 265 | +
|
| 266 | +**Ubicación**: `docs/qa/registros/YYYY_MM_DD_[agente]_[operacion].md` |
| 267 | + |
| 268 | +**Formato**: |
| 269 | +```markdown |
| 270 | +--- |
| 271 | +id: QA-REG-YYYYMMDD-AGENTE |
| 272 | +tipo: registro_actividad |
| 273 | +categoria: devops|security|release |
| 274 | +fecha: YYYY-MM-DD |
| 275 | +responsable: [NombreAgente] |
| 276 | +estado: completado|pendiente|fallido |
| 277 | +--- |
| 278 | +
|
| 279 | +# Registro: [Operación] - YYYY-MM-DD |
| 280 | +
|
| 281 | +## Información General |
| 282 | +... |
| 283 | +
|
| 284 | +## Trabajo Realizado |
| 285 | +... |
| 286 | +
|
| 287 | +## Resultados |
| 288 | +... |
| 289 | +
|
| 290 | +## Próximos Pasos |
| 291 | +... |
| 292 | +``` |
| 293 | + |
| 294 | +## Documentación Relacionada |
| 295 | + |
| 296 | +- **Agentes de Automatización**: `docs/desarrollo/agentes_automatizacion.md` |
| 297 | +- **Arquitectura de Agentes**: `docs/desarrollo/arquitectura_agentes_especializados.md` |
| 298 | +- **Runbooks DevOps**: `docs/devops/runbooks/` |
| 299 | +- **Procedimientos**: `docs/gobernanza/procesos/` |
| 300 | + |
| 301 | +## Desarrollo de Nuevos Agentes |
| 302 | + |
| 303 | +Para crear un nuevo agente especializado: |
| 304 | + |
| 305 | +1. **Definir propósito claro y específico** |
| 306 | + - Un agente = una responsabilidad |
| 307 | + - Evitar agentes monolíticos |
| 308 | + |
| 309 | +2. **Crear archivo en `.github/agents/[nombre]-agent.md`** |
| 310 | + ```markdown |
| 311 | + --- |
| 312 | + name: [NombreAgente] |
| 313 | + description: [Descripción breve] |
| 314 | + --- |
| 315 | + # [Nombre] Agent |
| 316 | + ... |
| 317 | + ``` |
| 318 | + |
| 319 | +3. **Incluir secciones estándar**: |
| 320 | + - Capacidades |
| 321 | + - Cuándo usarlo |
| 322 | + - Ejemplos de uso |
| 323 | + - Herramientas que utiliza |
| 324 | + - Restricciones |
| 325 | + - Mejores prácticas |
| 326 | + |
| 327 | +4. **Documentar en este README** |
| 328 | + |
| 329 | +5. **Agregar a `docs/desarrollo/agentes_automatizacion.md`** |
| 330 | + |
| 331 | +6. **Crear tests si el agente genera código** |
| 332 | + |
| 333 | +## Soporte y Feedback |
| 334 | + |
| 335 | +### Problemas con Agentes |
| 336 | + |
| 337 | +Si un agente no funciona como esperado: |
| 338 | + |
| 339 | +1. Verifica la sintaxis de invocación |
| 340 | +2. Revisa el archivo de definición del agente |
| 341 | +3. Consulta los ejemplos de uso |
| 342 | +4. Revisa registros en `docs/qa/registros/` |
| 343 | + |
| 344 | +### Sugerencias de Mejora |
| 345 | + |
| 346 | +Para sugerir mejoras a agentes existentes: |
| 347 | + |
| 348 | +1. Documentar caso de uso no cubierto |
| 349 | +2. Proponer nueva capacidad |
| 350 | +3. Reportar limitación encontrada |
| 351 | +4. Crear issue en GitHub con etiqueta `agent-enhancement` |
| 352 | + |
| 353 | +### Nuevos Agentes |
| 354 | + |
| 355 | +Para proponer nuevos agentes: |
| 356 | + |
| 357 | +1. Definir problema que resuelve |
| 358 | +2. Verificar que no existe agente similar |
| 359 | +3. Describir capacidades necesarias |
| 360 | +4. Proponer nombre y sintaxis |
| 361 | +5. Crear issue con etiqueta `new-agent` |
| 362 | + |
| 363 | +## Métricas y Monitoreo |
| 364 | + |
| 365 | +Los agentes generan métricas de uso: |
| 366 | + |
| 367 | +- Número de ejecuciones por agente |
| 368 | +- Tiempo promedio de ejecución |
| 369 | +- Tasa de éxito/fallo |
| 370 | +- Operaciones más comunes |
| 371 | +- Reportes generados |
| 372 | + |
| 373 | +Ver estadísticas en: `docs/qa/registros/metricas_agentes.md` (si existe) |
| 374 | + |
| 375 | +--- |
| 376 | + |
| 377 | +**Última actualización**: 2025-11-05 |
| 378 | +**Total de agentes**: 5 |
| 379 | +**Versión de documentación**: 1.0.0 |
0 commit comments