Hermes Agent: 模型配置
最后更新:2026-08-31
模型配置就像选发动机——不同任务用不同引擎,简单问题用省油的,复杂推理用大马力的,Hermes 都能灵活切换。
💡 提示:Hermes 支持模型路由策略,可以根据任务复杂度自动选择最合适的模型,在质量和成本之间取得最佳平衡。
📋 前置知识:第3课 配置文件
1. 你将学到
| 编号 | 内容 |
|---|---|
| ❶ | 支持的模型提供商 |
| ❷ | models.yaml 配置详解 |
| ❸ | 本地模型接入(Ollama/vLLM) |
| ❹ | 模型路由策略 |
| ❺ | 成本优化技巧 |
2. 故事
(1) 痛点:GPT-4 太贵,小模型太弱
Bob 用 GPT-4 处理所有任务,每月 API 费用 200+ USD。但 80% 的任务其实用 GPT-4o-mini 就够了。而 Alice 用模型路由,简单任务自动用小模型,复杂推理才用大模型,费用降到 40 USD。
(2) 解法:智能模型路由
YAML
# Alice 的模型路由配置
routing:
simple_tasks: "gpt-4o-mini" # 简单问答、翻译
medium_tasks: "gpt-4o" # 代码生成、分析
complex_tasks: "gpt-4o" # 复杂推理、规划
code_execution: "claude-3.5-sonnet" # 代码专用
fallback: "llama3.2" # 离线备用
3. 支持的模型提供商
| 提供商 | 模型示例 | 配置方式 |
|---|---|---|
| OpenAI | gpt-4o, gpt-4o-mini, o1 | OPENAI_API_KEY |
| Anthropic | claude-3.5-sonnet, claude-3-haiku | ANTHROPIC_API_KEY |
| gemini-2.0-flash, gemini-pro | GOOGLE_API_KEY |
|
| Mistral | mistral-large, mistral-small | MISTRAL_API_KEY |
| Ollama (本地) | llama3.2, qwen2.5, deepseek | 本地服务 |
| vLLM (本地) | 任何 HuggingFace 模型 | 本地服务 |
| OpenRouter | 200+ 模型统一接口 | OPENROUTER_API_KEY |
4. models.yaml 配置详解
YAML
# ~/.hermes/models.yaml
# ===== 模型提供商配置 =====
providers:
openai:
api_key: "${OPENAI_API_KEY}"
base_url: "https://api.openai.com/v1"
organization: null
rate_limit: 100 # RPM
anthropic:
api_key: "${ANTHROPIC_API_KEY}"
base_url: "https://api.anthropic.com"
ollama:
base_url: "http://localhost:11434"
timeout: 120
openrouter:
api_key: "${OPENROUTER_API_KEY}"
base_url: "https://openrouter.ai/api/v1"
# ===== 模型定义 =====
models:
gpt-4o:
provider: openai
context_window: 128000
input_cost: 2.50 # $/M tokens
output_cost: 10.00
capabilities:
- chat
- vision
- function_calling
- json_mode
gpt-4o-mini:
provider: openai
context_window: 128000
input_cost: 0.15
output_cost: 0.60
capabilities:
- chat
- function_calling
claude-3.5-sonnet:
provider: anthropic
context_window: 200000
input_cost: 3.00
output_cost: 15.00
capabilities:
- chat
- vision
- function_calling
llama3.2:
provider: ollama
context_window: 128000
input_cost: 0 # 本地免费
output_cost: 0
capabilities:
- chat
- function_calling
# ===== 路由策略 =====
routing:
strategy: "capability-based" # capability-based / cost-based / manual
rules:
- condition: "complexity < 0.3"
model: "gpt-4o-mini"
- condition: "complexity >= 0.3 and complexity < 0.7"
model: "gpt-4o"
- condition: "complexity >= 0.7"
model: "claude-3.5-sonnet"
- condition: "task_type == 'code'"
model: "claude-3.5-sonnet"
- condition: "offline == true"
model: "llama3.2"
5. 本地模型接入
(1) Ollama 集成
YAML
# 配置 Ollama
providers:
ollama:
base_url: "http://localhost:11434"
timeout: 120
models:
llama3.2:
provider: ollama
context_window: 128000
qwen2.5-coder:
provider: ollama
context_window: 128000
BASH
# 先安装并启动 Ollama
ollama pull llama3.2
ollama pull qwen2.5-coder
# Hermes 自动发现 Ollama 模型
hermes model list --provider ollama
(2) vLLM 集成
YAML
providers:
vllm:
base_url: "http://localhost:8000"
api_format: "openai" # vLLM 兼容 OpenAI API
models:
deepseek-v3:
provider: vllm
model_id: "deepseek-ai/DeepSeek-V3"
context_window: 128000
BASH
# 启动 vLLM 服务
python -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/DeepSeek-V3 \
--port 8000
6. 模型路由策略
(1) 能力路由(推荐)
根据任务类型和复杂度自动选择模型:
PYTHON
# Hermes 内部路由逻辑(简化版)
def select_model(task):
if task.requires_vision:
return "gpt-4o" # 需要视觉能力
if task.complexity < 0.3:
return "gpt-4o-mini" # 简单任务
if task.type == "code":
return "claude-3.5-sonnet" # 代码任务
return config.default_model # 默认
(2) 成本路由
在质量达标前提下,优先选择最便宜的模型:
YAML
routing:
strategy: "cost-based"
quality_threshold: 0.8 # 最低质量分
max_cost_per_request: 0.05 # 单次请求最大成本
(3) 手动指定
BASH
# 单次对话指定模型
hermes chat --model gpt-4o
# 代码模式指定
hermes chat --model claude-3.5-sonnet --mode code
# 离线模式
hermes chat --model llama3.2 --offline
7. 成本优化
(1) 成本监控
BASH
# 查看本月消耗
hermes cost report --month
# 输出示例:
# ┌──────────────┬──────────┬───────────┬─────────┐
# │ Model │ Requests │ Tokens In │ Cost │
# ├──────────────┼──────────┼───────────┼─────────┤
# │ gpt-4o-mini │ 1,200 │ 2.4M │ $2.16 │
# │ gpt-4o │ 80 │ 0.8M │ $12.00 │
# │ Total │ 1,280 │ 3.2M │ $14.16 │
# └──────────────┴──────────┴───────────┴─────────┘
(2) 优化策略
| 策略 | 节省 | 实现 |
|---|---|---|
| 模型路由 | 60-80% | 简单任务用小模型 |
| 缓存响应 | 10-20% | 相同问题不重复调用 |
| 本地模型混合 | 50-90% | 离线任务用 Ollama |
| Token 压缩 | 15-30% | 精简 System Prompt |
| 批量请求 | 5-10% | 合并小请求 |
YAML
# 成本优化配置
cost_optimization:
cache_responses: true
cache_ttl: 3600 # 1小时缓存
compress_context: true # 压缩长上下文
local_for_simple: true # 简单任务用本地模型
❓ 常见问题
Q 支持多少种模型?
A 200+ 模型,通过 OpenRouter 可访问几乎所有主流模型,加上 Ollama 本地模型无限扩展。
Q 如何同时使用多个 API Key?
A 在 models.yaml 中配置多个 provider,每个有独立的 API Key。路由策略决定用哪个。
Q 模型路由准确吗?
A 能力路由基于任务类型标签和复杂度评分,准确率约 90%。可以手动调整路由规则优化。
Q 本地模型质量够用吗?
A 8B 模型适合简单问答,70B+ 模型接近 GPT-3.5 水平。代码和推理任务建议仍用云端大模型。
Q API Key 安全吗?
A Key 存在本地 .env 文件中,不进入 config.yaml,日志自动脱敏。建议用环境变量而非硬编码。
Q 如何估算每月成本?
A
hermes cost estimate --daily-requests 50 --model gpt-4o,根据使用量预估。📖 小节
- Hermes 支持 200+ 模型,6 大提供商 + 本地模型
- models.yaml 定义模型属性、成本、能力
- 模型路由:能力路由(推荐)、成本路由、手动指定
- 本地模型通过 Ollama/vLLM 接入,零成本推理
- 成本优化:路由 + 缓存 + 本地混合,可节省 60-80%
📝 作业
- 基础题(难度⭐):配置两个模型提供商(如 OpenAI + Ollama),验证都能正常调用。
- 进阶题(难度⭐⭐):设置模型路由策略,实现简单问题用 gpt-4o-mini,复杂问题用 gpt-4o。
- 挑战题(难度⭐⭐⭐):设计一个成本最优的混合方案,约束月预算 20 USD,计算能支持多少请求。