ARTICLE DETAIL

资讯详情

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

PandaCode 本地模型路由指南:Panda Router 如何 10 毫秒为每个 Worker 选对模型

PandaCode 本地模型路由指南:Panda Router 如何 10 毫秒为每个 Worker 选对模型

【免费下载链接】pandacode

PandaCode: a calm desktop workspace for coding agents

项目地址:https://gitcode.com/gh_mirrors/pa/pandacode
点击查看免费下载

PandaCode 的 Panda Router 是内置的本地模型路由引擎,用 ONNX 小模型在毫秒级时间内读取任务描述,为 Agent 团队的每个 Worker 自动挑出最合适的 AI 模型。整个决策在本地完成,不经过 Python、不经过服务器,任务内容也不离开你的电脑。

为什么需要自动选模型?

在 PandaCode 的自动团队(automatic team)里,一个 Lead(组长 Agent)会把任务分派给多个 Worker。团队的模型池(catalog)可包含所有已安装 harness 的模型,最多 1000 个。

如果每个 Worker 都用最贵的旗舰模型,成本失控;如果都用最便宜的模型,难题做不好。Panda Router 就是来解决"这个任务该派哪个模型"的决策者,它的官方说法是:单次路由在 CPU 上约 10–25 毫秒(见 docs/model-routing.md)。

路由的 4 步流水线

Panda Router 是 PandaOrchestrator v4 的原生 Rust 移植,ONNX Runtime 直接链接进应用。一次路由分四步:

第 1 步:ONNX 任务画像(Profiler)一个 32M 参数、int8 量化的小模型(Ettin-32M)读取"任务文本 + 上下文",上下文包括仓库前 3 大语言、涉及文件数、是否需要工具。它输出一份TaskProfile:

  • 类别(13 选 1 的概率分布):实现、修 bug、重构、写测试、代码评审、研究、规划、文档、前端 UI、数据分析、DevOps、数学推理、闲聊;
  • 难度:1–10 级分布;
  • 技能需求:coding、debugging、reasoning、math、writing、research、review、planning、ui_frontend、data_analysis 共 10 个轴;
  • 标志位:需要工具、需要视觉、规格含糊等;外加 24 项检查表与预期输出长度。

输入文本超过 6000 字符时只取头尾(见 profile.rs 的format_input),所以超长任务描述也不会拖慢路由。

第 2 步:确定性匹配(Matcher)内置的模型卡片目录(cards.json + pandacode_cards.json,共 60 多张卡片,每张记录 10 轴能力 θ/σ、单价、上下文长度、TTFT、是否支持工具与视觉)与任务画像逐一对账,用 IRT(项目反应理论)模型算出每个模型在 10 个难度等级上的成功概率,见 matcher.rs。

第 3 步:学习式成功头(Success Head)一个基于历史数据训练的 logit 头(success.rs + success_head.json)对每张"训练覆盖"的卡片校准 P(success),并给出置信下界——决策时用的是下界而不是均值,更保守、更稳。

第 4 步:v4 策略决策(Policy)在成本、延迟、成功率下界之上按你选的模式挑模型,同时生成一条最多 3 级的升级阶梯(escalation ladder),见 policy.rs:

模式决策规则适合场景
Cheap(廉价)成功率下界 ≥ 最低门槛(默认 50%,可调 30–90%)中期望成本最低者大批量简单任务
Balanced(均衡,默认)效用最大:成功率 − 0.3 × 归一化期望成本,失败成本计入日常团队工作
Best(最佳)最可能成功、代价相同时选便宜的重要、易失败的任务

模型名字如何对上千张卡片?

Worker 池里的模型名五花八门(ollama/qwen3.8:27b、default · GPT-6 Luna · Codex……)。cards.rs 的resolve_alias按 4 层规则解析:精确 ID → 精确模型串(含 vendor 前缀剥离)→ 忽略大小写/分隔符的宽松匹配 → 数字防护的模糊匹配(阈值 0.75)。

两个关键的防错设计:

  • 版本数字防护:gpt-6-sol绝不会错配成gpt-6.1-sol;
  • 档位词防护:mini、nano、turbo、pro 等 14 个档位词按整词比较,gpt-6-luna-mini不会借用gpt-6-luna的卡片("mini 在 gemini 里"这类子串陷阱也不会误伤)。

解析有 8192 条的进程内缓存;没有卡片的模型视为未评级,永远不会被自动选中——除非你在等级表里给了它 S–D 评级,系统会为它生成一张合成卡片让它可路由。

失败之后:升级阶梯与"永不降级"

这是 Panda Router 最有价值的设计。Worker 失败(或被 Lead 的测试/类型检查判为不通过)后,组长用replaces派发替补并重新路由:

  1. 失败模型被排除;
  2. 难度分布按贝叶斯后验上调("这个模型都失败了,任务大概比预想更难"),见after_failure与 panda_router.rs 的escalate_once;
  3. 新选中的模型永远不弱于失败的模型:优先走上一轮阶梯的下一级(escalation_ladder),否则选更强的(escalation:stronger),再否则选剩下最强者(escalation:strongest_left);
  4. 每个任务最多重试 2 次,三次失败后 Lead 会把失败报告给你,而不是继续烧钱。

分派备注里会写清楚决策来源,例如routed: Haiku · claude (ladder 1/3, opener; policy pick Opus; …),你可以随时知道为什么派了它。

自动下载与完整性校验(隐私保证)

  • 路由过程本身不发起任何网络请求,任务内容绝不上传;
  • 唯一的下载是画像模型文件:model.int8.onnx(31 MB)+tokenizer.json(3.5 MB),约 35 MB,来自固定 commit的上游仓库,下载流式计算SHA-256 校验,失败文件自动清理、10 分钟后才重试(见 model_routing.rs);
  • 文件存放在应用数据目录panda-router/v4,旧版 v2 文件在新版加载后自动清除;
  • Intel Mac 与 x86_64 Linux 没有预构建的 ONNX Runtime,不下载、不加载,直接使用关键词启发式;macOS 13.4 以下同理。

也就是说,"自动升级"对使用者而言是无感的:设置里打开路由 → 团队启用时后台下载 → 下次路由自动切换为 ONNX 模式,路由结果里的profiler字段会标明onnx还是heuristic。

没有 ONNX 时怎么办?

在文件下载完成之前,路由从不阻塞:先用内置的关键词启发式(heuristic.rs)顶替——正则匹配类别词(fix/bug/refactor/pytest…)、按字数与文件数估难度、按难度偏移推技能轴。效果弱于 ONNX 画像,但保证团队随时可用,且结果中会明确标注heuristic。

在哪里开启与调优?

Settings → Agents → Model routing,面板源码见 model-routing.ts:

  • Pick worker models with Panda Router:总开关(默认开启);
  • Mode:Cheap / Balanced / Best;
  • Minimum chance of success:仅 Cheap 模式显示,默认 50%;
  • Profiler:Ready / Downloading / Failed 状态,可手动 Download 或 Retry;
  • Route(试一试):输入一段任务描述,立即看到选中模型、备选 Top 5、各自的成功率与预估成本。

另外两个实用功能:

  • 等级表(Tier list):给模型评 S/A/B/C/D(对应能力 8.9 / 8.0 / 7.0 / 6.0 / 4.5),被评级模型的成功率按0.7×等级 + 0.3×卡片混合——S 级的弱卡可以打败 D 级的强卡;
  • Team 菜单:提示框旁的 Team 按钮直接切换Cheap team / Balanced team / Best team,自动开启自动团队并设置全局模式。

源码与文档索引

模块路径说明
路由主入口src-tauri/src/panda_router.rsroute/escalate、资产清单与 SHA-256
ONNX 画像器src-tauri/src/panda_router/onnx.rstokenizer + int8 模型加载与批量推理
启发式画像src-tauri/src/panda_router/heuristic.rs无 ONNX 时的正则规则画像
IRT 匹配器src-tauri/src/panda_router/matcher.rsP(success) 计算、候选过滤、升级地板
决策策略src-tauri/src/panda_router/policy.rs三种模式、失败成本、3 级阶梯
模型卡片src-tauri/src/panda_router/cards.rs目录校验、别名解析、模糊匹配
成功头src-tauri/src/panda_router/success.rs校准 P、置信下界、失败偏移表
设置与下载src-tauri/src/model_routing.rs配置、流式下载、状态机
团队侧逻辑src-tauri/src/architect/routing.rsprofileId: "auto"、replaces失败链
面板前端src/model-routing.ts / model-routing.css设置页
官方文档docs/model-routing.md行为、模式、隐私、限制
路由测试src-tauri/src/panda_router/tests.rs与 Python 参考实现的对齐验证

小结

Panda Router 把"为每个 Worker 选模型"变成了一道本地、毫秒级、可解释的优化题:ONNX 小模型负责读懂任务,模型卡片负责量化每个模型,成功头负责校准概率,v4 策略负责在成本与成功率之间权衡,失败后沿阶梯只升不降、最多两次重试。对新手来说你只需要知道一件事——在设置里打开它,选择 Balanced 模式,剩下的交给路由。

【免费下载链接】pandacode

PandaCode: a calm desktop workspace for coding agents

项目地址:https://gitcode.com/gh_mirrors/pa/pandacode
点击查看免费下载

相关推荐

上一篇:Hoppscotch 本地部署教程:免费开源 API 测试平台从零跑通
下一篇:DyberPet 桌宠指南:十分钟从安装到喂出第一顿饭

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表