Ir al contenido

Seleccionar idioma

Idioma actual: Español (España)

Compression Engines

Las combinaciones de compresión son perfiles de compresión con nombre que se pueden asignar a combinaciones de enrutamiento:

  • compression_combos: almacena el modo, la canalización, la configuración de RTK, la configuración de idioma y el marcador predeterminado
  • compression_combo_assignments: asigna una combinación de compresión a una combinación de enrutamiento
  • la integración en tiempo de ejecución resuelve una combinación de compresión asignada antes que las sobrescrituras genéricas de combinaciones
  • los análisis incluyen compression_combo_id y engine

Ubicación en el panel: Dashboard -> Context & Cache -> Compression Combos.

Ruta Propósito
/api/settings/compression Configuración global de compresión (incluye la configuración mcpAccessibility)
/api/compression/preview Previsualizar cualquier modo de compresión
/api/compression/language-packs Enumerar los paquetes de idioma Caveman disponibles
/api/context/caveman/config Alias de la configuración de Caveman
/api/context/rtk/config Valores predeterminados y configuración de RTK
/api/context/rtk/filters Catálogo de filtros de RTK
/api/context/rtk/test Endpoint de previsualización/prueba de RTK
/api/context/rtk/raw-output/[id] Recuperación autenticada de la salida sin procesar censurada
/api/context/combos CRUD de combinaciones de compresión
/api/context/combos/[id]/assignments CRUD de asignaciones de combinaciones de enrutamiento
/api/context/analytics Alias de análisis de compresión

Las rutas de administración requieren autenticación de administración o comprobaciones de políticas de claves de API.

La compresión expone cinco herramientas MCP:

Herramienta Ámbito Propósito
omniroute_compression_status read:compression Configuración, análisis y estadísticas de caché
omniroute_compression_configure write:compression Actualizar la configuración global
omniroute_set_compression_engine write:compression Establecer el modo y la canalización opcional
omniroute_list_compression_combos read:compression Enumerar las combinaciones de compresión
omniroute_compression_combo_stats read:compression Consultar análisis por combinación/motor

Los embeddings nunca se comprimen. open-sse/handlers/embeddings.ts nunca invoca ningún motor de compresión: los cuerpos de solicitud/respuesta pasan directamente al ejecutor sin modificaciones. Esto es estructural actualmente (los embeddings y las finalizaciones de chat tienen controladores independientes), no una comprobación en tiempo de ejecución, pero significa que el problema de distorsión vectorial de #8034 no tiene ninguna superficie de exposición en la ruta de embeddings.

Filtro de exclusión por modelo/endpoint (#8034). Para las finalizaciones de chat, un operador puede indicar los identificadores de modelo o destinos provider/model que nunca deben comprimirse; una medida de protección útil si la compresión llegara a conectarse más adelante a una ruta próxima a los embeddings y, en general, útil para cualquier modelo en el que importe que el prompt sea exacto byte por byte (evaluaciones deterministas, prefijos sensibles a la caché, etc.).

  • Campo de configuración: exclusions?: string[] en la configuración global de compresión (GET/PUT /api/settings/compression), conservado mediante el espacio de nombres de compresión key_value existente (src/lib/db/compression.ts); no se requiere ninguna tabla nueva.
  • Pestaña del panel: Dashboard → Compression → Exclusions (/dashboard/compression/exclusions).
  • Sintaxis de patrones: * es el único comodín. Todos los demás metacaracteres de expresiones regulares de un patrón se escapan antes de la comparación, por lo que gpt-5.6 solo coincide con la cadena literal, nunca con gpt-5x6 (resistente a ReDoS, acotado y sin cuantificadores anidados). Los patrones se comparan sin distinguir entre mayúsculas y minúsculas tanto con el identificador de modelo simple como con el compuesto provider/model: gpt-5-6, openai/gpt-5-6 y openai/* funcionan, y * por sí solo excluye todos los modelos.
  • Coincidencia: isCompressionExcluded() / normalizeCompressionExclusions() en open-sse/services/compression/exclusions.ts. chatCore.ts comprueba el destino excluido justo después de resolver la configuración de compresión, antes de que se ejecute cualquier motor, y trata una coincidencia exactamente igual que si la compresión estuviera deshabilitada globalmente: el cuerpo de la solicitud es demostrablemente idéntico byte por byte. La omisión se registra mediante writeCompressionSkip(..., "excluded") para aportar visibilidad en los análisis.
  • Valor predeterminado (lista vacía/ausente): comportamiento idéntico al anterior a #8034; no se excluye nada.
  • LLMLingua-2 (SLM) requiere dependencias opcionales coubicadas. El worker solo se ejecuta en una compilación de producción cuando @atjsh/llmlingua-2 y sus dependencias pares se coubican en dist/node_modules (véase scripts/build/colocateOptionals.mjs, #4286). Sin ellas, el motor aplica una apertura ante fallos (devuelve el texto original). La resolución del worker ya no depende de import.meta.url (falla en el paquete independiente), sino que se basa en el cwd del entorno de ejecución / argv[1].
  • Los paquetes de idiomas de / fr / ja de Caveman están incompletos. Incluyen reglas context + filler + structural, pero no paquetes dedup / ultra, por lo que la intensidad ultra no es mayor que full para esos idiomas (utilizan únicamente sus propias reglas; no hay una conmutación por error silenciosa a las reglas dedup/ultra en inglés, lo que deformaría el texto extranjero). en / es / id / pt-BR están completos. Se agradecen contribuciones de dedup.json + ultra.json para los paquetes incompletos.
  • La telemetría apilada solo enumera los motores que realizaron compresión. Un paso de una canalización apilada cuyo motor se ejecutó, pero produjo un ahorro del 0 %, devuelve stats:null y, por tanto, no aparece en engineBreakdown; resulta indistinguible de un paso que se omitió. Distinguir entre «ejecutado, 0 %» y «omitido» requeriría un cambio en el modelo de desglose y se ha pospuesto.

Las comprobaciones específicas para esta área son:

Ventana de terminal
node --import tsx/esm --test tests/unit/compression/rtk-*.test.ts tests/unit/compression/pipeline-integration.test.ts tests/unit/compression/context-compression-api.test.ts
node --import tsx/esm --test tests/unit/compression/*.test.ts tests/golden-set/*.test.ts tests/integration/compression-pipeline.test.ts tests/unit/api/compression/compression-api.test.ts
node --import tsx/esm --test tests/unit/compression/mcpAccessibility*.test.ts
npm run typecheck:core

undefined (a58000c7685f)

HagiCode

HagiCode es un espacio de programación con agentes. Las interacciones de interfaz, ricas y cómodas, hacen que planificar, ejecutar agentes y trabajar en proyectos sea accesible y fácil de seguir, para una experiencia de desarrollo atractiva.

Una experiencia de desarrollo atractiva gracias a interacciones de interfaz ricas y cómodas.

Visitar HagiCodeLeer la documentación
  • InteligenteLos flujos de trabajo de OpenSpec convierten la intención en un itinerario ejecutable, de la propuesta al diseño, las tareas y la entrega.
  • EficienteLa ejecución multiagente avanza en paralelo con la investigación, la implementación y la revisión, en varios repositorios y con los Agent CLI que ya usas.
  • InteresanteLas interacciones de interfaz, ricas y cómodas, hacen que planificar, ejecutar agentes y trabajar en proyectos sea accesible y fácil de seguir.

Descargar para Windows

Obtenerlo en Microsoft StoreTodas las descargas

Convierte ideas en software entregado.

HagiCode es un espacio de trabajo de programación con agentes: los flujos de trabajo de OpenSpec planifican el cambio, la ejecución multiagente lo lleva a cabo y Hero Scenario hace visible el largo recorrido, para convertir ideas en software entregado.

Inteligente
Los flujos de OpenSpec convierten la intención en un camino de la propuesta a la entrega.
Eficiente
La ejecución multiagente avanza en paralelo con investigación, implementación y revisión.
Divertido
Las interacciones de interfaz facilitan la planificación, los agentes y el trabajo en proyectos.