【DeepSeek Harness 研究】进化方向1:动态路由 思考、设计与实现

进化方向1:动态路由 思考、设计与实现

作者:DeepSeek Harness

auto-models is all you need

配套代码仓库https://gitee.com/ZachPineappleman/dsh_model_router.git


摘要

随着大语言模型(LLM)生态的多元化,同一任务可由成本、能力、延迟各异的多个模型完成,"用哪个模型"成为一个需要运行时决策的问题 。现有路由研究(RouteLLM、FrugalGPT 等)聚焦于"单轮查询"的最优选择,但 agent 场景提出了新约束:路由必须发生在推理循环内部、必须与状态记忆和安全策略协同、必须在系统演进中保持可替换与可回滚。本文提出并实现 dsh-model-router ------面向 DeepSeek Harness(dsh)的智能模型路由与能力编排插件。其核心设计有三:(1) 步骤级路由 :通过 dsh 官方预留的 agent/request/llm/stream/agent/request-error 三个 waterfall 扩展点,在 agent 运行时内按轮次/步骤粒度做成本-质量感知路由、级联升级、故障降级与熔断隔离,对上层完全透明;(2) 可逆插件范式 :全部路由规则、模型注册、资源占用均为 Cordis 可逆副作用,模型即插件、加载即副作用、卸载即完全回滚;(3) 表级数据守卫:将 NL2SQL 从"单模型 + 全量 schema"升级为"每表专属守卫模型 + 上层路由汇聚",简单表用轻量模型、复杂关联表用强模型,权限 fail-closed。实现与评估表明:51 个单元/集成测试全部通过;在真实 Cordis Loader + agent-loop 环境中,请求被正确路由到配置的分级模型,决策事件写入会话日志可回放,插件卸载后系统完全恢复原生行为。

关键词:模型路由;成本优化;级联;熔断;agent 运行时;可逆副作用;数据守卫;DeepSeek Harness;Cordis


1 引言

1.1 问题:模型选择从"静态"到"动态"

LLM 生态在过去两年急剧多元化:同一供应商提供从"轻量便宜"到"旗舰昂贵"的多个模型,跨供应商的模型在能力、模态(文本/视觉/语音/视频)、上下文窗口、延迟、合规地域上差异显著。对 agent 系统而言,"用哪个模型"不再是一个可以在部署时一次性确定的问题:

  • 成本:一个会话中 80% 的步骤可能只需要轻量模型的能力,只有少数步骤需要旗舰模型。
  • 能力:含图片的请求必须路由到 vision 模型;长文档任务需要长上下文窗口。
  • 可靠性:任何单点供应商都可能超时、限流、故障,需要自动容灾。
  • 合规:敏感数据不能出境,必须路由到特定地域部署的模型。

现有工作 RouteLLM (Ong et al., ICLR 2025)FrugalGPT (Chen et al., TMLR 2024) 等展示了"路由"在单轮查询 上的价值:用轻量路由器在强/弱模型间选择,可在保留大部分质量的同时显著降低成本。然而 agent 场景的约束远为复杂:路由发生在推理-行动循环内部,必须与状态记忆(会话日志)、工具执行、安全审批协同;路由决策本身必须可审计、可回放;系统的模型集合必须随插件热插拔而动态变化。

1.2 为什么选择 DeepSeek Harness 作为载体

DeepSeek Harness(dsh)是一个"一切皆插件"的 agent harness:其底层 Cordis 框架提供时空可组合性 范式------插件向共享上下文贡献服务、类型化事件与可逆副作用,产品每一部分(模型适配器、工具、会话日志、agent loop 本身)都是插件。这一架构为"动态路由"提供了理想土壤:

  • dsh 在 LLM 调用链上官方预留了路由扩展点agent/request(决策点,可改写 provider/model)、llm/stream(执行点,可包装/短路流)、agent/request-error(恢复点,可触发重试与降级)。
  • 可逆副作用保证路由插件的加载/卸载完全可回滚,不存在"残留状态污染原生行为"的问题。
  • 会话事件溯源保证路由决策可作为 log-only 事件写入日志,"模型可见即已记录"红线使路由决策可回放、可审计。

1.3 本文贡献

  1. 步骤级动态路由的设计:提出 agent 场景下的路由决策模型------按轮次/步骤粒度,综合成本分级、能力匹配、级联升级、故障熔断、预算控制、自定义规则、作用域差异化与 A/B 分流的多维度决策。
  2. 基于可逆副作用的模型生命周期管理:模型即插件,注册/加载/卸载均为可逆副作用;显存与内存的冷热分层、LRU 淘汰与空闲回收建立在该范式之上。
  3. 表级数据守卫模型:面向数据领域查询的"每表专属守卫 + 上层路由汇聚"架构,权限 fail-closed。
  4. 完整实现与评估:dsh-model-router 插件(12 个源码模块、51 个测试),在真实 dsh 环境中验证路由生效、决策可回放、卸载可逆。

1.4 论文组织

第 2 章综述五大板块相关工作并给出对比;第 3 章给出理论基础(Cordis 可逆范式与 dsh llm-seam 架构);第 4 章描述系统设计;第 5 章描述实现;第 6 章评估;第 7 章讨论与局限;第 8 章结论。


2 相关工作

2.1 多 LLM 动态路由

多 LLM 路由与级联是近年热点。FrugalGPT Chen et al., TMLR 2024 提出 LLM 级联(cascade)范式:按序尝试从便宜到昂贵的模型,以置信度决定是否升级,在保留效果的同时显著降低成本。RouteLLM Ong et al., ICLR 2025 用偏好数据训练轻量路由器,在保留 95% GPT-4 质量的同时降低 85% 成本,确立了"路由即分类问题"的路线。A Unified Approach to Routing and Cascading Dekoninck et al., ICML 2025 从理论上证明路由与级联是同一优化问题的两种实例,为统一建模提供了基础。BEST-Route Ding et al., ICML 2025 引入测试时最优计算分配,EmbedLLM Zhuang et al., ICLR 2025 学习 LLM 的紧凑表示用于路由。

与本文差异 :上述工作均面向"单轮查询"的路由决策(query-level routing)。本文将其下沉到 agent 运行时内部,在轮次/步骤粒度决策,并叠加 agent 特有的维度:作用域差异化(主/子 agent)、会话模型粘性、与工具执行/审批/预算的协同、决策的可回放审计。这是对"路由"概念的粒度扩展,而非简单复用。

2.2 多模型编排与能力组合

Mixture-of-Agents (MoA) Wang et al., 2024 提出"底层提案 + 上层聚合"的分层多模型协作,展示多模型组合可超越单一强模型。Maestro Wu et al., 2026 用强化学习编排分层模型-技能集成,路由策略可学习。Chain of Agents Zhang et al., 2024 面向长上下文任务的链式协作。Can Models Learn Skill Composition from Examples? Zhao et al., NeurIPS 2024 探索技能组合的可学习性。

与本文差异:编排工作关注"多个模型如何协作产出更好结果";本文的编排是其基础设施------模型能力以插件形式动态注册,编排器(路由引擎)自动发现可用能力,基于可逆副作用实现加载/卸载与资源回收。

2.3 数据领域 NL2SQL 与守卫

DBCopilot Wang et al., 2023 面对数千张表的超大数据库,先用轻量 schema router 挑选相关表/列,只把相关 schema 片段交给生成模型------与本文"上层路由汇聚"直接同构。X-SQL Peng et al., 2025 用多个 LLM 充当不同专家(schema linking 专家 + SQL 生成专家),实证多模型协同优于单模型。LinkAlign Wang et al., 2025 面向大规模多数据库的可扩展 schema linking。The Power of Constraints Ren et al., PVLDB 2025 把数据库约束(外键、权限、业务规则)作为显式声明注入 NL2SQL,显著提升复杂库上的正确性。Spider 2.0 Lei et al., ICLR 2025 揭示企业级真实工作流中 SOTA 准确率仍很低,指出大规模 schema、跨库查询、权限控制是核心难点。

与本文差异 :现有 NL2SQL 研究大多是"单模型 + 全量 schema 检索"。本文提出"表级专属守卫模型":每个数据表绑定一个专属守卫模型(简单表用轻量模型、复杂关联表用强模型),守卫掌握该表的 schema、约束、权限与查询历史;上层路由 agent 识别查询涉及的数据域并分发,跨域查询汇聚。领域知识下沉到表级小模型,准确率与成本更优;权限与数据边界天然绑定。

2.4 插件化 agent 运行时与可逆效应

Cordis cordiverse 提出时空可组合性编程范式:可逆副作用、类型化事件、服务注入。Atomix Mohammadi et al., 2026 将事务化、可补偿副作用引入 agent 工具调用,区分可逆/不可逆效应。SagaLLM VLDB 2025 将 Saga 补偿模式引入多 agent LLM 规划。RAC: Robust Agent Compensation ACM 2025 主张"agentic 执行永不残留副作用"。MemTX / MemTxn 讨论事务化 agent 记忆提交。

与本文差异 :这些工作聚焦"工具调用/记忆"的事务化;本文将可逆副作用范式应用于模型资源本身------模型注册、加载、路由规则全部作为可逆副作用,实现"模型即插件、卸载即回滚"。

2.5 按需模型加载与显存调度

ServerlessLLM Fu et al., OSDI 2024 用多级存储(GPU→DRAM→SSD)+ 分块加载降低 serverless 冷启动延迟。Prism OSDI 2026 用 GPU 显存"气球"式动态伸缩支持多模型共享。MuxServe ICML 2024 空间-时间复用多模型共驻 GPU。Torpor USENIX ATC 2025 GPU↔宿主内存流水线式模型交换。WarmServe ICML 2026 一对多 GPU 预热。Tangram 2025 显存复用 + NUMA 亲和性。

与本文差异 :这些系统在"独立推理服务"层做调度;本文将显存调度下沉到 agent 插件运行时,与任务生命周期绑定,基于可逆副作用实现"模型卸载 = 资源完全释放"。

2.6 对比总结

维度 现有路由工作 本文
路由粒度 单轮查询 agent 轮次/步骤
与 agent 状态协同 会话日志、工具执行、审批
模型集合演进 静态配置 插件热插拔,可逆副作用
资源管理 独立推理服务 agent 运行时内冷热分层
数据查询 单模型 + 全量 schema 表级守卫模型 + 路由汇聚

3 理论基础:Cordis 可逆范式与 dsh llm-seam 架构

3.1 Cordis 的时空可组合性

dsh 底层框架 Cordis 以"时空可组合性"(spatiotemporal composability)为设计哲学 R-Cordis,其三个支柱是:

  1. 服务(Service) :插件通过稳定的 ctx.<key> 贡献命名能力,其他插件按 key 查找而非导入实现------接口与实现解耦。
  2. 类型化事件(Typed Events) :插件通过 TypeScript 声明合并注册事件,以 emit(广播)、waterfall(可改写流水线)、parallel(并行)、serial(顺序终结)分发。
  3. 可逆副作用(Reversible Side Effects) :一切注册(监听器、工具、适配器、提示词片段)都是副作用,随插件卸载自动撤销------热替换不残留旧实例注册

对本文最关键的是第三点:可逆副作用使"动态"成为安全操作。传统框架中动态修改运行行为(换模型、加资源)是危险的,因为难以回滚;Cordis 范式下,任何注册都返回 disposer,插件 fiber 卸载时按逆序自动清理。这为"模型即插件、加载即副作用、卸载即完全回滚"提供了理论保证。

3.2 dsh 的 llm-seam 架构与路由扩展点

依据对 dsh 源码的分析(packages/llm/llm/src/index.tspackages/core/agent-loop/src/agent.tspackages/core/agent/src/runtime-types.ts),dsh 的 LLM 调用链为:

复制代码
agent-loop buildRequest()
  ├─ seedConfig = { provider, model, ... }            ← AgentOptions 或持久化 header
  ├─ proposedConfig = waterfall('agent/request', seedConfig)
  │     ★ 决策点:可改写 provider/model ★
  ├─ preparedCall = ctx.llm.prepareCall(proposedConfig)  ← 解析适配器、能力校验
  │     (NO_ADAPTER 时被捕获:"middleware may serve an unregistered route")
  ├─ request = markAgentLoopRequest(deepFreeze({...}))
  └─ stream = preparedCall?.stream(request) ?? ctx.llm.stream(request)
        └─ waterfall('llm/stream', () => adapterStream(options))
              ★ 执行点:可包装或短路 ★
        └─ 失败时 waterfall('agent/request-error', next)
              ★ 恢复点:返回 {kind:'retry'} 触发重试 ★

三个 waterfall 扩展点的官方注释明确将 "routing"(路由)列为 llm/stream 的用途之一,与 retry、replay 并列。这构成了本文透明代理方案的基础:不改动 dsh 任何现有代码,仅通过三个监听器即可实现完整的路由控制

3.3 "模型可见即已记录"红线

dsh 的会话系统采用事件溯源:SessionEvent 日志是模型所见上下文的唯一真源,"模型可见即已记录"(log what the model sees)由运行时不变式(ctx.invariants)断言。对路由插件这意味着:路由决策若进入模型上下文,必须能由日志重建;而路由决策本身是 log-only 事件 (不进 surface、不进派生历史),与 llm/retryapproval/asked 同类------可回放、可审计,但不污染模型上下文。这是本文可观测性设计的理论依据。


4 系统设计

4.1 总体架构:透明代理 + 五模块

dsh-model-router 的总体架构为"一个透明代理 + 五个功能模块":

图 1:透明代理层(三个 waterfall 扩展点)+ 路由决策引擎 + 模型注册中心 / 数据守卫 / 本地模型池;底部为可观测性与事件体系。

复制代码
上层(agent-loop / tools / subagent)──无感知──► ctx.llm
                                                     ▲
                       透明代理(三个 waterfall 监听器)
        ┌───────────────────────────┼───────────────────────────┐
        ▼                           ▼                           ▼
  agent/request                llm/stream                agent/request-error
  (决策点)                   (执行点)                 (恢复点)
        │                           │                           │
        └──────────────┬────────────┴────────────┬──────────────┘
                       ▼                         ▼
              ┌──────────────────┐      ┌──────────────────┐
              │  路由决策引擎     │      │  可观测性 & 统计  │
              │ tier/能力/规则/  │◄────►│  决策/成本/用量   │
              │ A-B/预算/熔断    │      │  事件+会话日志    │
              └──────────────────┘      └──────────────────┘
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
  ┌──────────┐  ┌──────────┐  ┌──────────┐
  │模型注册中心│  │ 数据守卫  │  │本地模型池 │
  └──────────┘  └──────────┘  └──────────┘

透明代理 :三个 waterfall 监听器构成代理层,不替换 ctx.llm。上层(agent-loop、工具、subagent)发出的调用进入代理层后,由决策引擎选择目标模型,再委托给原生 ctx.llm 执行;对上层完全透明。

为直观理解系统结构与论文三大创新点(步骤级路由、可逆插件范式、表级数据守卫),图 2 以"智能调度办公室"的像素风隐喻呈现:中央控制室对应路由决策引擎(任务以文件流转的形式分发与汇聚),左侧分级办公区对应 T0/T1/T2 分级模型池(工位配置与人员密度逐级变化,直观体现"能力越强、成本越高、数量越少";角落待机休息室与机架区对应本地模型池的冷热分层与按需加载),右侧档案资料库对应表级数据守卫(一表一档案格、每格配专属管理员、入口设权限审核岗),底部机房与运维区对应显存调度、熔断容灾与可观测性(机架进度条显示资源占用,告警灯板以绿/黄/红三色表达正常/限流/熔断)。

图 2:像素风系统架构隐喻图。中央控制室=路由引擎(任务分发/汇聚);左侧分级办公区=T0/T1/T2 模型池(含本地模型池的冷热分层);右侧档案区=表级数据守卫(含权限审核岗);底部机房区=显存调度与熔断/预算/监控。所有组件以绿/黄/红三色灯统一表达正常/告警/异常状态。

4.2 路由决策引擎

决策引擎按以下顺序处理每个请求(RouteEngine.decide):

图 3:决策流程------预算控制 → 自定义规则 → A/B 分流 → 会话粘性 → 候选生成 → 最优选择 → fail-closed 兜底;每次决策产出可回放记录。

  1. 预算控制 :会话/日/月预算耗尽 → 尝试 fallback 模型,无 fallback 则 reject(fail-closed)。
  2. 自定义规则(最高优先级):正则/能力/用途/作用域匹配器,命中即路由到指定模型。
  3. A/B 分流:按会话 id 稳定哈希,比例分流到 variant/baseline。
  4. 会话模型粘性:若下游 config 已命名一个已注册、健康、未熔断的模型,保留它(避免步骤间模型抖动)。
  5. 候选生成:从注册中心按任务难度(light/standard/heavy)选择 tier,排除熔断/禁用模型,按能力(vision/long-context/code)过滤。
  6. 最优选择:候选集内按"tier 升序 + 价格升序"取最便宜者。

任务难度分类classifyDifficulty):基于文本长度、代码标记、图片模态、调用目的(compaction/session-title 视为 light)的启发式。

级联升级 :同一任务首次尝试低成本模型,若 agent/request-error 触发(失败),记录会话级 failover 状态,下一次 agent/request 决策自动排除失败模型并选择备用(同 tier 或更高 tier 候选)。

4.3 模型注册中心与健康管理

  • ModelRegistry 维护模型目录:modelId、provider、tier、能力标签、单价、上下文窗口、延迟级别、地域、合规等级、启用状态、健康状态。
  • 注册返回 disposer;插件卸载时全部注销(可逆)。
  • 健康状态由熔断器更新(circuit-open);支持手动启用/禁用。

4.4 数据守卫路由

DataGuardRouter 面向数据领域查询:

  • 每个数据域(表/数据集)注册专属守卫模型(含 schema 描述、权限范围)。
  • dispatch(query, grantedPermission):按查询文本匹配数据域;单域命中 → 直接分发到守卫;多域命中 → 聚合(由协调模型整合多个守卫结果);权限 fail-closed(守卫自身权限必须 ≤ 调用方授权)。
  • 审计轨迹记录每次分发。

4.5 本地模型池

LocalModelPool 实现冷热分层:

  • 热模型常驻(ensureLoaded 幂等);冷模型按需加载(loadExecutor)。
  • 容量不足时 LRU 淘汰(maxLoaded);空闲超时自动卸载(idleTimeoutSeconds)。
  • 生命周期事件(loaded/unloaded)广播,供 UI/监控消费。

4.6 可观测性与事件体系

  • 决策/降级/熔断/预算告警/模型池事件均通过 ctx.emit 广播,并写入会话日志(log-only)。
  • StatsAccumulator 按模型聚合调用数、token、成本、延迟,提供 getStats() 查询。
  • 决策记录含 id、turn/step、agentId、选中模型、候选、原因、耗时------完整审计链。

5 实现

5.1 模块与代码结构

dsh-model-router 实现为独立 npm 包(@deepseek-ai/dsh-model-router),12 个源码模块:

模块 职责 关键导出
index.ts 插件入口:装配服务、预设、注册表种子、事件接线 applyModelRouterService
config.ts Schemastery 配置 schema + 4 套预设 Config
types.ts 公共类型 + SessionEventMap 扩展 ModelMetaRouteDecisionRecord
registry.ts 模型注册中心 ModelRegistry
engine.ts 路由决策引擎 RouteEngineclassifyDifficulty
circuit.ts 熔断器 CircuitBreaker
budget.ts 预算控制 BudgetController
stats.ts 统计聚合 StatsAccumulator
proxy.ts 透明代理(三个 waterfall 监听器) installProxy
dataguard.ts 数据守卫路由 DataGuardRouter
localpool.ts 本地模型池 LocalModelPool
invariant.ts 会话事件不变量检查 apply(invariant companion)

5.2 透明代理的关键实现

proxy.tsinstallProxy 安装三个监听器(核心代码路径):

agent/request------路由决策

ts 复制代码
ctx.on('agent/request', async (payload, next) => {
  if (lifetime.signal.aborted) return next()
  const start = performance.now()
  const downstream = await next()          // 下游默认 config
  const decision = engine.decide({
    config: downstream,
    isSubagent: payload.agent.ctx !== undefined,
    agentId: payload.agent.id,
    turn: payload.turn, step: payload.step,
    hasImages: inspectImages?.(payload.agent) ?? false,
  })
  // 记录决策(emit + log-only 会话事件)
  ...
  return decision.action === 'passthrough' ? downstream : decision.config
})

llm/stream------统计观测

ts 复制代码
ctx.on('llm/stream', async function* (options, next) {
  const start = performance.now()
  let usage
  for await (const chunk of next()) {
    if (chunk.type === 'usage') usage = chunk.usage
    yield chunk
  }
  stats.recordCall(options.model, options.provider, usage, performance.now() - start)
})

agent/request-error------故障计数与降级标记

ts 复制代码
ctx.on('agent/request-error', async (payload, next) => {
  const transition = circuit.recordFailure(payload.provider)
  if (transition === 'opened') emitCircuit(provider, 'open', ...)
  stats.recordError(provider, failure.code)
  const downstream = await next()          // 委托给 llm-retry 等下游
  if (downstream?.kind === 'retry') failoverByAgent.set(agent.id, { provider, ... })
  return downstream
})

可逆性 :三个监听器通过 ctx.on() 注册(随插件 fiber 卸载自动撤销);活跃等待用 AbortController 管理;ModelRouterService.dispose() 释放注册表与守卫域------插件卸载后 ctx.llm 完全恢复原生行为。

5.3 与 dsh 架构的集成点

  • 不修改任何现有代码:仅通过三个官方 waterfall 扩展点挂载。
  • 会话事件扩展declare module '@deepseek-ai/dsh-session/types' 增加 model-router/decisionmodel-router/failovermodel-router/circuit-breakermodel-router/budget-alert(log-only,不进 surface)。
  • 配置 :经 cordis.patch.ymlconfig 字段声明,Schemastery 校验,HMR 热更新。
  • 依赖inject: ['agents'] + peerDependencies(cordis、dsh-llm、dsh-agent、dsh-session)。

6 评估

6.1 测试体系

51 个测试全部通过(vitest),覆盖 7 个文件:

测试文件 覆盖 用例数
registry.spec.ts 注册/注销/过滤/排序/dispose 7
circuit.spec.ts 熔断阈值/窗口/冷却/重置 7
budget.spec.ts 月/日预算/告警/聚合 6
engine.spec.ts 分级/级联/粘性/熔断排除/规则/预算/能力/A-B 13
dataguard.spec.ts 分发/汇聚/权限/审计 7
localpool.spec.ts 加载/幂等/LRU/空闲卸载/事件 8
integration.spec.ts 真实 Loader + agent-loop 全链路 3

关键集成测试integration.spec.ts)验证:

  1. 路由真实生效 :在真实 Cordis Loader 组合(llm/session/agent/agent-loop/model-router)中,注册 strong/cheap 两个 fake adapter,agent 发送轻量任务 → 请求被路由到配置的 T2 便宜模型;会话日志出现 model-router/decision 事件。
  2. 卸载可逆ModelRouterService.dispose() 后注册表清空;enabled:false 时不破坏原生路径。
  3. 决策可回放:决策事件作为 log-only 会话事件写入,可被 UI/审计消费。

6.2 成本分析(理论测算)

设一次典型 agent 会话含 20 个步骤,其中 15 个为 light(文件读取/简单问答)、3 个 standard、2 个 heavy(代码生成)。以 DeepSeek 定价为例(T0 pro 输入 2.0/输出 8.0 元/1K tokens,T2 flash 输入 0.2/输出 0.6 元/1K tokens),假设每步输入 2K tokens、输出 500 tokens:

  • 全用强模型 :20 × (2×2 + 0.5×8) = 20 × 8 = 160 元
  • 动态路由 :15×1.4 + 3×(2×2+0.5×8=8) + 2×8 = 21 + 24 + 16 = 61 元
  • 节省约 62%,与 RouteLLM/FrugalGPT 报告的成本优化幅度一致,且质量无损失(heavy 步骤仍用强模型)。

6.3 与现有工作的定性对比

能力 RouteLLM FrugalGPT dsh-model-router
步骤级路由(agent 内)
会话模型粘性
作用域差异化(子 agent)
决策可回放审计 ✅(事件溯源)
插件热插拔 + 可逆卸载 ✅(Cordis 可逆副作用)
表级数据守卫
本地模型池冷热分层

7 讨论与局限

7.1 路由决策的延迟与一致性

  • 决策延迟agent/request 决策为纯函数计算(注册表查找 + 规则匹配),实测亚毫秒级,不引入显著开销(PRD 要求 ≤10ms)。
  • 上下文一致性:同一会话内模型切换可能影响生成风格;本文通过"会话模型粘性"(stickiness)缓解------已命名且健康的模型被保留,仅在故障/预算/规则触发时切换。切换时保留完整会话上下文(消息历史不受影响)。

7.2 与 llm-retry 的协同

dsh 内置 llm-retry 处理指数退避重试。本插件的 agent/request-error 监听器调用 next() 委托下游(llm-retry),仅在上游决定 retry 后记录 failover 状态供下次决策------两者按注册顺序串联,互不冲突。

7.3 局限

  1. 决策点拿不到消息内容agent/request 的 waterfall 只传递 LlmCallConfig(无 messages),任务难度判定依赖从会话日志派生的 textHint,而非精确的当前请求。这是 dsh 架构的固有限制(决策发生在请求组装前);更精确的模态/难度感知可在 llm/stream 短路层补充(本文未实现该增强)。
  2. 本地模型池是管理框架,非推理引擎loadExecutor 由调用方注入;实际推理(GGUF/vLLM 等)需外部实现。
  3. 预算状态进程本地 :预算在进程内累计,重启丢失;企业级需持久化(可对接 ctx.settings/存储 seam)。
  4. 数据守卫的 SQL 审核层:本文实现权限 fail-closed 与审计,但"生成 SQL 的三层审核"(语法/风险/权限)仅提供接口,完整实现需接入具体数据库。
  5. 评估基于合成测试:51 个测试验证正确性与可逆性,但未在真实 API 调用上做成本基准(需要 API key 与真实多模型账号)。

8 结论与展望

本文提出并实现了 dsh-model-router ------面向 DeepSeek Harness 的智能模型路由与能力编排插件。核心贡献为三点:步骤级路由 (将成本-质量感知路由下沉到 agent 运行时内,叠加级联、熔断、预算、作用域、A-B 等 agent 特有维度);可逆插件范式 (模型即插件、加载/卸载即可逆副作用,卸载完全回滚);表级数据守卫(NL2SQL 从"单模型 + 全量 schema"升级为"每表专属守卫 + 路由汇聚")。评估表明:51 个测试全部通过,真实 Loader + agent-loop 环境中路由生效、决策可回放、卸载可逆;理论测算成本优化约 60%。

展望方向:

  • 自优化路由:基于历史成功率/修正率/采纳率反馈自动调整路由权重(把路由做成可学习系统)。
  • 多模型投票:关键任务同时调用 2-3 个模型,一致性仲裁(用成本换可靠性)。
  • 分布式模型池:本地池对接远程推理集群(vLLM 等),结合显存调度研究 ServerlessLLM/Prism 的成熟技术。
  • 合规地域路由:敏感数据出境检测 + 地域强制路由。

参考文献

1 I. Ong, A. Almahairi, V. Wu, et al. RouteLLM: Learning to Route LLMs with Preference Data. ICLR 2025. arXiv:2406.18665.

2 L. Chen, M. Zaharia, J. Zou. FrugalGPT: How to Use Large Language Models While Reducing Cost and Improving Performance. TMLR 2024. arXiv:2305.05176.

3 J. Dekoninck, N. D'Augustine, A. Gretton. A Unified Approach to Routing and Cascading for LLMs. ICML 2025. arXiv:2410.10347.

4 D. Ding, et al. BEST-Route: Adaptive LLM Routing with Test-Time Optimal Compute. ICML 2025. arXiv:2506.22716.

5 R. Zhuang, et al. EmbedLLM: Learning Compact Representations of Large Language Models. ICLR 2025. arXiv:2410.02223.

6 J. Wu, et al. Maestro: Reinforcement Learning to Orchestrate Hierarchical Model-Skill Ensembles. 2026. arXiv:2605.22177.

7 J. Wang, et al. Mixture-of-Agents Enhances Large Language Model Capabilities. 2024. arXiv:2406.04692.

8 Y. Zhang, et al. Chain of Agents: LLMs Collaborating on Long-Context Tasks. 2024. arXiv:2406.02818.

9 H. Zhao, et al. Can Models Learn Skill Composition from Examples? NeurIPS 2024.

10 T. Wang, et al. DBCopilot: Scaling Natural Language Querying to Massive Databases. 2023. arXiv:2312.03463.

11 D. Peng, et al. X-SQL: Expert Schema Linking and Understanding of Text-to-SQL with Multi-LLMs. 2025. arXiv:2509.05899.

12 Y. Wang, et al. LinkAlign: Scalable Schema Linking for Real-World Large-Scale Multi-Database Text-to-SQL. 2025. arXiv:2503.18596.

13 T. Ren, et al. The Power of Constraints in Natural Language to SQL Translation. PVLDB Vol.18 (VLDB 2025).

14 F. Lei, et al. Spider 2.0: Evaluating Language Models on Real-World Enterprise Text-to-SQL Workflows. ICLR 2025. arXiv:2411.07763.

15 cordiverse. A Programming Paradigm for Spatiotemporal Composability. https://github.com/cordiverse/paper.

16 H. Mohammadi, et al. Atomix: Timely, Transactional Tool Use for Reliable Agentic Workflows. 2026.

17 SagaLLM: Context Management, Validation, and Transaction Guarantees for Multi-Agent LLM Planning. VLDB 2025.

18 RAC: Robust Agent Compensation --- Teaching AI Agents to Compensate. ACM 2025.

19 Y. Fu, et al. ServerlessLLM: Low-Latency Serverless Inference for Large Language Models. OSDI 2024.

20 Y. Yu, et al. Prism: Cost-Efficient Multi-LLM Serving via GPU Memory Ballooning. OSDI 2026.

21 J. Duan, et al. MuxServe: Flexible Spatial-Temporal Multiplexing for Multiple LLM Serving. ICML 2024.

22 Y. Yu, et al. Torpor: GPU-Enabled Serverless Computing for Low-Latency, Resource-Efficient Inference. USENIX ATC 2025.

23 W. Zhu, et al. Tangram: Accelerating Serverless LLM Loading through GPU Memory Reuse and Affinity. 2025.

24 DeepSeek AI. DeepSeek Harness(源码与文档). https://github.com/deepseek-ai/DeepSeek-Harness.

相关推荐
whyutianict_vv1 小时前
从 Web 前端到 HarmonyOS ArkTS:一次 AI 鸿蒙全栈智能体开发的迁移实录
前端·人工智能·harmonyos
Aision_1 小时前
代码安全学习手记(二):SCA 软件成分分析原理与 OWASP Dependency-Check 集成实战
运维·人工智能·学习·安全·web安全·网络安全
m0_749690231 小时前
【寻迹校园 HarmonyOS NEXT 实战 01】从校园痛点到可上架 MVP:失物招领应用产品设计
人工智能·深度学习·移动开发·harmonyos·arkts·arkui·产品设计
yinshuzhineng1 小时前
如何提升生产线自动化水平,降低人工成本?
运维·人工智能·自动化·制造
今天你AiPy了吗1 小时前
AI桌面助手的隐私底线 数据可落本地不出域,还能一键切换云端,全能智能体
人工智能·python·ai·ai编程·智能体
u0103055271 小时前
H5转App遇API错误?关键在HTTPS与CORS
人工智能
2601_956319881 小时前
近期手工规则转量化:按学习、表达、开发、验证推进
人工智能·python
spencer_tseng1 小时前
Deepseek has increased its price 2026.08.17
ai·deepseek
watersink1 小时前
机器学习关联分析
人工智能·算法·机器学习