Files

64 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: hermes-mixed-model-delegation
description: "Настройка смешанной модели: главный агент на облачном LLM, подзадачи (delegate_task) на локальной модели через Ollama."
version: 1.0.0
author: Agent
---
# Hermes Mixed Model Delegation
## Когда использовать
Когда главный агент использует мощную облачную модель (DeepSeek, Claude, GPT), а подзадачи (код, анализ, проверка) можно отдать локальной модели через Ollama. Это экономит API-затраты на подзадачи и использует локальную модель для изолированных заданий.
## Конфигурация
В `~/.hermes/config.yaml`:
```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-й секунде.