文章851
标签121
分类10

Hermes Agent 三模型自动路由的本地实践

Hermes Agent

我给 Hermes 装了一个三模型路由:Claude 写代码,GPT 做方案,DeepSeek 跑快活

我平时用 AI 做的事情差别很大:有时要改一整个代码模块,有时只是讨论一个业务方案,还有不少任务只是整理文件、转换格式或执行明确的命令。如果所有请求都交给最强、最贵的模型,质量未必提高多少,等待时间和成本却会明显增加。

我的做法是在 Hermes Agent 里增加一个本地 model-router Skill。它先判断任务的最终交付物,再把工作交给合适的模型:

  • Claude 负责写代码、调试、重构、测试和代码审查。
  • GPT 负责头脑风暴、业务分析、需求拆解和技术方案。
  • DeepSeek 负责快速问答、整理、格式转换和重复操作。

这套分工已经在我的 macOS + Hermes Desktop 环境中实际运行,不是只写在文档里的模型选择建议。

我本地使用的三个模型

分工默认模型本地接入方式适用任务
编码Claude Sonnet 5Claude Code CLI + Claude Pro OAuth写代码、修 Bug、重构、测试、Code Review
分析与方案GPT-5.6 TerraHermes openai-codex Provider业务分析、技术方案、架构权衡、头脑风暴
快速任务DeepSeek V4 FlashHermes deepseek Provider简单问答、整理、批处理、格式转换、明确的小任务

我还保留了按需升级规则:

  • Sonnet 两次处理仍失败,或涉及资金安全、核心权限等高风险代码时,再考虑 Claude Opus。
  • Terra 无法覆盖复杂推理或高风险架构决策时,升级到 GPT-5.6 Sol。
  • DeepSeek V4 Flash 无法严格满足输出格式,或任务需要更深推理时,升级到 DeepSeek V4 Pro。

默认模型追求性价比,升级模型处理少数真正困难的任务。这样比所有请求都固定使用旗舰模型更实用。

为什么选择这三个默认模型

Claude Sonnet 5:把编码交给真正能操作项目的模型

Claude 通过 Claude Code CLI 接入,而不是把 Claude Pro 会员当作 Anthropic API Key 使用。我的实际链路是:

Hermes → model-router → claude -p → Claude Pro OAuth → Claude Sonnet 5

本地测试结果:

subscriptionType: pro
result: CLAUDE_PRO_OK
model: claude-sonnet-5
status: success
响应时间: 约 2.8 秒

Claude Code 能读取项目文件、修改代码并运行测试。对于编码任务,这比让普通对话模型只返回一段代码更有价值,因为最终交付物应该是经过真实验证的项目改动。

GPT-5.6 Terra:方案质量与响应速度更平衡

我用同一道支付幂等架构题测试了 GPT-5.6 系列,要求模型同时考虑 PostgreSQL、Redis、每秒 10,000 请求、外部 IO 超时、上下文传播和无数据库外键等约束。

模型实测耗时观察
GPT-5.6 Sol66.86 秒内容最完整,但输出更长、等待更久
GPT-5.6 Terra42.14 秒关键约束覆盖完整,结构和速度更均衡
GPT-5.6 Luna26.26 秒最快,但风险分析和细节有所压缩

Terra 比 Sol 快约 37%,同时保留了架构建议、风险、灰度步骤和监控指标。因此我把 Terra 设为技术方案与业务分析的默认模型,把 Sol 留给少量高难度任务。

DeepSeek V4 Flash:低成本处理高频小任务

快速任务不需要动用 Claude 或 GPT 的深度推理。我测试了数据筛选、排序和统计任务:

模型实测耗时结果
DeepSeek V4 Flash6.01 秒正确
DeepSeek V4 Pro5.74 秒正确,格式遵循更严格
DeepSeek Chat3.20 秒正确,但额外包了一层 Markdown 代码块

DeepSeek 官方价格中,V4 Flash 的非缓存输入价格是每百万 Token 0.14 美元,输出是 0.28 美元;V4 Pro 分别是 0.435 和 0.87 美元。Pro 约为 Flash 的 3.11 倍。对整理、转换和机械操作来说,Flash 更划算。

自动路由是怎么工作的

Skill 不会在同一轮对话中偷偷替换当前模型。Hermes 重视会话级 Prompt Cache,运行中热切换会破坏缓存,也容易让上下文变得不可控。

我的路由采用下面的方式:

  1. Hermes 收到请求后加载 model-router
  2. Skill 根据最终交付物选择 Claude、GPT 或 DeepSeek。
  3. 如果当前模型正好匹配,就直接执行。
  4. 如果不匹配,Hermes 启动一个带明确模型参数的独立子任务。
  5. 主 Agent 检查子任务结果。代码必须运行测试或构建,方案必须覆盖用户约束。
  6. 用户只看到整合后的最终结果。

核心调用方式如下:


# Claude:编码
claude -p "<自包含编码任务>" \
  --model sonnet \
  --max-turns 20 \
  --no-session-persistence

# GPT:业务分析和技术方案
hermes -z "<自包含分析任务>" \
  --provider openai-codex \
  -m gpt-5.6-terra

# DeepSeek:快速任务
hermes -z "<自包含快速任务>" \
  --provider deepseek \
  -m deepseek-v4-flash

子任务 Prompt 必须自包含,写清用户目标、项目路径、必要上下文、约束和输出格式,但不能传递 API Key、Token、生产连接串或真实个人信息。

路由规则不是关键词匹配

只看关键词很容易选错模型。例如:

“帮我讨论一下这段代码应该怎么重构,先不要修改文件。”

虽然出现了“代码”和“重构”,最终交付物仍然是分析方案,所以应该交给 GPT。

另一个例子:

“根据这份技术方案完成代码,并运行测试。”

这里最终要修改项目,应该交给 Claude。Skill 的优先级是:


最终产出包含代码或文件修改 → Claude
最终产出是分析、方案或设计文档 → GPT
任务简单、明确且能快速完成 → DeepSeek
任务横跨多个阶段 → 拆分后分别路由

三模型如何协作

复杂需求不必强迫一个模型包办所有工作。我通常按下面的顺序拆分:

GPT-5.6 Terra
  └─ 分析业务、拆解需求、确定方案和验收标准
       ↓
Claude Sonnet 5
  └─ 按方案修改代码、补测试、执行构建
       ↓
DeepSeek V4 Flash
  └─ 整理变更清单、转换格式、处理机械复核
       ↓
Hermes 主 Agent
  └─ 检查冲突、验证真实结果、统一交付

如果几个子任务互不依赖,可以并行执行;存在依赖时则保持顺序。三模型协作只用于确实横跨多个领域的任务,简单请求仍然只调用一个模型,避免增加延迟和消耗。

这套方案带来的好处

1. 钱花在真正困难的地方

机械任务交给 DeepSeek V4 Flash,普通方案交给 GPT-5.6 Terra。Claude Opus、GPT-5.6 Sol 和 DeepSeek V4 Pro 只在默认模型失败或任务风险较高时启用。

模型能力不再是越强越好,而是够用就好,必要时再升级。

2. 编码任务从“生成代码”变成“交付改动”

Claude Code 可以直接进入项目工作目录,读取上下文、修改文件并运行测试。Hermes 仍负责最终核验,不会因为 Claude 说“已经完成”就直接相信。

3. 技术方案不会被编码偏好带跑

GPT 先从业务目标、约束、风险和上线策略出发,再把确定后的任务交给 Claude。这样能减少“模型急着写代码,却没有先把问题想清楚”的情况。

4. 高频小任务响应更轻

文件整理、格式转换、清单生成等请求交给 DeepSeek,减少等待时间,也避免消耗 Claude Pro 和 Codex 的高价值额度。

5. 路由策略可以持续调整

模型更新后,只需修改 Skill 中的模型名称和升级规则,不需要改业务项目。路由逻辑集中在一个文件里,也更容易审查和导出。

本地文件位置

我的 Skill 位于:


~/.hermes/skills/hermes/model-router/SKILL.md


---
name: model-router
description: "每个任务开始时自动路由模型并协调三模型:代码、调试、代码审查交给 Claude;头脑风暴、业务分析和技术方案交给 GPT;快速、简单、重复性任务与方法查询交给 DeepSeek。"
version: 2.1.0
author: Hermes Agent
license: MIT
metadata:
  hermes:
    tags: [model-routing, claude, gpt, deepseek, multi-agent]
    related_skills: [hermes-agent]
---

# 三模型自动路由与协作

## 目标

每次收到用户任务后,先判断主任务类型,再选择最合适的模型。不要让用户手动指定模型。Hermes 不支持由 Skill 在同一轮中热切换当前会话模型,因此当当前模型不符合路由结果时,通过独立 `hermes -z` 子任务调用目标模型;当前 Agent 负责传递必要上下文、检查结果并向用户交付。

## 路由表

| 主任务 | 模型与 Provider | 典型任务 |
|---|---|---|
| 编码 | Claude Code CLI(`sonnet`,当前解析到最新 Sonnet) | 写代码、修改文件、重构、调试、测试、SQL、API 实现、PR/代码审查 |
| 思考与方案 | `gpt-5.6-terra` + `openai-codex` | 头脑风暴、业务分析、需求拆解、技术方案、架构权衡 |
| 快速任务 | `deepseek-v4-flash` + `deepseek` | 简单问答、方法查询、整理、格式转换、重复操作、明确且快速的执行 |

## 优先级

1. 最终交付物包含代码或需要修改代码:Claude。
2. 最终交付物是业务分析、技术方案、设计文档或开放式讨论:GPT。
3. 能快速完成且无需复杂推理:DeepSeek。
4. 混合任务先拆分;各子任务分别路由,不用单一模型包办。

## 执行流程

1. **分类**:在调用工具前确定主路由;完成标准是明确选出 Claude、GPT 或 DeepSeek。
2. **直接执行或委派**:
   - 当前会话模型已经是目标模型:直接完成任务。
   - 当前模型不是目标模型:使用下面的命令启动目标模型。Prompt 必须自包含,包含用户目标、必要上下文、路径、约束和输出格式;禁止包含密钥或敏感数据。
3. **验证**:代码结果必须由当前 Agent 在真实工作目录运行测试、构建或静态检查;分析结果必须检查是否回答全部需求。
4. **交付**:只向用户交付整合后的结果,不暴露无意义的模型间中间对话。

## 精确调用命令

``bash
# Claude:编码、调试、代码审查(使用 Claude Code 已登录账号)
claude -p "<自包含任务>" --model sonnet --max-turns 20 --no-session-persistence

# GPT:头脑风暴、业务分析、技术方案(默认性价比档)
hermes -z "<自包含任务>" --provider openai-codex -m gpt-5.6-terra

# DeepSeek:快速、简单、重复性任务(低成本档)
hermes -z "<自包含任务>" --provider deepseek -m deepseek-v4-flash
``

Claude 编码任务必须设置正确的项目工作目录。Claude Pro/Max 订阅只能通过 Claude Code 的 `claude -p` OAuth 登录通道使用,不能作为 Hermes `anthropic` Provider 的 API 额度。若 `claude auth status` 中 `subscriptionType` 为空,或返回余额不足,执行 `claude auth logout` 后重新运行 `claude auth login`,并在浏览器中登录拥有 Pro/Max 订阅的同一账号。确认环境中没有 `ANTHROPIC_API_KEY`,否则 Claude Code 会优先走按量 API 计费而非订阅额度。

只有 `claude -p` 命令真实成功才可把结果视为 Claude 输出。子任务需要操作项目文件时,在项目工作目录执行命令,并明确要求其完成后运行验证。禁止子 Agent 再次委派模型,避免递归路由。

## 质量升级条件

- GPT Terra 无法解决、涉及高风险架构决策或需要最深推理时,升级到 `gpt-5.6-sol`;不要默认使用 Sol。
- Claude Sonnet 在核心资金逻辑、安全关键变更或两次修复仍失败时,升级到 `opus`,并设置预算上限;普通编码不要使用 Opus。
- DeepSeek V4 Flash 输出不满足格式或任务明显需要深度推理时,升级到 `deepseek-v4-pro`;不要为机械任务使用 Pro。

## 三模型协作

仅当任务确实横跨多个领域时启用,避免为简单任务增加延迟和费用:

1. GPT:拆解需求、分析业务、给出方案与验收标准。
2. Claude:根据已确认方案实现或审查代码,并运行相关测试。
3. DeepSeek:处理机械整理、清单、格式转换或快速复核。
4. 当前 Agent:汇总三方结果、解决冲突,并对最终产物做真实验证。

相互独立的子任务可并行执行;存在依赖时必须按 GPT → Claude → DeepSeek/当前 Agent 验证的顺序执行。

## 边界与降级

- Skill 不能直接改变正在运行的当前模型;不要声称已经热切换。
- 目标 Provider 未配置、模型不可用或调用失败时,先报告真实错误,再由当前模型继续完成;禁止伪造目标模型输出。
- 不要只因出现“代码”一词就路由 Claude;如果用户只是讨论代码策略且交付物是方案,路由 GPT。
- 不要把复杂技术方案误判为“快速任务”。
- 不要在子任务 Prompt 中传递 API Key、Token、生产连接串或真实 PII。

## 验证清单

- [ ] 每个请求开始时已选择一个主路由
- [ ] 混合任务已按产出物拆分
- [ ] 非当前模型任务通过对应 Provider 和模型真实执行
- [ ] 没有递归委派或泄露敏感信息
- [ ] 代码已测试,方案已覆盖约束,最终结果已由当前 Agent核验

为了让每个新会话都强制加载该 Skill,我还在 ~/.hermes/SOUL.md 中增加了加载要求。修改 Skill 后,可以执行:

/reload-skills
/reset

Gateway 环境需要重启:

hermes gateway restart

使用前需要准备什么

Claude

安装并登录 Claude Code:

claude auth login
claude auth status

Claude Pro/Max 会员要走 claude.ai OAuth。不要设置 ANTHROPIC_API_KEY,否则 Claude Code 会优先使用按量付费 API,而不是会员额度。

OpenAI Codex

通过 Hermes 添加 OpenAI Codex OAuth:

hermes auth add openai-codex

DeepSeek

在 Hermes 的凭证配置中添加 DEEPSEEK_API_KEY,不要把 Key 写进 Skill、项目文件或代码仓库。

最后检查:

hermes auth list
hermes skills list
hermes config check

必须接受的边界

这套路由不是免费的魔法。它有几个明确限制:

  • Skill 本身不能热切换当前会话模型,只能直接执行或创建指定模型的子任务。
  • 子任务需要足够的上下文,但上下文越多,调用成本越高。
  • Claude Pro、Codex 和 DeepSeek 各自有独立的额度、认证和故障模式。
  • 模型返回“成功”不代表工作真的完成。代码仍需测试,方案仍需人工或主 Agent 审查。
  • 三模型协作会增加调用次数,只应该用于值得拆分的复杂任务。

我更看重这套方案的可控性。每个模型做什么、什么时候升级、结果如何验证,都写在同一个 Skill 里。模型可以更新,Provider 可以替换,但分工和验收规则不会随着某个聊天窗口消失。

参考链接

Hermes Agent 安装指南:命令行 + 桌面版完整教程

banner.png

什么是 Hermes Agent?

Hermes Agent 是由 Nous Research 开发的开源 AI 智能体框架(MIT 许可证)。它不是简单的聊天机器人或 IDE 插件,而是一个真正自主的 Agent——可以在终端、桌面应用、Telegram/微信等 20+ 消息平台运行,具备持久记忆、技能自学习和任务委派能力。

它的核心特性:

  • 🧠 自进化——会从使用中学习,自动创建和改进技能
  • 💬 20+ 消息平台——Telegram、Discord、微信、钉钉、飞书等
  • 🔧 60+ 内置工具——文件操作、网页浏览、代码执行、浏览器自动化
  • 💾 跨会话记忆——记住你的偏好和历史
  • 🤖 多模型支持——DeepSeek、Claude、OpenAI、本地模型自由切换
  • 📦 子 Agent 委派——并行处理复杂任务

安装前提

唯一的硬性要求是 git,其余依赖(Python 3.11、Node.js、ripgrep、ffmpeg)安装器会自动处理。

操作系统额外前提检查命令
macOS无需额外git --version
Linuxcurl + xz-utilssudo apt install curl xz-utils build-essential
WindowsGit for Windowsgit --version
AndroidTermuxpkg install git
💡 桌面版额外需要g++(macOS 自带 Xcode Command Line Tools;Linux: sudo apt install build-essential

方式一:桌面版安装(推荐新手)

桌面版包含图形界面 + 命令行一体,安装后两者都能用。

macOS / Windows

  1. 访问 Hermes Agent 官网,点击 Download 按钮下载对应平台的安装包
  2. macOS:打开 .dmg 拖入 Applications;Windows:运行 .exe 安装器

Hermes Agent 官网首页 — 下载入口和安装命令

Hermes Agent 官网首页,提供一键安装脚本、macOS/Windows 下载按钮

  1. 首次启动会自动打开终端设置向导,或运行:
hermes setup --portal    # 用 Nous Portal 一键配置(推荐)
hermes                   # 开始聊天!

安装器自动完成的内容

不论哪个平台,桌面安装器都会自动帮你设置好:

  • ✅ uv(快速 Python 包管理器)
  • ✅ Python 3.11(安装到用户目录,不需要 sudo)
  • ✅ Node.js v22(浏览器自动化和 WhatsApp 网桥用)
  • ✅ ripgrep(快速文件搜索)
  • ✅ ffmpeg(音频格式转换,TTS 用)
  • hermes 命令加入 PATH

方式二:命令行安装(纯 CLI)

如果你只需要终端中使用,或者要在服务器/VPS 上部署,用安装脚本更轻量。

Linux / macOS / WSL2 / Android (Termux)

一行命令搞定:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

安装器会自动检测缺失的依赖并下载,无需手动安装 Python、Node.js 等。

Windows (PowerShell)

iex (irm https://hermes-agent.nousresearch.com/install.ps1)

官方安装文档

Hermes 官方安装文档 — 可见安装命令和步骤说明

官方文档安装页面,包含 curl 命令、PowerShell 命令、安装器说明

完成后重载 shell:

source ~/.bashrc    # 或 source ~/.zshrc

文件结构

安装后,文件和配置的位置如下:

类型普通用户安装root 安装
代码目录~/.hermes/hermes-agent//usr/local/lib/hermes-agent/
可执行文件~/.local/bin/hermes (符号链接)/usr/local/bin/hermes
数据目录~/.hermes//root/.hermes/$HERMES_HOME

配置模型提供方

安装后,最关键的一步是选择 LLM 模型。

最快路径:Nous Portal(推荐)

hermes setup --portal

一次订阅覆盖 300+ 个模型 + Tool Gateway(网页搜索、图片生成、TTS、云浏览器),无需分别配置 API Key。

手动配置独立 Provider

hermes model

这个交互式命令会带你选择 Provider:

Provider认证方式
Anthropic (Claude)API Key 或 OAuth
OpenAIOPENAI_API_KEY
DeepSeekDEEPSEEK_API_KEY
OpenRouterOpenRouter API Key(聚合多模型)
Google GeminiGOOGLE_API_KEY
xAI (Grok)XAI_API_KEY
本地模型自定义 endpoint + ollama/LM Studio
💡 个人推荐:日常用 DeepSeek(便宜够用),写代码切 Claude,头脑风暴切 GPT-4o。Hermes 的 /model 命令可以随时切换,还可以通过自定义 Skill 实现自动根据任务类型切换模型

验证安装

运行以下命令确认一切正常:

# 1. 查看版本
hermes --version

# 2. 运行健康检查
hermes doctor

# 3. 开始聊天
hermes

看到 Hermes 的响应,安装就成功了!


进阶:几个值得立刻尝试的功能

GitHub 仓库

Hermes Agent GitHub 仓库 — 218k Stars 的开源项目

Hermes Agent GitHub 仓库,218k Stars,MIT 协议开源

消息平台接入

把 Hermes 接上你日常用的聊天软件:

hermes gateway setup     # 交互式配置平台
hermes gateway run       # 启动网关

支持 Telegram、Discord、Slack、WhatsApp、Signal、微信、钉钉、飞书、企业微信等 20+ 平台。

加载 Skills(技能)

Skills 是 Hermes 自学的"秘籍",加载后 Agent 行为会优化:

hermes -s model-router   # 自动根据任务类型切换模型

定时任务

hermes cron create "每天早9点" --prompt "给我一份今日AI行业简报"

子 Agent 并行工作

在聊天中直接委派多个任务:

"帮我同时调研 WebAssembly、RISC-V 和量子计算的最新进展"

Hermes 会自动创建 3 个子 Agent 并行工作,汇总结果。


常见问题

Q: 安装后 hermes 命令找不到?

# 重新加载 shell
source ~/.bashrc
# 或手动添加 PATH
export PATH="$HOME/.local/bin:$PATH"

Q: 桌面版和命令行版有什么区别?

桌面版 = 图形界面 + 命令行。纯 CLI 安装只有命令行。无论是哪种方式安装,hermes 命令功能完全一致。

Q: 能同时配置多个模型吗?

可以!一个配置文件里同时配好多个 Provider,在聊天的任何时候用 /model 切换:

/model deepseek/deepseek-chat        # 切到 DeepSeek
/model anthropic/claude-sonnet-4     # 切到 Claude
/model openai/gpt-4o                 # 切到 OpenAI

Q: 如何更新?

hermes update

Q: 能装在 Android 手机上吗?

可以!通过 Termux 安装 CLI 版本:

pkg update && pkg install git
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

或者把 Hermes 运行在服务器上,手机通过 Telegram/微信与其对话。


总结

安装方式适合场景包含桌面端?
桌面安装器macOS / Windows 新手
CLI 脚本Linux 服务器、开发者、VPS
TermuxAndroid 手机
Nix FlakeNixOS 用户可选

不管选哪种方式,从安装到第一次对话,全程不超过 2 分钟


资源链接

">