我把 Hermes 的模型换成 GPT-5.6 Luna:一次被价格逼出来的迁移
DeepSeek 涨价之后,我做的第一件事不是改配置,而是算账。
过去 Hermes 里同时跑着 DeepSeek V4 Flash、DeepSeek V4 Pro、Gemini Flash Lite 和其他模型。主会话用一个,辅助任务用另一个,Cron 又是另一套。看起来每个位置都选了“最合适”的模型,实际维护起来很麻烦:价格要分时段看,模型要分能力看,某个辅助任务出了问题,还得先判断到底是哪条 provider 链路。
8 月 17 日 DeepSeek 要切换新的价格体系,这件事把问题推到了眼前。尤其是 Pro,缓存命中和未命中的价格差距很大,输出价格也不低。模型便宜不便宜,不能只看缓存命中那一列。只要任务偶尔缓存未命中,或者需要生成一篇长报告,账单很快就会变得难看。
于是我决定先把文本模型统一到 GPT-5.6 Luna 系列。它不一定在所有维度都赢,但价格、速度、工具调用和配置复杂度暂时能放在同一张账上看。
先把四个 Luna 版本分清楚
OpenRouter 上的四个名字,容易被理解成四个完全不同的模型。实际要分两组看。
第一组是能力档位:
openai/gpt-5.6-luna:标准推理模式,实时调用。openai/gpt-5.6-luna-pro:同一底层模型,但使用 Pro 推理模式,给复杂问题更多推理预算。
第二组是调用方式:
openai/gpt-5.6-luna:batchopenai/gpt-5.6-luna-pro:batch
这两个是异步 Batch API 通道,不是把普通模型换个后缀就能得到的“便宜同步版”。Hermes 的普通对话、辅助任务和 Cron 都依赖同步请求、工具调用和多轮 Agent loop。要接 Batch,得另外做提交、轮询、结果落盘和推送适配。
所以这次迁移只用了前两个实时模型,没有把 Batch 填进 Cron 的 model 字段。
第一层:先换主模型
主模型改成:
model:
default: openai/gpt-5.6-luna
provider: openrouter
fallback 也改成 Luna。
delegation 没有单独指定模型,继续继承主模型。这样主会话、子代理和普通工具调用先统一到同一个基础模型,出了问题比较容易定位。
第二层:辅助模型没有一刀切
辅助任务按复杂度拆成两档。
普通 Luna 负责:
vision
web_extract
compression
skills_hub
title_generation
tts_audio_tags
profile_describer
monitor
session_search
flush_memories
background_review
moa_reference
这些任务大多是提取、压缩、整理、分类和轻量判断,没必要固定用 Pro。
Luna Pro 负责:
approval
mcp
triage_specifier
kanban_decomposer
curator
moa_aggregator
它们涉及安全审批、工具编排、任务拆解、技能治理和多结果聚合。这里如果模型只做机械整理,Luna 就够了;如果它要替我判断风险、选择路径,Pro 更稳一些。
视觉辅助也从原来的 Gemini Flash Lite 改成了实时 Luna。图片生成没有跟着改,因为图片生成是另一条能力链,最后换成了:
google/gemini-3-pro-image
第三层:Cron 单独迁移
Cron 是最容易被忽略的一层。
主模型改了,不代表 Cron 应该自动跟着漂移。以前的 Cron 配置里,很多任务还钉在 DeepSeek。既然这次决定停用 DeepSeek,就把 18 个 LLM Cron 逐个改成 OpenRouter 的 Luna 系列,同时保留 20 个 no_agent 脚本任务原样运行。
当前分工是:
| 模型 | 任务类型 |
|---|---|
| GPT-5.6 Luna | 新闻聚合、Crypto 日报、定投日历、基金周度收益、记忆整理、数据一致性检查 |
| GPT-5.6 Luna Pro | A 股收盘分析、基金分析、QDII 分析、周报、市场综合判断、Dojo、失败兜底 |
| no_agent | 实时采集、阈值监控、数据补写、下载和其他纯脚本任务 |
这里有一个实际收益:no_agent 任务一直不消耗模型 Token。能用脚本完成的事情,不应该为了“模型统一”给它硬塞一个 LLM。
迁移时我还清掉了每个已迁移任务的旧 model/provider snapshot,避免 Cron 的模型漂移保护把新配置误判成异常。
DeepSeek API 也删掉了
只改 Cron 还不够。DeepSeek provider 和 API Key 留在系统里,后面总会有旧脚本、旧 profile 或某个遗忘的辅助路径尝试调用它。
这次做了三步清理:
hermes auth remove deepseek 1
然后从 ~/.hermes/.env 中清掉 DEEPSEEK_API_KEY,再从 config.yaml 删除 api.deepseek.com 的 custom provider。
最后检查 Cron、主会话和 session_model_usage,确认迁移之后没有新的 DeepSeek 调用记录。
这一步也解释了一个看似奇怪的账单问题:8 月 16 日 DeepSeek 官方控制台出现了一笔 Pro 消费,但本机 state.db 当天的 sessions 和 model usage 都没有 deepseek-v4-pro。删除 Key 之后,这条无法对应来源的调用路径也被关掉了。
两天后的数据:速度确实快了
迁移切点记为:
2026-08-14 14:58
我用两套数据看切换前后的 Cron。
第一套是 Cron 调度执行记录,第二套是 state.db 里实际产生的 Cron 会话。后者更适合看模型和 Token,因为它记录了实际调用的模型。
LLM Cron 会话耗时
| 阶段 | 会话数 | 中位耗时 | 平均耗时 | P90 |
|---|---|---|---|---|
| DeepSeek 阶段 | 514 | 413.7 秒 | 529.5 秒 | 1027.6 秒 |
| Luna 阶段 | 47 | 100.8 秒 | 154.8 秒 | 401.7 秒 |
目前看,中位耗时下降约 76%,平均耗时下降约 71%,P90 下降约 61%。
具体任务的方向也比较一致。切换后,全球 AI 新闻聚合、Crypto 日报、HexaMind 整理、Dojo、基金分析、QDII 分析和 A 股收盘分析的中位耗时都比过去低。
这不是一场严格的 A/B 测试。两边的新闻量、网络状态、Prompt 和任务状态都可能不同。样本也还不够大。但“Luna 跑得更快”至少已经不再只是体感。
成功率暂时没有变坏
切换前的 Cron 调度记录中,有 938 次 completed、9 次 failed、15 次 unknown。切换后的记录是 230 次 completed、0 次 failed、5 次 unknown。
这组数字不能证明 Luna 长期一定更稳定,毕竟切换后的样本里有不少脚本任务,而且运行时间还短。不过至少目前没有看到因为迁移模型导致的 Cron 大面积失败。
代价:Pro 用得比想象中多
速度变快了,账单不会自动变小。
切换后实际 LLM Cron 的 Token 大致是:
Luna:约 14.7M
Luna Pro:约 112.4M
Pro 占了大约 88%。原因很简单:复杂的基金、市场和长报告任务都在 Pro 上,而这些任务本来就比定投日历、数据检查更吃 Token。
所以这次迁移解决的首先是:
- DeepSeek 涨价风险
- provider 过多带来的维护成本
- Cron 运行慢和偶发卡死
- 辅助模型风格不一致
它还没有解决“所有任务都便宜”这个问题。
目前 OpenRouter 给 Luna 和 Luna Pro 做五折活动,输入约为 $0.10 / 百万 Token,输出约为 $0.60 / 百万 Token。活动什么时候结束还不清楚,所以我没有急着把 Pro 任务迁到其他便宜模型。
为什么暂时不换更便宜的模型
OpenRouter 上当然有更便宜的选择:
- Gemini 2.5 Flash Lite,输入和 Luna 促销价接近,输出更便宜。
- Qwen3 32B,中文结构化任务的价格更低。
- gpt-oss-120b,价格非常低,适合低风险后台任务。
但每换一个模型,就要重新验证一遍:
工具调用是否稳定
JSON 是否容易截断
Cron 是否能按时结束
中文报告是否符合模板
长上下文是否够用
失败兜底是否还可靠
模型便宜几倍,重新返工的时间也可能把差价吃掉。现在 Luna 五折还在,先把运行数据积累起来,比马上做第二次迁移更划算。
现在的配置
主会话:openrouter/openai/gpt-5.6-luna
fallback:openrouter/openai/gpt-5.6-luna
普通辅助:openrouter/openai/gpt-5.6-luna
复杂辅助:openrouter/openai/gpt-5.6-luna-pro
普通 Cron:openrouter/openai/gpt-5.6-luna
复杂 Cron:openrouter/openai/gpt-5.6-luna-pro
脚本 Cron:no_agent,不调用模型
图片生成:google/gemini-3-pro-image
DeepSeek:API Key 和 custom provider 已删除
Batch:未启用
接下来先观察两周,不马上调整。
观察的不是一个漂亮的平均数,而是每类任务是否稳定:A 股分析有没有漏数据,基金报告有没有格式问题,HexaMind 是否正常写入,Cron 有没有超时和重复推送。两周后再看 Luna Pro 里哪些任务确实值得用 Pro,哪些可以降到 Luna,或者交给更便宜的替代模型。
这次换模型没有追求“最便宜”。我只是先把一条复杂、会自己跑的系统,换到一条更容易解释和维护的模型链路上。等折扣结束,账单会告诉我下一步该往哪里走。
相关配置
~/.hermes/config.yaml
~/.hermes/cron/jobs.json
~/.hermes/state.db
本文数字来自当前配置、Cron 执行记录和 state.db,观察期结束后需要重新核对。