- Three-tier routing: light (router answers directly ~3s), medium (qwen3:4b + tools ~60s), complex (/think prefix → qwen3:8b + subagents ~140s) - Router: qwen2.5:1.5b, temp=0, regex pre-classifier + raw-text LLM classify - VRAMManager: explicit flush/poll/prewarm to prevent Ollama CPU-spill bug - agent_factory: build_medium_agent and build_complex_agent using deepagents (TodoListMiddleware + SubAgentMiddleware with research/memory subagents) - Fix: split Telegram replies >4000 chars into multiple messages - Benchmark: 30 questions (easy/medium/hard) — 10/10/10 verified passing easy→light, medium→medium, hard→complex with VRAM flush confirmed Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
44 lines
1.2 KiB
YAML
44 lines
1.2 KiB
YAML
services:
|
|
deepagents:
|
|
build: .
|
|
container_name: deepagents
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- PYTHONUNBUFFERED=1
|
|
- OLLAMA_BASE_URL=http://host.docker.internal:11436
|
|
- DEEPAGENTS_MODEL=qwen3:4b
|
|
- DEEPAGENTS_COMPLEX_MODEL=qwen3:8b
|
|
- DEEPAGENTS_ROUTER_MODEL=qwen2.5:1.5b
|
|
- SEARXNG_URL=http://host.docker.internal:11437
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
depends_on:
|
|
- openmemory
|
|
- grammy
|
|
restart: unless-stopped
|
|
|
|
openmemory:
|
|
build: ./openmemory
|
|
container_name: openmemory
|
|
ports:
|
|
- "8765:8765"
|
|
environment:
|
|
# Extraction LLM (qwen2.5:1.5b) runs on GPU after reply — fast 2-5s extraction
|
|
- OLLAMA_GPU_URL=http://host.docker.internal:11436
|
|
# Embedding (nomic-embed-text) runs on CPU — fast enough for search (50-150ms)
|
|
- OLLAMA_CPU_URL=http://host.docker.internal:11435
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
restart: unless-stopped
|
|
|
|
grammy:
|
|
build: ./grammy
|
|
container_name: grammy
|
|
ports:
|
|
- "3001:3001"
|
|
environment:
|
|
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
|
|
- DEEPAGENTS_URL=http://deepagents:8000
|
|
restart: unless-stopped
|