Files

3.8 KiB
Raw Permalink Blame History

name, description, version, author
name description version author
hermes-mixed-model-delegation Настройка смешанной модели: главный агент на облачном LLM, подзадачи (delegate_task) на локальной модели через Ollama. 1.0.0 Agent

Hermes Mixed Model Delegation

Когда использовать

Когда главный агент использует мощную облачную модель (DeepSeek, Claude, GPT), а подзадачи (код, анализ, проверка) можно отдать локальной модели через Ollama. Это экономит API-затраты на подзадачи и использует локальную модель для изолированных заданий.

Конфигурация

В ~/.hermes/config.yaml:

# Основная модель — облачная
model:
  default: deepseek/deepseek-v4-flash
  provider: custom  # или openai, openrouter, anthropic
  base_url: https://polza.ai/api/v1
  api_key: <ключ>
  context_length: 131072

# Delegation — локальная модель через Ollama
delegation:
  model: qwen3:8b            # любая модель из ollama pull
  provider: openai           # Ollama совместим с OpenAI API
  base_url: http://localhost:11434/v1
  api_key: ollama             # произвольный non-empty string
  max_iterations: 50
  child_timeout_seconds: 600
  max_concurrent_children: 3

Важные моменты

  • Delegation нельзя менять через /model — настройки delegation читаются при старте сессии.
  • После изменения delegation config → /reset (новая сессия).
  • Ollama должна быть доступна — проверка: curl http://localhost:11434/api/tags
  • Модель должна быть загружена — ollama pull qwen3:8b
  • context_length в main model можно ставить по максимуму провайдера (DeepSeek v4 Flash → 1M токенов), фактический лимит сессии Hermes настраивается отдельно через compression.threshold и не жжёт токены пока не заполнится.

Проверка что работает

После /reset:

delegate_task(
  goal="Напиши 'Работает!' одним словом. Назови свою модель.",
  context="Тестовый запуск."
)

В результате model в ответе subagent должна показать локальную модель, а не основную.

Pitfalls

  • Если delegation.model пуст ('') — subagent использует ту же модель что и main (бесполезно при mixed). Убедись что поля заполнены.
  • Ollama в Docker — порт localhost:11434 должен быть доступен из хоста (docker run -p 11434:11434 ...).
  • GGUF context limit — у Qwen3 8B моделей в GGUF жёсткий лимит ~40K токенов, num_ctx в Modelfile не расширяет его.
  • Таймаут при последовательных файловых операциях — если делегированная задача включает несколько шагов (rm -rf десятков папок + rsync + архивация), subagent может не уложиться в child_timeout_seconds (600s по умолчанию). Разбивай на мелкие задачи: по одной папке на делегацию, по 5-10 писем на архивацию. Лучше 3 быстрых делегации, чем одна, которая упадёт по таймауту на 599-й секунде.