Saltar a contenido

Sincronización de agentes

La sincronización permite mantener los agentes actualizados con los archivos de configuración del repositorio.

¿Por qué sincronizar?

Los agentes pueden definirse en dos lugares:

  1. Base de datos: Configuración editable desde la UI
  2. Archivos: Definiciones en el repositorio (.md files)

La sincronización mantiene ambos en línea:

graph LR
    F[Archivos .md] -->|Sync| DB[(Base de datos)]
    DB -->|UI muestra| UI[Interfaz]
    UI -->|Edición| DB

Cuándo sincronizar

Sincroniza cuando:

  • Se han añadido nuevos agentes al repositorio
  • Se han modificado system prompts en archivos
  • Quieres restaurar la configuración original
  • Después de un git pull con cambios en agentes

Ejecutar sincronización

Desde la UI

  1. Ve a Agentes
  2. Haz clic en Sync
  3. Confirma la acción
  4. Espera a que termine el proceso
┌─────────────────────────────────────────────────────────────────┐
│ Sincronización de Agentes                                       │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Procesando archivos...                                         │
│  ████████████████████████░░░░░░  75%                           │
│                                                                 │
│  ✓ documentation-engineer       Actualizado                    │
│  ✓ dotnet-architect             Sin cambios                    │
│  ✓ devops-troubleshooter        Actualizado                    │
│  + database-optimizer           Nuevo                          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Resultado de sincronización

Estado Significado
Actualizado El agente existía y se actualizó
Sin cambios El agente está igual que el archivo
+ Nuevo Se creó un agente nuevo
Advertencia Hay diferencias que revisar
Error Falló la sincronización

Archivos de agentes

Los agentes se definen en archivos Markdown con esta estructura:

docs/.ai/agents/
├── dotnet-architect.md
├── documentation-engineer.md
├── devops-troubleshooter.md
├── database-optimizer.md
└── ...

Formato del archivo

---
slug: documentation-engineer
name: Documentation Engineer
description: Ingeniero especializado en documentación técnica
active: true
skills:
  - markdown
  - technical-writing
  - diátaxis
---

# Documentation Engineer

Eres un ingeniero especializado en documentación técnica...

## Responsabilidades
- Mantener documentación actualizada
- ...

Frontmatter

El bloque YAML al inicio define metadatos:

Campo Descripción Requerido
slug Identificador único
name Nombre descriptivo
description Descripción breve No
active Estado activo/inactivo No (default: true)
skills Lista de skills asignadas No

Contenido

Todo el contenido después del frontmatter se usa como system prompt.

Resolución de conflictos

Archivo vs Base de datos

Si hay diferencias entre el archivo y la base de datos:

  1. Por defecto: El archivo tiene prioridad
  2. Opción manual: Se muestra un diálogo para elegir
┌─────────────────────────────────────────────────────────────────┐
│ Conflicto detectado: documentation-engineer                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  El archivo y la base de datos tienen diferencias:              │
│                                                                 │
│  ┌──────────────────────┐    ┌──────────────────────┐          │
│  │ ARCHIVO              │    │ BASE DE DATOS        │          │
│  │ Línea 15: "nuevo"    │ vs │ Línea 15: "antiguo"  │          │
│  └──────────────────────┘    └──────────────────────┘          │
│                                                                 │
│  ¿Qué versión mantener?                                         │
│                                                                 │
│  [Usar Archivo]  [Usar BD]  [Omitir]                           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Agente en BD pero no en archivo

  • Se mantiene en la base de datos
  • Se marca como "sin archivo fuente"
  • Considera eliminar o crear el archivo

Archivo nuevo sin agente en BD

  • Se crea el agente automáticamente
  • Aparece como "+ Nuevo" en el resultado

Sincronización selectiva

Sincronizar un solo agente

  1. Abre el agente
  2. En la página de detalles, haz clic en Sync desde archivo
  3. Se actualizará solo ese agente

Sincronizar por categoría

  1. En la lista de agentes, filtra por categoría
  2. Selecciona los agentes deseados
  3. Haz clic en Sync seleccionados

Exportar a archivos

Si has hecho cambios en la UI y quieres guardarlos como archivos:

  1. Abre el agente modificado
  2. Haz clic en Exportar a archivo
  3. El sistema genera/actualiza el archivo .md
  4. Haz commit de los cambios en git

Control de versiones

Recuerda hacer commit de los archivos exportados para mantener el repositorio actualizado.

Automatización

Sync automático en deploy

Puedes configurar sincronización automática después de cada deploy:

# En tu script de deploy
dotnet run --project Orchestrator.Api -- sync-agents

Webhook de Git

Configura un webhook que ejecute sync cuando hay cambios en docs/.ai/agents/:

  1. Crea un trigger de webhook
  2. Apunta a la URL de sync de Nexus
  3. Configura el webhook en GitHub/GitLab

Mejores prácticas

Workflow recomendado

  1. Desarrollo: Edita agentes en la UI para probar rápido
  2. Estabilización: Exporta cambios a archivos
  3. Code Review: Revisa cambios en PR
  4. Merge: Fusiona cambios al main
  5. Deploy: Sync automático actualiza producción

Mantén archivos como fuente de verdad

  • Los archivos son versionables en Git
  • Permiten code review de cambios
  • Facilitan rollback
  • Documentan la evolución

Documenta los cambios

Incluye comentarios en los commits:

feat(agents): actualiza system prompt de documentation-engineer

- Añade sección de formato de respuesta
- Actualiza reglas de estilo
- Añade ejemplos de uso

Siguiente: Tareas - Aprende a programar y ejecutar tareas.