Self-hosted AI стек: Hermes Agent, Claude Code, Codex и Obsidian в одной связке
Когда я начинал собирать свой AI-стек, в голове была картинка из рекламы: 5 агентов работают синхронно, обмениваются контекстом, автоматически деплоят.
Реальность оказалась проще и полезнее. Вот как выглядит мой стек на Minisforum MS02 (Intel Core Ultra 9, 64GB RAM, 1TB SSD), и почему он работает.
Архитектура
┌─────────────────────────────────────────────┐
│ Hermes Agent (v0.16.0) │
│ Оркестрация + Telegram-интерфейс │
│ + tools + skills + cron │
├────────────────┬────────────────────────────┤
│ Claude Code │ Codex CLI │
│ (инженерия) │ (код + поддержка) │
├────────────────┴────────────────────────────┤
│ Obsidian Vault (shared memory) │
│ 39 заметок, 7 разделов │
├─────────────────────────────────────────────┤
│ Docker контейнеры (host-bridge MCP) │
│ Cloudflare Pages + Astro (blog) │
└─────────────────────────────────────────────┘
Зачем 3 агента?
Hermes Agent — мозг и интерфейс. Telegram-чат, cron-задачи, skills, инструменты. Вся коммуникация со мной — через него.
Claude Code — инженерный агент для сложных задач. Аудит кода, сравнение реализаций, архитектурные решения.
Codex CLI — второй инженерный агент. Поддержка сервера, git-операции, мелкие фиксы.
Почему не один?
Потому что у каждого — свои сильные стороны:
- Hermes отлично держит долгий контекст и помнит всю сессию
- Claude Code лучше пишет сложный код
- Codex быстрее для простых задач
Разделение по файлам и responsibilities вместо одного “суперагента” — это и есть применение Karpathy метода.
Shared memory: Obsidian как база знаний
Самое важное решение — один Obsidian vault на всех агентов. Не три базы, не копирование контекста, а единый источник правды.
Структура:
00-inbox/— быстрые заметки10-sources/— исследования (Karpathy, Obsidian MOC)20-projects/— проекты и инциденты30-wiki/— работающее знание40-playbooks/— проверенные процедуры50-agents/— правила для каждого агента60-content/— контент-план70-seo/— SEO-стратегия80-youtube/— YouTube-аналитика90-archive/— закрытые проекты
Преимущества одного vault:
- нет рассинхронизации — Hermes, Claude и Codex видят одно и то же
- Obsidian-линки работают — можно переходить между заметками
- handoff без копирования — агент А написал playbook, агент Б прочитал
Runtime stability: Docker pinned
Все образы зафиксированы по SHA256 digest:
nousresearch/hermes-agent@sha256:c66...
ghcr.io/outsourc-e/hermes-workspace@sha256:2d2...
bronevik/agent-tools:2026-06-07
Codex CLI v0.137.0, Claude Code 2.1.167. Никаких “latest” в production.
MCP и Telegram
Изначально у меня было 3 Telegram-бота (Hermes, Claude, Codex). Я их отключил и перешёл на host-bridge MCP:
Hermes (Telegram) → host-bridge MCP → Docker контейнеры
Меньше ботов = меньше точек отказа. Вся коммуникация через один чат.
Cost tracking
Сейчас модель: deepseek-v4-flash через OpenRouter — best price/performance для агентских задач. Claude & Codex используют свои API ключи.
Я измеряю:
- cost per task
- latency per call
- retry rate
- success rate
Что НЕ входит в стек
- ❌ Локальное обучение моделей (GPU-heavy)
- ❌ Секреты в заметках
- ❌ Публичные порты для UI агентов
- ❌ “Универсальный” агент на все случаи
Итог
Multi-agent система не обязана быть сложной. Один vault, три агента с чёткими ролями, pinned образы и Karpathy-стиль — вот что работает на практике.
Следующий шаг — автогенерация контента через cron. Уже почти готово 🔥
Подписывайся на RSS, чтобы не пропустить.