mirror of
https://gitverse.ru/kpa39l/hermes-auxiliary-local-models.git
synced 2026-09-29 10:05:02 +00:00
5.7 KiB
5.7 KiB
name, description, version, author
| name | description | version | author |
|---|---|---|---|
| hermes-auxiliary-local-models | Use when routing Hermes auxiliary tasks to local Ollama. | 1.0.0 | Agent |
Hermes Auxiliary Local Models
Когда использовать
Когда main-модель Hermes облачная (polza.ai, DeepSeek, Claude, ...), а auxiliary-задачи
(vision/анализ картинок, web_extract, title_generation, session_search, compression)
хочется переложить на локальную Ollama-модель: экономия облачных токенов, приватность
(картинки не уходят в облако), скорость. Компаньон скилла hermes-mixed-model-delegation
(тот про delegate_task/subagents, этот про auxiliary).
Как устроен auxiliary в Hermes (факты из agent/auxiliary_client.py)
- Раздел конфига:
auxiliary.<task>.provider/model/base_url/api_keyв config.yaml. provider: auto= цепочка: (1) main-провайдер, (2) OpenRouter, (3) Nous Portal, (4) custom endpoint, (5) Anthropic, (6) прямые провайдеры. Для vision отдельная цепочка.- Только
compressionимеет жёсткий минимум контекста:MINIMUM_CONTEXT_LENGTH = 64_000(agent/model_metadata.py). Остальные задачи (vision, title, web_extract, session_search) — без флора, могут работать на малом контексте. - Для локальной Ollama:
provider: custom+base_url: http://localhost:11434/v1+api_key: ollama(любая непустая строка). Hermes зарезолвит OpenAI-совместимый клиент. - Vision-поддержку локальной модели Hermes определяет через
query_ollama_supports_vision(полеcapabilitiesв/api/show).
Конфигурация (проверенный пример: vision на qwen3-vl:8b)
hermes config set auxiliary.vision.provider custom
hermes config set auxiliary.vision.model qwen3-vl:8b
hermes config set auxiliary.vision.base_url http://localhost:11434/v1
hermes config set auxiliary.vision.api_key ollama
Остальные auxiliary оставить auto (уходят на облачный main-провайдер). Изменения вступают
в силу после /reset (новой сессии).
Подбор модели под VRAM
- 16 GB (RTX 5060 Ti, 14 GB free): qwen3-vl:8b ≈ 7.2 GB при ctx 4096/8192. Плюс bge-m3 (эмбеддинги) ≈ 1.2 GB. Итого ~8.5 GB, остаётся ~7 GB запаса.
- qwen3:8b (текст) ≈ 5.2 GB, но GGUF-контекст 40960 < 64K флора compression — текстовые aux можно, compression НЕТ (оставить на облаке).
- Всегда проверяй реальный GGUF-контекст:
/api/show→model_info.*.context_length(имена тегов "-64k"/"-65k" часто лгут).
Проверка vision E2E (без UI)
- Прямой тест Ollama
/api/chatс картинкой (base64) +options: {num_ctx: 8192}. - OpenAI-совместимый путь
/v1/chat/completionsсimage_url: data:image/png;base64,...— именно его использует Hermes. - Резолв из Python (сигнатура важна:
explicit_base_url/explicit_api_key, НЕ base_url/api_key):
from agent.auxiliary_client import _resolve_task_provider_model, resolve_provider_client
provider, model, base_url, api_key, api_mode = _resolve_task_provider_model(task="vision")
client, resolved = resolve_provider_client(provider=provider, model=model,
explicit_base_url=base_url, explicit_api_key=api_key, is_vision=True, task="vision")
Pitfalls
- Тестовая картинка должна быть ≥ 32×32 px. Qwen3-VL image processor в Ollama падает
с panic
height:1 or width:1 must be larger than factor:32на картинках меньше 32 px — это выглядит как 500/EOF runner, но это баг размера картинки, а не конфигурации. - GGUF-контекст qwen3-vl:8b = 262144 — KV cache при полном контексте ~309 GB, физически
не влезает. Ollama по умолчанию грузит с num_ctx 4096 (нормально); для запросов можно
задавать
options: {num_ctx: 8192}. Не доверяй GGUF-контексту при планировании VRAM. hermes chat --provider customв CLI может не подхватить ключ — это не показатель поломки: auxiliary резолвится из config.yaml напрямую. Проверяй через Python-резолвер (см. выше), а не через CLI-запуск.- Пустой content при vision-ответе — если картинка слишком мала/простая, content может
быть пустым при
finish_reason: stop(reasoning ушёл вreasoning/reasoning_content). Перепроверь на картинке 256×256. - Модель держится в VRAM (~7-10 мин keep_alive по умолчанию), потом выгружается. Освободить
принудительно:
docker exec ollama ollama stop qwen3-vl:8b. - Ollama в Docker: CLI-команды через
docker exec ollama ollama ....
Откат
hermes config set auxiliary.vision.provider auto
hermes config set auxiliary.vision.model ""
docker exec ollama ollama stop qwen3-vl:8b
Подробный разбор сессии с транскриптом ошибок: references/qwen3-vl-ollama-setup.md.