Загрузка данных


# Контекст диалога: OpenClaw AI и локальный инференс на Single GPU

## Основная тема обсуждения
Обсуждение архитектуры OpenClaw AI с фокусом на работу с локальным бэкендом на одной видеокарте (Single GPU), включая управление агентами, субагентами, очередями и оптимизацию использования видеопамяти (VRAM).

---

## Ключевые технические выводы

### 1. Архитектура агентов и субагентов
**Агенты (Main Agents):**
- Первичные сущности, взаимодействующие с пользователями через мессенджеры
- Имеют полный доступ к инструментам и файлам личности (`SOUL.md`, `IDENTITY.md`, `USER.md`, `MEMORY.md`)
- Управляют сессиями и координируют выполнение задач

**Субагенты (Sub-agents):**
- Фоновые исполнители, порождаемые родительским агентом
- **Не имеют собственных файлов личности** — загружают только `AGENTS.md` и `TOOLS.md`
- Работают в изолированных сессиях (`agent:<agentId>:subagent:<uuid>`)
- Наследуют контекст и память родителя
- Не имеют доступа к инструментам отправки сообщений (безопасность)
- По умолчанию не могут создавать своих субагентов (`maxSpawnDepth: 1`)

### 2. Управление ресурсами на Single GPU
**Критические ограничения:**
- Видеокарта — «узкое горлышко» системы
- Веса модели загружаются в VRAM один раз и являются общими
- KV-кэш потребляет значительный объем VRAM
- Параметры `batch-size` и `ubatch-size` относятся к параллелизму на уровне токенов, а не к количеству одновременных агентов

**Механизмы диспетчеризации:**
- Централизованная очередь задач (Task Queue)
- Динамический батчинг (Continuous Batching) — объединение запросов от разных агентов в единый пакет для максимизации утилизации GPU
- Приоритизация: синхронные запросы (высокий приоритет) vs фоновые задачи (низкий приоритет)

### 3. Управление памятью и контекстом
**KV-кэш и его особенности:**
- Параметр `n_ctx` в современных серверах (`llama-server`, `vLLM`) задает **общий пул памяти** для всех агентов, а не жесткую бронь для каждого
- Память выделяется динамически по мере поступления запросов
- Если VRAM исчерпана, новые запросы встают в очередь

**Контекст не может превысить лимит:**
- `n_ctx` — жесткий лимит на сумму токенов промпта + генерации
- При превышении происходит обрезка (truncation) или ошибка
- Алгоритмы экстраполяции (YaRN, NTK-aware RoPE) позволяют «растянуть» контекст, но требуют предварительной настройки

### 4. Параметр `max_tokens`
- Задает лимит на количество токенов в ответе модели
- Формула: `n_ctx = токены промпта + max_tokens`
- Влияет на время жизни запроса на GPU (авторегрессивная генерация)
- Должен быть дифференцирован для разных агентов:
  - Главный агент: 1024–2048 токенов
  - Субагенты: 10–300 токенов (в зависимости от задачи)
- Рекомендуется использовать стоп-слова для раннего прерывания генерации

### 5. Оптимальная конфигурация для Single GPU

**Бэкенд инференса (`llama-server` / `llama.cpp`):**
- Квантование: `Q4_K_M` или `Q5_K_M`
- Параллелизм слотов (`--slots` / `n_parallel`): 4–8 (зависит от VRAM)
- Глобальный контекст (`--ctx-size`): 32k–64k (общий пул KV-кэша)
- Batch-size: 512, ubatch-size: 512–2048
- Полный оффлоад слоев в VRAM (`-ngl 99`)

**Агенты в OpenClaw AI:**

*Главный агент:*
- Все файлы личности загружены
- Контекст: 16k–32k токенов
- `max_tokens`: 1024–2048
- Стриминг включен

*Субагенты:*
- Только `AGENTS.md` и `TOOLS.md`
- Контекст: 4k–8k токенов
- `max_tokens`: 128–512 (под конкретную задачу)
- `maxSpawnDepth`: 1

*Независимые агенты (Multi-agent routing):*
- Собственные файлы личности и изолированная память
- Контекст: 8k–16k токенов на агента
- `max_tokens`: до 1024

### 6. Пример расчета для GPU 24GB (RTX 3090/4090)
- Модель 8B (Q4_K_M): ~5.5 GB VRAM
- 1 Главный агент (32k контекст): ~4 GB VRAM под KV-кэш
- 3 Субагента (8k каждый): ~3 GB VRAM под KV-кэш
- Итого: ~12.5 GB использовано, ~11.5 GB запас для батчинга

---

## Документация и поисковые запросы

### Официальная документация OpenClaw AI
**Поисковые запросы:**
- `OpenClaw AI agents subagents documentation`
- `OpenClaw AI multi-agent routing`
- `OpenClaw AI configuration files SOUL.md AGENTS.md`
- `OpenClaw AI subagent spawn depth`
- `OpenClaw AI workspace isolation`

### Документация по локальному инференсу
**llama.cpp / llama-server:**
- `llama.cpp server API documentation`
- `llama-server n_ctx n_parallel slots`
- `llama.cpp continuous batching`
- `llama.cpp KV cache management`
- `llama.cpp context extension YaRN NTK RoPE`

**vLLM (альтернативный движок):**
- `vLLM continuous batching documentation`
- `vLLM PagedAttention KV cache`
- `vLLM multi-request handling`

**TensorRT-LLM (NVIDIA):**
- `TensorRT-LLM in-flight batching`
- `TensorRT-LLM KV cache reuse`

### Технические статьи и руководства
**Поисковые запросы:**
- `LLM inference optimization single GPU`
- `KV cache offloading VRAM management`
- `Dynamic batching LLM inference`
- `Context window management multi-agent systems`
- `VRAM calculation LLM deployment`
- `llama.cpp server production deployment`

### Ключевые параметры для изучения
**llama.cpp:**
- `-c, --ctx-size` — размер контекста
- `-np, --parallel` — количество параллельных сессий
- `-b, --batch-size` — размер батча для обработки промпта
- `-ub, --ubatch-size` — физический размер блока батча
- `-ngl` — количество слоев для оффлоада в GPU

**OpenClaw AI:**
- `maxSpawnDepth` — максимальная глубина вложенности субагентов
- `n_ctx` — лимит контекста для агента
- `max_tokens` — лимит генерации
- `isolated` vs `fork` режимы сессий

---

## Дополнительные темы для изучения
1. **RAG (Retrieval-Augmented Generation)** — интеграция векторных баз данных для работы с большими объемами данных без перегрузки контекста
2. **Model Quantization** — глубокое изучение квантования (GGUF, GPTQ, AWQ) для оптимизации VRAM
3. **Speculative Decoding** — ускорение инференса через использование маленькой модели для предсказания токенов
4. **Flash Attention** — оптимизация механизма внимания для снижения потребления памяти
5. **Multi-GPU deployment** — стратегии распределения нагрузки при наличии нескольких видеокарт (Tensor Parallelism, Pipeline Parallelism)

---

## Резюме для продолжения обсуждения
Обсуждение сфокусировано на оптимизации работы OpenClaw AI в условиях ограниченных локальных ресурсов (одна видеокарта). Ключевые принципы:
- Дифференцированный подход к конфигурации агентов (главный vs субагенты)
- Понимание разницы между управлением памятью (KV-кэш) и вычислениями (батчинг)
- Жесткий контроль `max_tokens` для субагентов
- Использование `n_ctx` как общего пула памяти, а не суммы лимитов
- Приоритизация задач и управление очередями

Для дальнейшего обсуждения рекомендуются темы: конкретные сценарии использования, настройка RAG, оптимизация под конкретные модели, troubleshooting типичных проблем (OOM, медленная генерация, ошибки контекста).