大模型推荐助手
当用户需要为当前任务挑选大模型时,按以下步骤执行。
一、触发条件
用户说出下列任一说法时执行本技能:
- 推荐大模型 / 用什么模型 / 选哪个模型 / 选什么模型
- 哪个模型合适 / 模型推荐 / 这活该用哪个模型
- 这个任务用哪个大模型 / 该用哪个大模型
用户没有主动询问时不要推荐;不要挂载到其它技能的流程里,也不要代替用户做模型切换。
二、执行步骤
第 1 步:判定任务类型
从用户提示词判断,落到下表之一;判断不出用 general,不要硬猜。
| 类型 | 适用场景 | 需求思考强度 |
|---|---|---|
crape |
批量爬取、抓取、收集资料 | 低 |
research |
系统研究、深度推理、机理分析 | 高 |
code |
写代码、调试、重构 | 高 |
survey |
产业链调研、市场调研、读图整合 | 中 |
ppt |
PPT、演示文稿、汇报材料 | 中 |
video |
视频生成、脚本、分镜、剪辑 | 中 |
writing |
写报告、文档、文案 | 中 |
general |
未识别或日常轻量任务 | 中 |
也可以交给脚本自动判定,见第 2 步的 --task-type auto。
第 2 步:运行打分脚本
执行下列命令。<技能目录> 指 SKILL.md 所在目录;若终端已在其中,可省略该前缀。python3 不可用时改用 python:
python3 "<技能目录>/scripts/recommend.py" --task-type <类型> --json
python3 "<技能目录>/scripts/recommend.py" --task-type auto --query "<用户原话>" --json
输出为 JSON,关键字段:
| 字段 | 含义 |
|---|---|
angles.best.picks |
「做到最好」角度的主推与备选(成本按原价算) |
angles.value.picks |
「性价比最高」角度的主推与备选(成本按折扣价算) |
picks[].credits |
计费(原始倍率文本) |
picks[].ctx |
上下文长度(token) |
picks[].stars |
性价比星级(1–5) |
picks[].effort.recommend |
建议的思考强度 |
picks[].effort.compare |
与模型默认强度的对照说明 |
picks[].credits_peak / credits_offpeak / discount_pct |
存在两档价时的原价、折扣价与省幅 |
time_context |
当前时段是否高峰 |
fee_snapshot |
费率快照时间 |
warnings |
数据降级提示,必须原样传达给用户 |
第 3 步:补写推荐理由
脚本只按权重算分,理由由你结合任务特征补写,每条 1–2 句:
- 做到最好:为什么它最强、什么情况下值得花这个钱
- 性价比最高:它的能力÷成本比为什么最优
- 思考强度:结合该任务类型的需求档位说明,脚本已给
effort.compare,可润色但不要改变结论
第 4 步:渲染推荐卡
python3 "<技能目录>/scripts/render_card.py" --task-type <类型> --out "<工作区>/模型推荐卡_<类型>.html"
卡片为自包含 HTML,含任务特征、两个角度各自的 主推+备选、每项计费/上下文/星级/思考强度、暂停提示与数据脚注。
第 5 步:打开预览并结束本轮
- 用可用的文件预览能力打开第 4 步生成的 HTML(见「运行环境与降级」第 3 条)
- 用 2–3 句话说明:主推哪个模型、思考强度设几档、备选是什么
- 结束本轮回复,把切换模型的动作交给用户
除非用户在同一句提示词里明确说了「不用等,直接继续」,否则不要在同一轮里接着做原任务。 切模型只能在界面手动完成,抢跑会让任务跑在错的模型上。
第 6 步:用户回复「继续」后
按原任务要求正常执行,不要重复弹卡。若用户已说明切换了别的模型,按用户的选择执行。
三、运行环境与降级
- 依赖:仅需 Python 3.8+ 标准库,全程离线,不联网、不写系统目录、不上传数据。
- 数据源:优先读本机 WorkBuddy 配置与费率快照。配置文件按三种命名依次查找 —— 环境变量
MODEL_ADVISOR_CONFIG指定、固定名acc-product-config-v3.json、以及同目录带 PID/UUID 后缀的acc-product-config-v3-*.json(取 mtime 最新,跳过.tmp)。第三项是必需的:客户端新版就是按后者命名,只认固定名会永远读不到、静默退化。 - 读不到时:脚本回退内置清单,费率显示为「未知」(不编造数字),并在
warnings与卡片顶部标出「兜底模式」。此时必须向用户说明结论仅供参考。 - 预览能力缺失时:保存 HTML 后,把卡片关键结论(两个角度各 1 条 + 思考强度)以纯文本或 Markdown 表格直接输出给用户,并给出文件路径,不要以「无法预览」为由中断。
- 脚本无法执行时(无 Python 或环境受限):改用
@references/fallback-table.md的静态对照表给出一组可用推荐,并在回复中注明「本次为离线估算,费率请以界面为准」,不得静默失败。
四、自检
上传或排障前执行,用于确认包结构与脚本可运行(无需凭据、无需网络):
python3 "<技能目录>/scripts/selfcheck.py"
python3 "<技能目录>/scripts/selfcheck.py" --json
输出 PASS 且退出码为 0 表示正常;--strict 模式下异常时退出码为 1。
五、输出与数据口径
- 两个角度的差别:「做到最好」的成本权重压得很低(0.08~0.12),本质按能力排序,就是「不管花多少钱」;「性价比最高」成本权重 0.24~0.45,且成本按对数刻度折算 —— 因为人对价格的感知接近比例(贵一倍/便宜一半),线性折算会把低价区压平,让「便宜一点、能力高一截」的型号永远翻不了身。
- 费率以最新配置为准:展示的是当前本机配置里的生效费率,附快照时间。
- 折扣只在能确证时才报:判定条件是「同一份配置指纹(模型清单完全一致)内,同一模型出现过两个不同费率」。跨配置版本的差异(不同账号、不同套餐、不同 credits 文本格式)一律不算折扣 —— 那多半是历史调价或别处的价格,误报会给出精确但错误的金额。确证不了就不给折扣数字,只提示当前是否处于官方非高峰时段。
- 能力分有两种来源:卡片上会标「推断值」或「自定义值」。手册收录的型号是人工给的精确档;未收录的新型号按「同族 + 同主版本 + 档位后缀」推断,推断依据写在
ability_note里。推断值不是实测结论,重要决策请结合自己的实测体验。 - 用户可覆盖能力判断:若长期使用某型号、认为推断分不准,放一份
~/.workbuddy/model-advisor-ability.json(格式{"模型id": 0.8})即可覆盖,不用改代码,也不会被商店更新冲掉;也可用环境变量MODEL_ADVISOR_ABILITY指定路径。 - 强度由任务类型决定:推荐档位取自任务类型(爬取低 / 研究·代码高 / 其余中),同时对照该型号的默认档与
supportedEfforts。若型号压根不支持某档(例如有的型号只有 high/xhigh),会自动改推最接近的可选档,避免让你去界面上找一个不存在的选项。 - 只推荐不代选:最终切换由用户在模型下拉框完成。
六、边界
- 不承诺自动切换模型,skill 没有界面操作权限。
- 配置文件是应用层支持清单,用户套餐实际能选的以界面为准;推荐结果若在界面找不到,改用备选。
- 折扣的精确生效时间、限次免费次数读不到,如实说明,不编造。
- 不推荐 WorkBuddy / CodeBuddy 内没有入口的模型(如 Claude、GPT、Gemini),需要同类能力时给国内可用替代。
参考资料
@references/model-profiles.md— 主力模型能力档案、评分口径、强度机制与诚实边界@references/mechanism.md— 费率来源、折扣识别、时段规则、打分公式@references/fallback-table.md— 无脚本环境下的静态推荐对照表@references/examples.md— 三个端到端使用示例@references/faq.md— 常见问题