多模型双 Profile 具体落地方案(默认云端 / 私密全本地)

写于 2026-10-03

制定日期:2026-10-03 适用人:Flynn 老师 硬件:i5-12600KF / 48GB DDR5-5600 / RX 6500 XT 4GB / 三星 980 NVMe 前置文档:20261002 云端API与本地模型协同使用方案.md(讲"为什么分工");本篇讲"具体怎么配、怎么用" 状态:已配置完成并真机端到端验证通过


一、需求与一个关键前提

需求:默认用云端模型保证质量与速度;处理私密文档 / 特殊说明时切到本地模型,且不希望内容出网;切换要省心、能明确当前用的是哪个模型。

关键前提(查证 Hermes 源码与官方文档后确认):

  1. Hermes 没有"主模型按内容敏感度自动切换"的原生功能。
  2. auxiliary(辅助模型)只服务于标题生成、上下文压缩、视觉识别等旁路任务,不能用来接收主对话——所以"设个辅助模型接私密内容"这条路不成立。
  3. 因此采用 双 Profile:两套相互隔离的 agent 配置,一条命令切换。这也是隐私上最稳妥的做法(不依赖自动识别,杜绝误判把私密内容先发上云)。

二、总体架构

日常工作
   │  hermes(默认 profile = default)
   ▼
 ┌─────────────────────────────────────────────┐
 │ default                                     │
 │ 主模型:ark-code-latest(火山云)            │
 │ fallback:deepseek-v4-flash(云端转移)      │
 │ auxiliary:auto(云端)                      │
 └─────────────────────────────────────────────┘

处理私密文档 / 特殊说明
   │  hermes -p private
   ▼
 ┌─────────────────────────────────────────────┐
 │ private                                     │
 │ 主模型:qwen3.6-35b-a3b(本地 8080)         │
 │ fallback:空(本地失败即报错,绝不转云)      │
 │ 全部 auxiliary:显式指向本地 8080            │
 │ → 所有调用均不出网                           │
 └─────────────────────────────────────────────┘

一句话:default = 云端主编;private = 全本地离线工作台,进入即锁网。


三、两个 Profile 的实际配置

3.1 default(日常,无需改动)

配置文件:C:\Users\41456\AppData\Local\hermes\config.yaml

项 值
主模型 ark-code-latest
provider custom
base_url https://ark.cn-beijing.volces.com/api/coding/v3
api_mode auto
fallback deepseek-v4-flash(云端)
auxiliary 全部 auto

3.2 private(本次新建)

配置文件:C:\Users\41456\AppData\Local\hermes\profiles\private\config.yaml (改前已备份为同目录 config.yaml.bak-20261003)

主模型段:

model:
  default: qwen3.6-35b-a3b
  provider: local-llamacpp
  base_url: http://127.0.0.1:8080/v1
  api_mode: openai
  api_key: local-no-key
  context_length: 65536
  extra_body:
    chat_template_kwargs:
      enable_thinking: false      # 关闭思维链,见第五节坑1

故障转移(关键:清空):

fallback_providers: []            # 本地异常直接报错,不回退云端

全部辅助任务统一锁定本地(含容易遗漏的 4 项):

auxiliary:
  vision:          &loc { provider: custom, base_url: http://127.0.0.1:8080/v1,
                         api_key: local-no-key, model: qwen3.6-35b-a3b, timeout: 300,
                         extra_body: { chat_template_kwargs: { enable_thinking: false } } }
  web_extract:     *loc
  compression:     *loc
  skills_hub:      *loc
  approval:        *loc
  mcp:             *loc
  title_generation: *loc
  tts_audio_tags:  *loc
  triage_specifier: *loc
  kanban_decomposer: *loc     # 易漏
  profile_describer: *loc     # 易漏
  curator:         *loc       # 易漏
  monitor:         *loc       # 易漏

为什么这样能保证不转云:Hermes 辅助调用解析时,只要带显式 base_url,本地失败就直接抛错;只有未配置 base_url 时才会走 auto 云端发现链。这是源码 auxiliary_client.py 中 if not resolved_base_url: 分支决定的。


四、日常使用命令

场景 命令
进入日常云端模式 hermes
进入私密本地模式 hermes -p private
私密模式下单问 hermes -p private chat -q "内容"
退出私密回云端 退出当前会话后运行 hermes
查看已有 profile hermes profile list

可选便捷命令:创建 profile 时已生成 C:\Users\41456\.local\bin\private.bat(内容即 hermes -p private %*)。把该目录加入 PATH 后可直接敲 private:

# 加入 ~/.bashrc
export PATH="$HOME/.local/bin:$PATH"

两套 profile 的配置、会话、记忆相互隔离,来回切换互不影响。


五、落地中踩过的三个真实坑(均已解决)

坑 1:思维链导致首轮超时

现象:Qwen3.6 默认先输出长篇 reasoning_content,正文为空,max_tokens 全被思考耗尽,首轮轻松超过 180 秒。 尝试:/no_think 提示词对本模型无效。 解法:在主模型与全部辅助任务写入

extra_body: { chat_template_kwargs: { enable_thinking: false } }

实测同一请求由 146 秒降到 8 秒,直接返回正文。

坑 2:Vulkan 模式处理大 prompt 时服务崩溃

现象:显卡模式(-ngl 999)处理约 13000 token 以上的大 prompt 时,llama-server 直接崩溃退出(端口、进程、health 全部消失),客户端跑约 16 分钟后报 APIConnectionError。 验证:改用纯 CPU(-ngl 0)后,同样 27000 token 的场景稳定跑完。 解法:本地服务统一用纯 CPU 模式。开机自启脚本 D:\LocalLLM\scripts\autostart_run.bat 已改为 -ngl 0。

坑 3:源码目录的 AGENTS.md 被注入,上下文暴涨

现象:从 hermes-agent 源码目录启动时,会自动注入该目录 70KB 的 AGENTS.md(Hermes 源码开发指南),prompt 暴涨到 27000 token、首轮十几分钟,并有 "AGENTS.md TRUNCATED 69213 chars" 警告。 解法:不要在 C:\Users\41456\AppData\Local\hermes\hermes-agent 目录里启动 hermes。该文件是源码的一部分,不删除。

附带处理:默认多槽(parallel)在请求超时后服务端不释放、后续请求排队恶性循环;已统一加 --parallel 1。


六、本地服务与开机自启

启动器(纯 CPU + 单槽,稳定版):D:\LocalLLM\scripts\autostart_run.bat

实际启动参数:

llama-server.exe -m "D:\LocalLLM\models\Qwen3.6-35B-A3B-UD-Q4_K_M.gguf"
  --host 127.0.0.1 --port 8080 -ngl 0 -c 65536 --parallel 1
  --temp 0.7 --top-p 0.8 -t 8

开机自启:因系统策略禁止非提权创建 ONLOGON 计划任务,已改用"启动文件夹快捷方式"(无需管理员):

C:\Users\41456\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\LocalLLM-Qwen36.lnk

登录 Windows 即自动后台拉起本地服务。取消自启只需删除该 .lnk。 手动管理:ensure_server.py(幂等启动)、健康检查.bat。


七、能力边界与使用建议

  • 实测速度:生成约 2.8 tok/s(4GB 显卡能 offload 的层很少,主要靠 i5 CPU)。关闭思维链后,普通一问一答几秒到几十秒;长对话首轮 prompt 处理仍偏慢。
  • 定位:private = 隐私 / 离线 / 教学演示 / 批量初稿;出版级成稿、复杂推理、联网任务仍走 default 云端。
  • 私密使用习惯:先确认本地服务在线(curl http://127.0.0.1:8080/health),再 hermes -p private;private 内任何调用都不会出网,可放心粘贴敏感内容。

八、一页速查

日常云端:   hermes
私密本地:   hermes -p private      (或加入PATH后: private)
本地健康:   curl http://127.0.0.1:8080/health
开机自启:   Startup 文件夹 LocalLLM-Qwen36.lnk(纯CPU -ngl 0)
私密铁律:   fallback 清空 + 全部 auxiliary base_url 指向 8080
提速关键:   enable_thinking=false(关思维链)