Skip to main content
Documentación interna para desarrolladores. Esta página documenta los puntos finales de API de los agentes, los requisitos de autenticación, los patrones de consulta de Prisma y las notas de implementación. No está destinado a usuarios finales.

Mapa de ruta


Patrón de autenticación

Todos los puntos finales del agente utilizan withPermissionRoute de @zappway/lib/create-route-handler.
LEER puntos finales: anyPermission: ['agents.read'] + authMode: 'lightweight' ESCRIBIR puntos finales: anyPermission: ['agents.write'] (sin modo de autenticación; utiliza sesión completa) Aislamiento de organización: Todas las consultas deben tener como alcance req.session.organization.id.

CRUD central

Listar agentes

Crear agente

Obtener agente por ID


Sub-API de habilidades

Funciones clave de la biblioteca

Lógica del alcance de la habilidad

Restricción de unicidad de Slug

Al crear/actualizar un slug, siempre verifique si hay conflictos: CÓDIGO_BLOQUE_7

Listar tipo de respuesta de habilidades


Sub-API de especialistas

Detección de ciclo

El controlador PUT /specialists detecta ciclos en profundidad-1 antes de crear una delegación:

estructura de configuración de reglas especializadas

Desactivar: elimina la regla especializada


Problemas conocidos / Problemas

  • assertAgentBelongsToOrganization: llame siempre a esto antes de cualquier operación de base de datos específica del agente para evitar fugas de datos entre organizaciones. Se lanza si el agente no coincide con la organización.
  • propose-from-rag utiliza un contador skipped para propuestas que coinciden estrechamente con las habilidades existentes (por slug). El umbral se define en @zappway/lib/agent-skills.
  • Especialistas PUT es IDEMPOTENTE pero NO ESTRICTAMENTE ATÓMICO a nivel de base de datos (consulte el comentario en línea en el código: IDEMPOTENT_BUT_NOT_ATOMIC). En condiciones de alta simultaneidad, dos solicitudes paralelas podrían crear una delegación duplicada. Un índice único a nivel de base de datos en (agent_id, type, config->>'targetAgentId') solucionaría este problema.
  • El estado lastReviewedAt solo se actualiza cuando el estado cambia a active o archived, no en las actualizaciones generales de PATCH.

Índices Prisma utilizados


Referencia de errores