ARTICLE DETAIL

资讯详情

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

Switchyard Composite复合路由:把LLM分类器与阶段路由器组合起来的玩法

Switchyard Composite复合路由:把LLM分类器与阶段路由器组合起来的玩法 Switchyard Composite复合路由把LLM分类器与阶段路由器组合起来的玩法【免费下载链接】SwitchyardSwitchyard lets LLM applications route traffic across models and providers while preserving native OpenAI and Anthropic API compatibility - enabling flexible model selection, benchmarking, and cost/performance optimization.项目地址: https://gitcode.com/GitHub_Trending/switch/SwitchyardSwitchyard 是一个 LLM 应用流量路由网关让应用在不改动代码的前提下把请求灵活分发到不同模型与供应商同时完整保留 OpenAI 和 Anthropic 原生 API 兼容性便于做模型对比评测与成本/性能优化。本文介绍它最有意思的玩法之一——Composite 复合路由把「LLM 分类器」和「阶段路由器」组合成一条路由让每个算法都跑在自己证据最强的地方。什么是 Composite 复合路由一句话概括一个算法给另一个算法设置好默认档位然后交接给后者。Composite 路由内部由两部分协作完成实现见 composite.rs组件职责何时工作LLM 分类器judge阅读用户这轮的内容判断该用强模型还是弱模型选定一个默认档位用户发言时每轮一次而不是每次请求阶段路由器stage router在这一个用户轮次内根据工具执行信号决定每一步落在哪个档位工具调用循环中的每次请求关键点在于分类器不再直接选目标模型而是把档位交给阶段路由器作为兜底默认值。这样既拿到了 LLM 对任务难度的语义判断又保留了阶段路由器在工具循环中便宜、零额外 LLM 调用的信号路由能力。 官方文档中对这种组合形态的描述是顺序式、条件式、轮次边界式等多种形状都可以放进同一种 route 类型composite_routing.md。两者分工各自擅长什么理解组合的价值先看两个单兵算法各擅长什么LLM 分类器路由type llm_classifier详见 llm_classifier_routing.md靠请求内容做判断judge 模型估计弱模型完成该任务的概率p_solve据此路由到强/弱档位擅长这一轮任务难不难的语义级判断代价判断本身要花一次 LLM 调用阶段路由器type stage_router详见 stage_router_routing.md靠工具结果历史做判断错误严重度、原地打转、只读不写等信号推向强模型持续产出写文件、改代码推向弱模型零额外 LLM 调用适合工具循环密集的 agent 场景短板一个全新会话没有任何工具历史时它无据可依只能落在 picker 默认档位Composite 正是补上这个短板用户轮开始时由分类器先定档位工具循环内再交给阶段路由器的信号微调。Composite 复合路由快速上手3 步写好配置在部署文件中新增一条路由type composite下面挂classifier和stage两个子块即可完整字段参考 toml_schema.md[routes.switchyard] id switchyard type composite [routes.switchyard.classifier] target judge # 调用分类器用的模型不是路由目的地 base_threshold 0.5 # 判弱档位的 p_solve 门槛 classify_trigger user_turn # 何时重新跑分类器 [routes.switchyard.stage] capable_target strong # 强档位模型 efficient_target weak # 弱档位模型 confidence_threshold 0.5 # 阶段信号触发切档的置信度门槛三个最容易踩坑的点classify_trigger决定分类器跑多勤user_turn用户每说一句话就重新判定一次档位适合交互场景档位可随任务变化new_session整个会话只判一次并记住成本最低every_request在 composite 中不被接受composite.rs不要给stage块再配picker或classifier选默认档位的活已经由外部分类器干了再挂一个内部分类器它会插在信号和分类器判定的档位之间反而把前者覆盖掉。会话身份要传对档位按会话记忆请让客户端带上x-switchyard-session-id请求头如果客户端发不了会话 ID可设置classifier.message_hash_fallback true改用第一条用户消息做键注意这样开头相同的会话会共享同一档位。什么时候用复合路由最合适官方给出的典型场景是自动模式auto-mode的交互式编码 agent用户每发起一轮指令分类器读一遍内容定下本轮的强/弱档位随后 agent 进入工具执行循环读代码、跑测试、改文件阶段路由器在自己的信号上运转直到下一个用户轮次。这个分工带来的直接收益judge 调用次数从每次 LLM 请求降到每个用户轮次一次工具循环里的大量中间请求完全靠零成本的信号路由兼顾了成本与质量。其他组合建议只做固定流量比例的 A/B 测试 → 用 random 路由 就够了想让所有请求起步走弱模型、出问题再升级 → 看 escalation 路由单一模型部署 →passthrough路由即可所有策略的选型对照表见 Routing Overview核心概念client / target / route 三层结构见 Core Concepts。相关模块与延伸阅读复合路由文档docs/routing_algorithms/composite_routing.md复合路由核心实现crates/libsy/src/algorithms/composite.rs阶段路由器算法实现crates/libsy/src/algorithms/stage.rsLLM 分类器算法实现crates/libsy/src/algorithms/llm_class.rs路由配置解析与校验crates/switchyard-runner/src/config.rs服务器配置说明crates/switchyard-server/CONFIGURATION.md完整 TOML 字段参考docs/reference/toml_schema.md上手部署可参考 Getting Started导出供应商密钥、--dry-run校验配置然后启动switchyard-server客户端请求里把路由的id如switchyard当作 model 名使用即可。【免费下载链接】SwitchyardSwitchyard lets LLM applications route traffic across models and providers while preserving native OpenAI and Anthropic API compatibility - enabling flexible model selection, benchmarking, and cost/performance optimization.项目地址: https://gitcode.com/GitHub_Trending/switch/Switchyard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表