Compression Engines (Русский)
Комбинации сжатия
Заголовок раздела «Комбинации сжатия»Комбинации сжатия — это именованные профили сжатия, которые можно назначать комбинациям маршрутизации:
compression_combos: хранит режим, конвейер, конфигурацию RTK, языковую конфигурацию и маркер по умолчаниюcompression_combo_assignments: сопоставляет комбинацию сжатия с комбинацией маршрутизации- интеграция во время выполнения разрешает назначенную комбинацию сжатия до применения общих переопределений комбинации
- аналитика включает
compression_combo_idиengine
Раздел панели управления: Dashboard -> Context & Cache -> Compression Combos.
Поверхность API
Заголовок раздела «Поверхность API»| Маршрут | Назначение |
|---|---|
/api/settings/compression |
Глобальные настройки сжатия (включая конфигурацию mcpAccessibility) |
/api/compression/preview |
Предварительный просмотр любого режима сжатия |
/api/compression/language-packs |
Список доступных языковых пакетов Caveman |
/api/context/caveman/config |
Псевдоним настроек Caveman |
/api/context/rtk/config |
Значения по умолчанию и настройки RTK |
/api/context/rtk/filters |
Каталог фильтров RTK |
/api/context/rtk/test |
Эндпоинт предварительного просмотра/тестирования RTK |
/api/context/rtk/raw-output/[id] |
Аутентифицированное восстановление отредактированного необработанного вывода |
/api/context/combos |
CRUD для комбинаций сжатия |
/api/context/combos/[id]/assignments |
CRUD для назначений комбинаций маршрутизации |
/api/context/analytics |
Псевдоним аналитики сжатия |
Маршруты управления требуют аутентификации для управления или проверок политик API-ключей.
Инструменты MCP
Заголовок раздела «Инструменты MCP»Сжатие предоставляет пять инструментов MCP:
| Инструмент | Область | Назначение |
|---|---|---|
omniroute_compression_status |
read:compression |
Настройки, аналитика, статистика кеша |
omniroute_compression_configure |
write:compression |
Обновление глобальных настроек |
omniroute_set_compression_engine |
write:compression |
Установка режима и необязательного конвейера |
omniroute_list_compression_combos |
read:compression |
Список комбинаций сжатия |
omniroute_compression_combo_stats |
read:compression |
Чтение аналитики комбинаций/движков |
Область применения и исключения
Заголовок раздела «Область применения и исключения»Эмбеддинги никогда не сжимаются. open-sse/handlers/embeddings.ts никогда не вызывает
движок сжатия — тела запросов/ответов передаются исполнителю напрямую без изменений.
Сегодня это обеспечивается структурно (обработчики эмбеддингов и завершений чата разделены), а не
проверкой во время выполнения, однако это означает, что риск искажения векторов из #8034 отсутствует
в тракте эмбеддингов.
Фильтр исключений для отдельных моделей/эндпоинтов (#8034). Для завершений чата оператор может указать
идентификаторы моделей / цели provider/model, которые никогда не должны сжиматься, — это защитная мера,
полезная на случай, если позднее сжатие будет подключено ближе к тракту, смежному с эмбеддингами, а также в целом
для любой модели, где важен точный, побайтово неизменный промпт (детерминированные оценки, чувствительные к кешу
префиксы и т. д.).
- Поле настроек:
exclusions?: string[]в глобальной конфигурации сжатия (GET/PUT /api/settings/compression), сохраняемое через существующее пространство имён сжатияkey_value(src/lib/db/compression.ts) — новая таблица не требуется. - Вкладка панели управления: Dashboard → Compression → Exclusions
(
/dashboard/compression/exclusions). - Синтаксис шаблонов:
*— единственный подстановочный знак. Все прочие метасимволы регулярных выражений в шаблоне экранируются перед сопоставлением, поэтомуgpt-5.6соответствует только буквальной строке и никогда —gpt-5x6(безопасно в отношении ReDoS, ограничено, без вложенных квантификаторов). Шаблоны сопоставляются без учёта регистра как с отдельным идентификатором модели, так и с составным значениемprovider/model—gpt-5-6,openai/gpt-5-6иopenai/*поддерживаются, а*само по себе исключает все модели. - Сопоставление:
isCompressionExcluded()/normalizeCompressionExclusions()вopen-sse/services/compression/exclusions.ts.chatCore.tsпроверяет исключённую цель сразу после разрешения настроек сжатия, до запуска любого движка, и обрабатывает совпадение точно так же, как глобальное отключение сжатия, — тело запроса гарантированно остаётся побайтово идентичным. Пропуск записывается черезwriteCompressionSkip(..., "excluded")для отображения в аналитике. - Значение по умолчанию (пустой/отсутствующий список): поведение идентично существовавшему до #8034 — ничего не исключается.
Известные ограничения
Заголовок раздела «Известные ограничения»- LLMLingua-2 (SLM) требует совместного размещения необязательных зависимостей. Воркер запускается в
production-сборке, только когда
@atjsh/llmlingua-2и одноранговые зависимости совместно размещены вdist/node_modules(см.scripts/build/colocateOptionals.mjs, #4286). Без них движок аварийно возвращает исходный текст. Разрешение воркера больше не зависит отimport.meta.url(он не работает в автономном бандле) — вместо этого оно привязано к текущему рабочему каталогу среды выполнения /argv[1]. - Языковые пакеты Caveman
de/fr/jaявляются частичными. Они содержат правилаcontext+filler+structural, но не содержат пакетовdedup/ultra, поэтому интенсивностьultraдля этих языков не выше, чемfull(они используют только собственные правила — скрытого отката к английским правиламdedup/ultra, который мог бы исказить иностранный текст, нет). Пакетыen/es/id/pt-BRявляются полными. Приветствуется добавлениеdedup.json+ultra.jsonдля частичных пакетов. - Составная телеметрия перечисляет только движки, выполнившие сжатие. Шаг составного конвейера,
движок которого был запущен, но обеспечил экономию 0 %, возвращает
stats:nullи поэтому не отображается вengineBreakdown— его невозможно отличить от пропущенного шага. Различение состояний «запущен, 0 %» и «пропущен» потребовало бы изменения модели детализации и отложено.
Валидация
Заголовок раздела «Валидация»Целевые гейты для этой области:
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 — агентная среда разработки со структурированными процессами, параллельным выполнением несколькими агентами и интерфейсами Hero Dungeon.
Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

- SmartСтруктурированные процессы превращают намерение в исполнимый путь от идеи до готового изменения.
- EfficientМультиагентные процессы параллельно продвигают исследование, реализацию и проверку.
- FunHero Dungeon делает длительную совместную разработку наглядной и увлекательной.