Hermes Agent
Hermes Agent (от Nous Research) — персональный AI-агент, работающий через CLI, TUI, десктопное приложение и ~20 мессенджеров (Telegram, Discord, Slack и др.). Поддерживает любой OpenAI-совместимый эндпоинт через custom providers, поэтому с rout.my работает из коробки.
Быстрая настройка (интерактивно)
Самый простой путь — встроенный визард:
hermes modelВыбери "Custom endpoint" и введи:
| Поле | Значение |
|---|---|
| Base URL | https://api.rout.my/v1 |
| API key | твой sk_... ключ из дашборда |
| Model | любой ID из /v1/models, например anthropic/claude-fable-5 |
Hermes сохранит эндпоинт в ~/.hermes/config.yaml, настройка переживает перезапуски.
Ручная настройка
Либо отредактируй ~/.hermes/config.yaml напрямую:
model:
default: anthropic/claude-fable-5
provider: custom:rout.my
base_url: https://api.rout.my/v1
custom_providers:
- name: rout.my
base_url: https://api.rout.my/v1
api_key: ***
model: anthropic/claude-fable-5
prompt_caching: true # см. предупреждение ниже — не пропускай
models:
anthropic/claude-fable-5:
context_length: 200000
openai/gpt-5.5:
context_length: 128000Запуск сессии:
hermes chatВАЖНО — включи кэширование промптов (экономия ~75% на input-токенах)
По умолчанию Hermes отправляет Anthropic-брейкпоинты cache_control только известным ему провайдерам (OpenRouter, Nous Portal, нативный Anthropic). Для кастомного эндпоинта он не шлёт ничего — а без явных брейкпоинтов от клиента наша умная система кэширования вынуждена угадывать, где ставить якоря, что заметно менее эффективно для агентских нагрузок с огромными выводами инструментов.
rout.my полностью поддерживает Anthropic-разметку cache_control в OpenAI-формате для Claude-моделей, передаёт её как есть (клиентские маркеры всегда приоритетнее нашей автоматики) и тарифицирует чтение кэша по 0.1×.
Как включить — один из двух способов:
Флаг в конфиге (если твоя сборка Hermes его поддерживает): добавь
prompt_caching: trueв запись rout.my вcustom_providers, как в примере выше. Проверь после старта сессии: в usage должны растиcached_tokensот хода к ходу.Попроси агента настроить это самому. Hermes умеет патчить собственную provider policy. Вставь это в сессию Hermes:
Enable Anthropic prompt caching for my custom provider
rout.my(base_urlhttps://api.rout.my/v1). Findanthropic_prompt_cache_policyinagent/agent_runtime_helpers.pyand make it return(True, False)(envelope cache_control layout, same as the OpenRouter path) when the active provider is this custom endpoint and the model name contains "claude". The endpoint accepts Anthropic-stylecache_controlbreakpoints on the OpenAI-compatible wire and serves real cache hits. After the change, verify that responses report non-zerocached_tokensin usage on the second turn of a conversation.
В обоих случаях проверить можно в дашборде: открой лог запросов и посмотри колонку cache_read — после первых пары ходов она должна расти вместе с размером контекста, а не стоять на месте.
Какие модели брать
Работает всё из /v1/models. Рекомендации для агентских нагрузок:
| Роль | Модель | Почему |
|---|---|---|
| Основная | anthropic/claude-fable-5 | сильнейший tool-calling, 200K контекст, кэширование |
| Бюджетная | z-ai/glm-5.2 | дёшево, быстро, хороший tool use |
| Длинный контекст | google/gemini-3.1-pro-preview | 1M контекст |
Проверка ключа
curl https://api.rout.my/v1/chat/completions \
-H "Authorization: Bearer *** \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-fable-5",
"messages": [{ "role": "user", "content": "Привет!" }]
}'Заметки
- Hermes специально держит префикс диалога байт-в-байт стабильным ради кэширования — в паре с
prompt_caching: trueдлинные агентские сессии дешевеют кратно. - Указывай
context_lengthдля каждой модели вmodels:(как в примере), чтобы компрессор контекста Hermes работал с правильным окном, а не с консервативным дефолтом. - Кэширование промптов относится к моделям
anthropic/*. Для остальных семейств rout.my применяет своё умное кэширование автоматически, где апстрим его поддерживает (DeepSeek, Qwen, implicit caching у Gemini) — от клиента ничего не требуется.