Compression Engines (Español)
Combinaciones de compresión
Sección titulada «Combinaciones de compresión»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 predeterminadocompression_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_idyengine
Ubicación en el panel: Dashboard -> Context & Cache -> Compression Combos.
Superficie de la API
Sección titulada «Superficie de la API»| 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.
Herramientas MCP
Sección titulada «Herramientas MCP»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 |
Alcance y exclusiones
Sección titulada «Alcance y exclusiones»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ónkey_valueexistente (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 quegpt-5.6solo coincide con la cadena literal, nunca congpt-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 compuestoprovider/model:gpt-5-6,openai/gpt-5-6yopenai/*funcionan, y*por sí solo excluye todos los modelos. - Coincidencia:
isCompressionExcluded()/normalizeCompressionExclusions()enopen-sse/services/compression/exclusions.ts.chatCore.tscomprueba 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 mediantewriteCompressionSkip(..., "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.
Limitaciones conocidas
Sección titulada «Limitaciones conocidas»- LLMLingua-2 (SLM) requiere dependencias opcionales coubicadas. El worker solo se ejecuta en una
compilación de producción cuando
@atjsh/llmlingua-2y sus dependencias pares se coubican endist/node_modules(véasescripts/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 deimport.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/jade Caveman están incompletos. Incluyen reglascontext+filler+structural, pero no paquetesdedup/ultra, por lo que la intensidadultrano es mayor quefullpara esos idiomas (utilizan únicamente sus propias reglas; no hay una conmutación por error silenciosa a las reglasdedup/ultraen inglés, lo que deformaría el texto extranjero).en/es/id/pt-BRestán completos. Se agradecen contribuciones dededup.json+ultra.jsonpara 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:nully, por tanto, no aparece enengineBreakdown; 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.
Validación
Sección titulada «Validación»Las comprobaciones específicas para esta área son:
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.tsnode --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.tsnode --import tsx/esm --test tests/unit/compression/mcpAccessibility*.test.tsnpm run typecheck:coreHagiCode
HagiCode es un espacio de trabajo de programación con agentes, flujos estructurados, ejecución multiagente y vistas de Hero Dungeon.
Convierte ideas en software útil con un flujo de trabajo con agentes más inteligente, rápido y ameno.

- SmartLos flujos estructurados convierten la intención en un itinerario ejecutable desde la idea hasta la entrega.
- EfficientLos flujos multiagente permiten avanzar en paralelo con la investigación, implementación y revisión.
- FunHero Dungeon hace que las largas sesiones de programación sean visuales y colaborativas.