ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

OmniRoute 压缩引擎全指南:Caveman、RTK、LLMLingua-2 与 Stacked 管线架构与配置实战

OmniRoute 压缩引擎全指南:Caveman、RTK、LLMLingua-2 与 Stacked 管线架构与配置实战 OmniRoute 压缩引擎全指南Caveman、RTK、LLMLingua-2 与 Stacked 管线架构与配置实战【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 352 providers (150 free), 1200 models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline Copilot. Quota-aware auto-fallback, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute本文系统拆解 OmniRoute 的上下文压缩体系从模式Mode—引擎Engine—管线Pipeline的分层模型出发逐一剖析 Caveman 语义压缩、RTK 命令输出压缩、LLMLingua-2 语义剪枝、OmniGlyph 图像化压缩以及 CCR / headroom / ionizer / session-dedup 等结构化无损引擎的契约、配置与适用场景。你将理解引擎注册表的统一接口、Stacked 组合管线的收益叠加公式、MCP 可访问性树后置过滤器、压缩组合Compression Combos与 API/MCP 暴露面并学会用源码级证据排查引擎为何没有生效这类实战问题。模式Modes单引擎直跑与确定性管线OmniRoute 的压缩体系围绕引擎契约构建一种模式mode可以直接运行某个引擎如caveman、rtk也可以运行一条按顺序执行多个引擎的确定性 Stacked 管线。运行期由 open-sse/services/compression/strategySelector.ts 的selectCompressionPlan()依据配置解析最终计划再交给applyCompression()/applyCompressionAsync()执行。从 types.ts 的类型定义可见完整的CompressionMode集合Mode引擎路径面向的输入off无精确保留原始 promptliteCaveman lite 辅助规则低风险的常开清理standardCaveman自然语言 prompt 凝练aggressiveCaveman 历史/工具总结器长对话会话ultraCaveman 剪枝辅助上下文超限后的恢复rtkRTK终端、shell、构建、测试、git 输出omniglyphOmniGlyph以上下文即图像形式直连原生 provider 线路stacked管线默认rtk - caveman混合工具日志 散文追求最大节省关键实现细节strategySelector.ts中的计划解析遵循严格的优先级见resolveBasePlan主开关config.enabled置为false时是硬性关闭任何请求头都无法再打开压缩其次是路由组合覆盖、显式命名档案、自动触发autoTriggerTokens最后才落到由每引擎开关地图派生的默认计划。chatCore.ts在解析压缩设置后、任何引擎运行前执行排除检查见下文范围与排除一旦命中即视为全局关闭保证请求体逐字节不变。模式即启用信号源码中一个容易误解的点当用户在界面上选中standard/rtk/lite/aggressive/ultra模式时选择行为本身就是启用信号——引擎会无视 per-engine 的enabled开关直接运行该开关只用于约束 stacked 步骤内的行为。例如runCompression()对rtk分支的处理就是if (mode rtk) { return applyRtkCompression(body, { config: { ...(options?.config?.rtkConfig ?? {}), enabled: true }, }); }这一点在排查我开了 rtk 但 RTK 配置里的 enabledfalse 为什么还生效时非常关键。引擎注册表Engine Registry所有引擎共享一套统一的对外契约注册表实现位于 open-sse/services/compression/engines/registry.ts。引擎接口定义在 open-sse/services/compression/engines/types.tsid稳定的引擎标识如caveman、rtkapply(text, config)遗留执行路径供 stacked 管线使用compress(input, config)主执行路径返回文本 统计CompressionResult含body/compressed/statsgetConfigSchema()返回类 JSON-Schema 的合法配置形状字段类型为 boolean/number/string/select/multiselectvalidateConfig(config)返回{ valid, errors[] }可选扩展字段targetsmessages/tool_results/code_blocks、stackable、stackPriority、sampling声明为有意有损的采样引擎保真门会跳过它、metadata.executionStagespre-translation/post-translation缺省即只支持 pre-translation以及异步变体applyAsyncworker 线程模型引擎必须把apply保留为安全的同步透传。注册流程使用registerCompressionEngine(engine)进阶可用registerEngine可携带defaultConfig。从 registry.ts 源码可见注册时先调用assertValidEngine()校验契约完整性再调用validateConfig(defaultConfig)校验默认配置任一环节失败都会抛错拒绝注册。运行期可用unregisterCompressionEngine(id)移除引擎getEngine(id)按 id 取回引擎listEngines()枚举全部注册项setEngineEnabled(id, enabled)可整体开关某个引擎stacked 循环会尊重该标志跳过已禁用引擎无需改动每条管线。内置引擎的注册统一在 engines/index.ts 的registerBuiltinCompressionEngines()中完成带registered闩锁且测试clearCompressionEngineRegistry()后可自动恢复注册的引擎包括lite、caveman、aggressive、ultra、rtk、codex-responses、session-dedup、headroom、ccr、llmlingua、ionizer、relevance、llm、read-lifecycle、omniglyph。strategySelector.ts 在压缩运行前调用该函数注册内置引擎使得预览、运行期压缩、stacked 模式、测试与未来的引擎共享同一条执行路径。相关的 MCP 描述压缩另有一个独立的注册表在注册表级别压缩 MCP 工具描述元数据——实现位于 open-sse/mcp-server/descriptionCompressor.ts详见 docs/frameworks/MCP-SERVER.md。它复用 Caveman 规则但作用对象是工具元数据而非请求载荷与正文压缩互不干扰。内置结构化/无损引擎CCR、headroom、ionizer、session-dedup在 Caveman、RTK、LLMLingua-2 之外注册表还提供若干面向 stacked 管线、Playground 与测试的专用无损/结构化引擎实现同样位于open-sse/services/compression/engines/引擎Id作用CCRccrContent-Compress-RetrieveH4把大段连续文本替换为内容寻址引用重复/超大块只发送一次之后用引用代替。headroomheadroomSmartCrusherH3 N5对同质 JSON 数组载荷做无损表格化压缩折叠为列式[N rows]形态。ionizerionizer对超大同质块做头/中/尾行采样被剔除的中间段以 CCR 内容寻址引用保存。session-dedupsession-dedup内容寻址的跨轮去重受 TokenMizer 启发剔除同会话前序轮次已出现过的文本。CCR 检索协议注入#8033CCR 首次在同一请求中替换 ≥1 个文本块时会在请求前注入一条幂等的system消息以[CCR protocol]哨兵开头向调用方传授标记 → 工具契约。实现见 engines/ccr/protocolInstruction.ts它向模型说明[CCR retrieve hash24hex charsN]标记的含义、hash 必须逐字符复制全部 24 位十六进制误抄 hash 是 block not found 未命中最可能的原因以及[dedup:ref sha...]表示回看历史而不是调用工具注入仅当调用方对外声明的tools[]证明它能真正触达omniroute_ccr_retrieve时发生callerSupportsCcrRetrieve()会同时识别 OpenAI 嵌套形态{type:function,function:{name}}、扁平形态与 Claude 形态——纯 OpenAI-compatible 调用方没有该工具就绝不会收到去调用一个够不着的东西的指令幂等性通过先扫描消息历史是否已含哨兵保证多轮请求会重放前序消息若不检查每轮都会叠一条说明。Caveman自然语言的语义凝练Caveman 模式聚焦于普通散文的语义化压缩保留代码块、URL、JSON、路径与结构化数据移除填充词、犹豫表达、重复上下文与冗长连接性措辞支持语言感知的文件规则包规则目录见 open-sse/services/compression/rules/继续通过遗留的standard、aggressive、ultra模式开放使用。Caveman 的单条规则在 types.ts 中被建模为CavemanRule每条规则含pattern、replacement、生效contextall/user/system/assistant、preservePatterns、categoryfiller/context/structural/dedup/terse/ultra与minIntensity。规则包按语言目录组织例如en/下含context.json、filler.json、structural.json、dedup.json、ultra.json五类_schema.json定义规则格式。关于上游数据非本项目测量Caveman 上游报告输出 token 减少约 75%、基准中平均输出节省 65%、区间 22–87%并提供约 46% 的输入侧压缩工具。OmniRoute 在文档化 stacked prompt/context 节省时采用 Caveman 输入侧数字Caveman 的输出模式仍是独立的响应行为特性不要与输入压缩混为一谈。规则集的分语言覆盖有明确维护状态见下文已知限制在配置standard/aggressive/ultra前建议确认所选语言包完整性。引擎单测与集成用例可参考tests/unit/compression/与tests/integration/compression-pipeline.test.ts。RTK命令与工具输出压缩RTK 模式专注命令/工具输出是 Coding Agent 会话中最常用的输入压缩器之一可识别git status、git branch、git diff、Vitest/Jest/Pytest、Cargo/Go 测试、TypeScript/Vite/Webpack 构建、ESLint、npm audit/install、Docker 日志、shellfind/grep、堆栈跟踪与泛化日志等输出类别应用按命令类型组织的 JSON 过滤器集合文档维护时统计为 49 个全部过滤器清单在 engines/rtk/filters/支持 RTK 风格声明式管线ANSI 剥离、替换、match-output 短路、strip/keep 行、逐行截断、head/tail/max-line 截断、on-empty 回退支持受信任门控的项目过滤器.rtk/filters.json与全局过滤器DATA_DIR/rtk/filters.json剥离 ANSI 序列、进度噪音、重复行与无益样板保留可操作的失败、警告、摘要、变更文件与尾部上下文可选地通过鉴权管理路由保留脱敏原始输出用于恢复/排障。一个真实过滤器示例 filters/docker-logs.json 展示其 JSON Schema 形态match声明命中条件输出类型、命令正则、内容模式rules声明处理动作stripAnsi、dropPatterns、includePatterns、collapsePatterns、deduplicate、maxLines、headLines、tailLinespreserve声明必须保住的行模式tests内置可回放的样本用例。这类过滤器自带测试的结构让改完即可验证成为可能。RTK 内部管线顺序见 engines/rtk/index.ts 的processRtkText为命令类型探测 → 过滤器匹配与应用 → 可选语义渲染器enableRenderers默认关→ 可选代码块内压缩/代码剥离applyToCodeBlocks→ 重复行去重deduplicateThreshold→ 可选相似行分组enableGrouping默认关→ 基于优先级模式error/failed/exception/traceback/TS\d{4} 等的smartTruncate硬截断。行数预算会按强度缩放effectiveMaxLinesaggressive×0.5、minimal×1.5但错误/失败行在任何强度下都通过 priorityPatterns 存活。值得注意的工程细节缓存断点保护携带cache_control的内容块是 provider 的显式 prompt-cache 断点RTK 会对其逐字节保留#3936避免每轮都打爆 provider 缓存命令来源追踪引擎从 assistant 消息构建tool_call_id → {toolName, command}查找表同时支持 OpenAI 嵌套tool_calls与 Anthropictool_use并仅在工具名匹配 bash/shell/terminal 等见SHELL_TOOL_NAME_RE时才应用命令感知过滤器防止read/grep读回的内容被误判为构建日志而截断文档读取保护#4559当 RTK 未识别出命令、类型为 unknown 且无错误标记时按文档读取处理跳过泛化过滤器和末尾硬上限避免误删代码/散文文件的中间段原始输出保留#10659rawOutputRetention支持never/failures/always配合rawOutputMaxBytes/rawOutputMaxFiles/rawOutputMaxAgeDays做有界保留与节流清理绝不在热路径阻塞。RTK 默认配置可在 types.ts 的DEFAULT_RTK_CONFIG看到全貌intensity: minimal、默认只作用于工具结果applyToToolResults: true、maxLinesPerResult: 120、maxCharsPerResult: 12000、deduplicateThreshold: 3、customFiltersEnabled: true、trustProjectFilters: false、rawOutputRetention: never。关于上游数据RTK 上游报告命令输出压缩可节省 60–90%其 README 示例显示一段 30 分钟的 Claude Code 会话从约 118,000 tokens 降至约 23,900 tokens节省 79.7%。自定义过滤器、信任门控、校验与原始输出恢复的操作细节详见 docs/compression/RTK_COMPRESSION.md。LLMLingua-2基于语义剪枝的 prose 压缩LLMLingua-2 模式使用小型 ONNX token 分类器对散文做语义 token 剪枝与基于规则的 Caveman/RTK 互补只压缩非 system 消息中的散文围栏代码块及其他受保护结构绝不改动运行atjsh/llmlingua-2后端经huggingface/transformers的 ONNX且在工作线程中执行——模型推理不会阻塞请求事件循环可堆叠stackPriority: 35在 stacked 管线中它运行在结构化引擎CCR、session-dedup、headroom、Caveman之后、ultra之前因为语义剪枝对已完成结构压缩的文本最有效——例如rtk - caveman - llmlingua任何错误都 fail-open可选依赖缺失、worker 生成失败、模型加载失败、推理失败或超时→ 原样返回文本绝不抛错。引擎位置open-sse/services/compression/engines/llmlingua/含worker.ts、modelStore.ts、onnxWorker.ts、constants.ts等。模型选择默认模型TinyBERTatjsh/llmlingua-2-js-tinybert-meetingbank约 57 MB速度快更高精度的BERT-base模型Arcoldd/llmlingua4j-bert-base-onnx约 710 MB可通过引擎配置model字段启用huggingface/transformers在首次调用时把所选模型懒下载到${DATA_DIR}/models/llmlingua见modelStore.ts离线 / 隔离air-gapped安装可改用modelPath配置指向本地模型副本。可选依赖与按需安装可剪枝的 LLMLingua 运行期 peer 栈是可选的。两个包在package.json中以optionalDependencies声明并由生产构建保持externalscripts/build/prepublish.ts 不打进 bundle包版本pin说明atjsh/llmlingua-22.0.5入口包把其余声明为 peersjs-tiktoken^1.0.20Tokenizerhuggingface/transformers固定在^4.2.0与本地 embedding 路径共享atjsh/llmlingua-22.0.5以^3.5.2 || ^4.0.0依赖它因此 Transformers.js v3/v4 都支持。自 2.0.4 起atjsh/llmlingua-2不再需要tensorflow/tfjs移除了 SLM 栈里最大的单个体积贡献者约 800 MB。注意只有上述两个包是可剪枝的 SLM peers标准npm install开发环境默认自动安装可选栈除非你显式跳过 optional。为何按需安装npm 发布包、standalone bundle 与 Docker 镜像默认都不携带这些依赖以保持精简。缺失时 worker 的依赖门worker.ts中一次atjsh/llmlingua-2resolve 探测会失败并静默 fail-open——此时选中 LLMLingua 等于空操作文本原样返回无任何错误日志。要在精简环境中激活它请安装可选栈# 固定到 package.json optionalDependencies 声明的版本 npm install atjsh/llmlingua-22.0.5 js-tiktokentensorflow/tfjs移除2.0.4后剩余体积主要是 transformers.js onnxruntime-node 运行期外加首次使用时下载的 TinyBERT 模型约 57 MB不走 npm。分环境的激活方式Dev /npm install—— 默认自动安装除非传了--omitoptional/--no-optional无需操作全局 npmnpm i -g omniroute/ standalone—— 在已安装的包目录内执行上面的安装命令或在不省略 optional 的前提下重装Docker—— 在派生镜像层里追加安装命令官方镜像刻意保持精简VPSPM2—— 安装进应用的node_modules后重启进程让 worker 重新探测门裸 Next standalonenpm run build→.build/next/standalone/server.js—— standalone trace 既不携带 worker 也不携带 optional 依赖引擎会静默 fail-open。scripts/build/colocate-standalone.mjs 会在每次构建后自动把两者worker esbuild optional-dep 闭包重新应用到 standalone 树中它通过postbuildnpm 钩子自动运行幂等依赖缺失时 fail-soft。验证它真的激活了选中 LLMLingua 后真实散文确实变短引擎不再 fail-open且首个请求会触发模型下载到${DATA_DIR}/models/llmlingua。注意门的探测只探测atjsh/llmlingua-2——其余 peers 是纯 ESMrequire.resolve即便包存在也会抛错——所以若任一 peer 在import()时才真正缺失worker 仍会 fail-open。Stacked 管线确定性多引擎流水线Stacked 模式按顺序执行管线步骤默认管线为rtk - caveman适合 Coding Agent 会话——这类 prompt 往往混有命令输出与人话/助手散文RTK 先削减嘈杂工具日志Caveman 再压缩剩余自然语言。管线步骤通过压缩设置里的stackedPipeline或压缩组合compression combos配置。实现上strategySelector.ts 的resolveStackSteps()会先尊重显式配置的管线其次回退到由每引擎开关地图派生出的管线最后才是历史默认[{engine:rtk},{engine:caveman}]——避免了外部调用方只转发持久化配置、却悄悄无视用户开关的引擎而走内置默认的陷阱#6463。执行循环支持同步applyStackedCompression()与异步applyStackedCompressionAsync()双路径引擎暴露applyAsync时被 await纯同步引擎内联执行两条路径行为一致。每步引擎执行前会依次检查引擎是否已注册、是否符合当前compressionStagepost-translation 阶段只放行声明支持该阶段的引擎、注册表中是否被禁用、管线级熔断器circuit-breakerT02是否打开执行后按 min-gain 决策TV1 bail-out与保真门fidelity gate决定是否真正提交该步结果。可选步骤还包括硬预算后处理targetTokens/targetRatio与聚合膨胀守卫applyStackedInflationGuard并提供onEngineStep逐引擎流式进度回调。当两个引擎削减同一批可减载荷时节省复利叠加combined 1 - (1 - RTK savings) * (1 - Caveman input savings) average 1 - (1 - 0.80) * (1 - 0.46) 89.2% range 1 - (1 - 0.60..0.90) * (1 - 0.46) 78.4-94.6%其中 0.46 为 Caveman 上游报告的输入侧压缩率、0.60–0.90 为 RTK 命令输出压缩区间——该式只是说明同源可减载荷上节省叠加的估算模型实际收益取决于载荷构成。OmniGlyph 压缩画像omniglyph引擎npm 包omniglyph1.4.0接受一个具名语义画像profile可通过压缩设置的omniglyph.profile全局设置也可在 stacked 管线步骤配置中逐步骤指定画像边界Boundaryaggressive默认。发布 receipts 所测量的策略——images system、工具文档与稠密历史balanced保持实时状态原生保护最近 8 轮折叠更早的已关闭历史coding-safe保持 authority、工具 schema 与实时工具输出原生保护最近 12 轮passthrough不做变换直接路由引擎被跳过画像是一个上限ceiling而非下限floor包内mergeCompressionProfileOptions拒绝让调用方重新打开画像已关闭的有损通道——因此逐步骤设置preserveSystemPrompt: false也无法在coding-safe下重新启用系统压缩。本代码库内的测量结论coding-safe与balanced会把minCompressChars抬到最大值并保持 system、工具 schema 与工具结果原生——尚未积累历史的会话会停在below_min_chars引擎什么都不变换。这正是默认值选aggressive而非最安全的画像的原因。包会自行从环境配置解析模型范围与画像OmniRoute 从不把决定权下放——适配器把模型门固定到包内最严格的 scope宿主环境设置只能收窄允许列表无法放宽到超过 OmniRoute 测量过的 receipts 之外。MCP 可访问性树过滤器MCP accessibility-tree 智能过滤器是一个执行后post-execution压缩层作用对象是 MCP工具结果而非 prompt/上下文。它专门对付 Playwright、computer-use、浏览器自动化类 MCP 服务返回的冗长可访问性树与浏览器快照载荷。做了什么噪音剥离——移除空 generic/text 条目- generic:、- text: 兄弟节点折叠——当 ≥collapseThreshold默认 30个连续行是结构重复时折叠为前collapseKeepHead默认 10行 计数摘要 最后collapseKeepTail默认 5行引用保留——Playwright/computer-use 所需的[refeXX]锚点永不触碰硬截断——折叠后仍超过maxTextChars默认 50,000时截断并附导航提示让 agent 能继续工作。引擎位置open-sse/services/compression/engines/mcpAccessibility/ index.ts ← smartFilterText() 入口 collapseRepeated.ts ← 兄弟折叠算法 constants.ts ← DEFAULT_MCP_ACCESSIBILITY_CONFIG配置由全局设置中的compression.mcpAccessibility控制迁移 056。默认配置与常量定义一致见 engines/mcpAccessibility/constants.ts{ enabled: true, maxTextChars: 50000, collapseThreshold: 30, collapseKeepHead: 10, collapseKeepTail: 5, minLengthToProcess: 2000 }过滤器只作用于type为text、且长度超过minLengthToProcess的工具结果载荷不影响 prompt 压缩或请求载荷。clampMcpAccessibilityConfig()会把持久化配置收敛到安全值域如maxTextChars低于MCP_ACCESSIBILITY_MIN_MAX_TEXT_CHARS会回退默认保证 DB 规范化器与 MCP server 实时读路径口径一致。预期节省与复杂度浏览器快照工具结果通常可节省 60–80%取决于页面复杂度折叠算法对行数 O(n)延迟可忽略。与上述压缩引擎的区别维度Caveman / RTK / StackedMCP accessibility 过滤器目标请求 prompt / 上下文MCP 工具结果触发压缩模式设置compression.mcpAccessibility.enabled范围所有 SSE 消息仅工具结果ref 锚点不适用无条件保留压缩组合Compression Combos压缩组合是具名压缩画像可被指派给路由组合routing comboscompression_combos存储模式、管线、RTK 配置、语言配置与默认标记compression_combo_assignments把压缩组合映射到路由组合运行期集成在泛化组合覆盖之前解析已指派的压缩组合分析数据包含compression_combo_id与engine。从 strategySelector.ts 源码可看到其优先级定位路由组合覆盖route-scoped 最具体 显式活动命名档案manual operator choice胜过自动触发 自动触发 派生默认checkComboOverride()与buildNamedComboLookup()分别处理路由级与命名级覆盖。面板入口Dashboard → Context Cache → Compression Combos。API Surface路由用途/api/settings/compression全局压缩设置含mcpAccessibility配置/api/compression/preview预览任意压缩模式/api/compression/language-packs列出可用 Caveman 语言包/api/context/caveman/configCaveman 设置别名/api/context/rtk/configRTK 默认值与设置/api/context/rtk/filtersRTK 过滤器目录/api/context/rtk/testRTK 预览/测试端点/api/context/rtk/raw-output/[id]鉴权的脱敏原始输出恢复/api/context/combos压缩组合 CRUD/api/context/combos/[id]/assignments路由组合指派 CRUD/api/context/analytics压缩分析别名管理类路由需要管理鉴权或 API-key 策略检查。MCP 工具压缩能力对外暴露五个 MCP 工具工具作用域用途omniroute_compression_statusread:compression设置、分析、缓存统计omniroute_compression_configurewrite:compression更新全局设置omniroute_set_compression_enginewrite:compression设置模式及可选管线omniroute_list_compression_combosread:compression列出压缩组合omniroute_compression_combo_statsread:compression读取组合/引擎分析范围与排除Scope ExclusionsEmbedding 永不压缩open-sse/handlers/embeddings.ts从不调用任何压缩引擎——请求/响应体原样直通 executor。这当前是结构性的embeddings 与 chat completions 是互不相交的 handler而非运行期检查但它意味着 #8034 中关于向量失真的担忧在 embeddings 路径上没有暴露面。按模型/端点排除过滤器#8034对 chat completions运维者可点名绝不能被压缩的模型 id /provider/model目标——这是压缩未来若被接得更靠近 embedding 邻近路径时的护栏也普遍适用于任何要求 prompt 逐字节精确的模型确定性 evals、缓存敏感前缀等。设置字段全局压缩配置上的exclusions?: string[]GET/PUT /api/settings/compression通过既有key_value压缩命名空间持久化见 src/lib/db/compression.ts不建新表面板Dashboard → Compression → Exclusions/dashboard/compression/exclusions模式语法*是唯一通配符其余所有正则元字符在匹配前都被转义——所以gpt-5.6只匹配字面量绝不会命中gpt-5x6ReDoS 安全、有界、无嵌套量词。模式对裸模型 id 与provider/model复合串做大小写不敏感匹配——gpt-5-6、openai/gpt-5-6、openai/*都有效单独一个*则排除全部模型匹配逻辑isCompressionExcluded()/normalizeCompressionExclusions()位于 open-sse/services/compression/exclusions.ts。normalizeCompressionExclusions会把原始设置值归一化为小写、去重、有界上限 200 条的模式列表杜绝病态配置拖慢每次请求chatCore.ts在解析压缩设置后、任何引擎运行前检查命中目标命中时与全局关闭压缩完全等价——请求体可证明逐字节一致。跳过会通过writeCompressionSkip(..., excluded)记入分析可见默认行为空/缺省列表与 #8034 之前完全相同——什么都不排除。已知限制LLMLingua-2SLM要求共置可选依赖。worker 只有在生产构建中atjsh/llmlingua-2 peers 被共置进dist/node_modules时才运行见 scripts/build/colocateOptionals.mjs#4286缺失时引擎 fail-open原样返回。worker 解析不再依赖import.meta.url在 standalone bundle 里会失效而是锚定运行期 cwd /argv[1]Caveman 语言包de/fr/ja标注为部分覆盖。维护说明指出它们只发布contextfillerstructural规则不带dedup/ultra包因此这些语言下ultra强度并不强于full它们只用自身规则——不会静默回退英文dedup/ultra规则去破坏外语文本en/es/id/pt-BR完整。需要注意当前仓库rules/目录中de/fr/ja等语言已可见dedup.json/ultra.json文件说明语言包内容仍在持续演进实际以你所安装版本提供的包为准文档亦欢迎为部分包贡献dedup.jsonultra.jsonStacked 遥测只列出真正压缩过的引擎。stacked 管线中某步引擎执行了但节省为 0% 时返回stats:null从而不会出现在engineBreakdown里——与被跳过不可区分。若要区分跑了但 0%与跳过需要改动 breakdown 模型此项已推迟。验证Validation本区域的聚焦质量门可直接运行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总结如何为你的会话选择压缩路径把上面各引擎放到一个决策面上Prompt 以散文为主、追求无损语义保留→standardCaveman起步长会话升aggressive逼近上下文上限再用ultraPrompt 以终端/工具输出为主git diff、构建日志、测试输出、docker logs→rtk需要时可下放项目级.rtk/filters.json并打开trustProjectFilters两者混合的 Coding Agent 会话→stacked默认rtk - caveman追求最大节省可追加 LLMLingua-2 语义剪枝步骤对逐字节保真有硬要求的模型/端点→ 使用压缩排除列表exclusions配provider/model复合匹配绕过全部引擎Playwright/浏览器自动化工具返回可访问性树→ 依赖compression.mcpAccessibility后置过滤器而不是改变请求压缩模式。配置入口统一收敛到 Dashboard → Context Cache 面板与/api/settings/compression引擎级开关通过注册表统一管理验证命令即上文所示的质量门。这套契约化引擎 确定性管线 排除护栏 后置结果过滤器的结构正是 OmniRoute 在保持逐字节保真可证明的前提下实现高压缩收益的关键设计。【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 352 providers (150 free), 1200 models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline Copilot. Quota-aware auto-fallback, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表