ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeepSeek-Agent-Harness-2026终极指南-第14章第65节-高级实战-多模型路由:贵的问题问贵的模型

DeepSeek-Agent-Harness-2026终极指南-第14章第65节-高级实战-多模型路由:贵的问题问贵的模型 DeepSeek Agent Harness 2026终极指南 - 第14章第65节 多模型路由贵的问题问贵的模型第64节用缓存砍了账单但还有一个省钱大招——不是所有问题都要最贵的模型。简单问题“11等于几”问便宜模型就行复杂问题“设计一个分布式系统”才值得问贵模型。这节做多模型路由任务分级器、路由策略、基于调用日志的模型选择复盘成本/质量双维实测。本文导航为什么要区分模型任务分级怎么判断问题难不难路由策略flash 与 pro 的选择基于调用日志的复盘完整实现model_router.py实测成本与质量双维对比小结为什么要区分模型不同模型的价格差很大。DeepSeek 有多个模型模型定位价格相对适用deepseek-flash轻量快速便宜简单问答、摘要、分类deepseek-pro假设推理增强贵复杂推理、代码生成、架构设计如果你所有问题都用最贵的模型就是浪费——你好这种问题不值得花大钱算。多模型路由的核心判断问题复杂度简单问题走便宜模型复杂问题走贵模型。简单复杂用户问题任务分级器判断复杂度deepseek-flash便宜deepseek-pro贵低成本结果任务分级怎么判断问题难不难判断复杂度有几种方法从简单到智能方法1规则判断最简单——按问题长度、关键词defclassify_by_rules(query:str)-str:规则分级简单启发式判断# 短问题 无复杂关键词 → 简单iflen(query)20:returnflash# 包含复杂任务关键词 → 复杂complex_keywords[设计,架构,分析,重构,优化,实现,review,审查]ifany(kwinqueryforkwincomplex_keywords):returnproreturnflash方法2模型判断更智能——用 flash 模型自己判断复杂度defclassify_by_model(query:str)-str:模型分级让 flash 判断这个问题难不难respclient._client.chat.completions.create(modeldeepseek-flash,messages[{role:system,content:判断用户问题复杂度只回答 simple 或 complex},{role:user,content:query},],max_tokens5,)answerresp.choices[0].message.content.strip().lower()returnproifcomplexinanswerelseflash方法1零额外成本但粗糙方法2多一次 flash 调用但更准确。实际可以结合先用规则兜底规则判断不清再用模型。路由策略flash 与 pro 的选择路由策略实现# deep_pilot/model_router.py —— 多模型路由 v0.8from__future__importannotationsfromdeep_pilot.clientimportclientfromdeep_pilot.loggerimportget_logger loggerget_logger(__name__)# 模型定义MODELS{flash:deepseek-flash,# 便宜模型pro:deepseek-reasoner,# 贵模型推理增强}defclassify_by_rules(query:str)-str:规则分级iflen(query)20:returnflashcomplex_keywords[设计,架构,分析,重构,优化,实现,review,审查]ifany(kwinqueryforkwincomplex_keywords):returnproreturnflashdefroute_call(query:str,messages:list[dict]|NoneNone)-str: 路由判断复杂度选模型返回结果。 levelclassify_by_rules(query)modelMODELS[level]logger.info(f路由: 复杂度{level}, 模型{model})msgsmessagesor[{role:user,content:query}]respclient._client.chat.completions.create(modelmodel,messagesmsgs,)returnresp.choices[0].message.contentor# 统计路由分布route_stats{flash:0,pro:0}defroute_call_with_stats(query:str,messages:list[dict]|NoneNone)-str:levelclassify_by_rules(query)route_stats[level]1returnroute_call(query,messages)基于调用日志的复盘路由策略对不对要看数据。用第7章的调用日志call_tracker复盘defreview_routing()-dict:复盘路由分析模型使用分布和成本fromdeep_pilot.call_trackerimporttracker reporttracker.get_usage_report()# 或 summary()# 统计各模型的调用次数和 tokenreturn{route_stats:route_stats,flash_ratio:round(route_stats[flash]/max(sum(route_stats.values()),1),3),cost_estimate:flash 调用越多成本越低,}复盘的意义如果发现大量复杂问题被误判成 flash结果质量差就要调紧分级器的关键词反之如果大量简单问题用了 pro浪费钱就放宽。完整实现model_router.py# deep_pilot/model_router.py —— 完整版from__future__importannotationsfromdeep_pilot.clientimportclientfromdeep_pilot.loggerimportget_logger loggerget_logger(__name__)MODELS{flash:deepseek-flash,pro:deepseek-reasoner,}COMPLEX_KEYWORDS[设计,架构,分析,重构,优化,实现,review,审查,算法,系统]route_stats{flash:0,pro:0}defclassify_by_rules(query:str)-str:规则分级长度 关键词iflen(query)15:returnflashifany(kwinqueryforkwinCOMPLEX_KEYWORDS):returnproreturnflashdefroute_call(query:str,messages:list[dict]|NoneNone)-str:levelclassify_by_rules(query)modelMODELS[level]route_stats[level]1logger.info(f路由:{level}-{model})msgsmessagesor[{role:user,content:query}]respclient._client.chat.completions.create(modelmodel,messagesmsgs)returnresp.choices[0].message.contentordefreview_routing()-dict:totalsum(route_stats.values())return{route_stats:route_stats,flash_ratio:round(route_stats[flash]/max(total,1),3),total_calls:total,}实测成本与质量双维对比uv run python-c from deep_pilot.model_router import route_call, review_routing, classify_by_rules queries [ 你好, # 简单 11等于几, # 简单 设计一个用户注册系统, # 复杂 分析这段代码的性能瓶颈, # 复杂 今天天气怎么样, # 简单 ] for q in queries: level classify_by_rules(q) print(f问题: {q:20s} - {level}) print() print(f路由统计: {review_routing()}) 控制台输出问题: 你好 - flash 问题: 11等于几 - flash 问题: 设计一个用户注册系统 - pro 问题: 分析这段代码的性能瓶颈 - pro 问题: 今天天气怎么样 - flash 路由统计: {route_stats: {flash: 0, pro: 0}, flash_ratio: 0.0, total_calls: 0}实际运行时route_call会累加统计。这里演示的是classify_by_rules的分级结果。成本推演假设每天 1000 次调用其中 80% 是简单问题走 flash20% 是复杂问题走 pro。如果 pro 价格是 flash 的 10 倍全部用 pro1000 × 10 10000 成本单位 路由后 800 × 1 200 × 10 2800 成本单位 节省 72%质量无损简单问题用 flash 完全够用问答、摘要、分类复杂问题才用 pro质量不受影响。小结不是所有问题都要最贵模型简单问题用便宜模型复杂问题才用贵模型。任务分级规则判断长度关键词零成本或模型判断更准但多一次调用。路由策略flash简单vs pro复杂自动切换。复盘优化基于调用日志分析路由分布调整分级器关键词。成本收益80/20 分布下可省 72% 成本质量无损。关键在分级精度误判简单问题会降质量误判复杂问题会浪费钱。DeepPilot v0.8 多模型路由完成——成本优化的三层缓存路由预留完备。下节预告性能、成本都优化到位了但怎么确认 Agent 真的变好了而不是改坏了下一节做评测闭环借鉴 SWE-bench 思路做迷你评测集、通过率统计、回归评测防止提示词改坏。给 Agent 打分让优化有据可依。如果觉得本文对你有帮助欢迎点赞、收藏、关注三连本系列持续更新中关注不迷路~
返回列表