Skip to main content
Glama

Hermes Brain

Оркестрация мультиагентных систем для Hermes Agent

Запускайте параллельные агенты Hermes. Дайте им общий «мозг». Выпускайте продукт одной командой.Работает на базе SQLite, координируется через Python, ноль токенов тратится на координацию.

License: MIT Python Node.js Hermes MCP

Установка · Быстрый старт · Как это работает · CLI · Инструменты · Банк памяти · Разработка


Установка

Вариант 1 — сборка из исходного кода (рекомендуется для Hermes)

curl -fsSL https://raw.githubusercontent.com/DevvGwardo/brain-mcp/main/install.sh | bash

Установщик:

  1. Собирает MCP-сервер на Node.js (brain-mcp)

  2. Устанавливает пакет оркестрации на Python (hermes-brain)

  3. Регистрирует «мозг» как MCP-сервер в Hermes

Вариант 2 — ручная установка

git clone https://github.com/DevvGwardo/brain-mcp.git
cd brain-mcp
npm install
npm run build
pip install -e .
hermes mcp add brain --command node --args "$PWD/dist/index.js"

Примечание: npm-пакет еще не опубликован, поэтому установка из репозитория является поддерживаемым способом на данный момент.

Проверка:

hermes mcp list | grep brain
hermes mcp test brain
hermes-brain --help

Предварительные требования: Python 3.10+, Node.js 18+, Hermes Agent

Делитесь с друзьями? «Мозг» каждого человека — это его собственная изолированная БД SQLite, настройка сети не требуется. Одна и та же команда работает везде.

Пользователи Docker: Запускайте агенты с параметром layout: "headless", так как панели tmux не могут отображаться в headless-контейнере:

brain_wake({ task: "...", layout: "headless" })

Быстрый старт

Одна команда для оркестрации парка агентов Hermes:

hermes-brain "Build a REST API with auth, users, and posts" \
  --agents api-routes auth-layer db-models tests

Что происходит:

  1. Python-кондуктор запускает 4 фоновых агента Hermes (hermes -q)

  2. Каждый агент заявляет права на свои файлы, публикует контракты, пишет код, отправляет сигналы пульса (heartbeats)

  3. Кондуктор запускает интеграционный шлюз — компилирует проект, направляет ошибки ответственным агентам через личные сообщения (DM)

  4. Агенты исправляют ошибки самостоятельно. Шлюз повторяет попытки до успешного результата.

  5. Выводится сводка: агенты, контракты, память, метрики, готово.

Другие способы запуска:

# Auto-named agents
hermes-brain "Add error handling to the whole codebase"

# Mix models per task
hermes-brain "Build a game" --agents engine ui store --model claude-sonnet-4-5

# Cheap model for boilerplate
hermes-brain "Generate 10 test files" --model claude-haiku-4-5

# JSON pipeline with multiple phases
hermes-brain --config pipeline.json

Или изнутри Hermes (интерактивно):

hermes> Use register, then wake to spawn 3 agents
        that each refactor a different module.

Как это работает

graph TB
    subgraph "Python Conductor"
        CLI["hermes-brain CLI"]
        ORCH["Orchestrator<br/><small>spawn · wait · gate · retry</small>"]
    end

    subgraph "Hermes Agents"
        direction LR
        H1["Agent 1<br/><small>hermes -q</small>"]
        H2["Agent 2<br/><small>hermes -q</small>"]
        H3["Agent 3<br/><small>hermes -q</small>"]
    end

    CLI --> ORCH
    ORCH -->|spawn| H1
    ORCH -->|spawn| H2
    ORCH -->|spawn| H3

    subgraph "Brain (shared SQLite)"
        DB[("brain.db")]
        PULSE["Heartbeats"]
        MX["Mutex Locks"]
        KV["Shared State"]
        CON["Contracts"]
        MEM["Memory"]
        PLAN["Task DAG"]
    end

    ORCH <--> DB
    H1 <--> DB
    H2 <--> DB
    H3 <--> DB

    subgraph "Integration Gate"
        GATE["tsc · mypy · cargo · go vet"]
        ROUTE["DM errors → agents"]
    end

    ORCH --> GATE
    GATE --> ROUTE
    ROUTE -.->|DM| H1
    ROUTE -.->|DM| H2

    style CLI fill:#9333EA,stroke:#7C3AED,color:#fff
    style ORCH fill:#9333EA,stroke:#7C3AED,color:#fff
    style H1 fill:#3B82F6,stroke:#2563EB,color:#fff
    style H2 fill:#10B981,stroke:#059669,color:#fff
    style H3 fill:#F59E0B,stroke:#D97706,color:#000
    style DB fill:#1E293B,stroke:#334155,color:#fff
    style GATE fill:#EF4444,stroke:#DC2626,color:#fff

Архитектура

На этой схеме показана внутренняя архитектура brain-mcp и взаимодействие его компонентов:

graph TB
    subgraph "External Clients"
        HERMES["Hermes CLI"]
        CLAUDE["Claude Code"]
        ANY["Any MCP Client"]
    end

    subgraph "brain-mcp (Node.js)"
        SERVER["src/index.ts<br/>MCP Request Router"]
        CONDUCTOR["brain-conductor<br/>Zero-token Orchestration CLI"]
        GATE["src/gate.ts<br/>Integration Gate"]
    end

    subgraph "pi-agent-core Runtime"
        PI_CORE["src/pi-core-agent.ts<br/>In-process Agent Runner"]
        PI_CORE_TOOLS["src/pi-core-tools.ts<br/>14 Brain Tools as AgentTools"]
        PI_AGENT["pi-agent-core Agent<br/>model + tools + events"]
    end

    subgraph "BrainDB (SQLite)"
        DB[("brain.db<br/>sessions, state, messages,<br/>claims, contracts, memory")]
    end

    HERMES & CLAUDE & ANY --> SERVER
    SERVER <--> DB
    SERVER --> CONDUCTOR
    CONDUCTOR --> PI_CORE
    PI_CORE --> PI_CORE_TOOLS
    PI_CORE --> PI_AGENT
    PI_CORE_TOOLS --> DB
    PI_AGENT -->|beforeToolCall<br/>pulse| DB
    CONDUCTOR --> GATE
    GATE -->|DM errors| CONDUCTOR

    style HERMES fill:#FF6B6B,stroke:#DC2626,color:#fff
    style CLAUDE fill:#3B82F6,stroke:#2563EB,color:#fff
    style ANY fill:#7C3AED,stroke:#6D28D9,color:#fff
    style SERVER fill:#1E293B,stroke:#334155,color:#fff
    style CONDUCTOR fill:#9333EA,stroke:#7C3AED,color:#fff
    style GATE fill:#EF4444,stroke:#DC2626,color:#fff
    style PI_CORE fill:#10B981,stroke:#059669,color:#fff
    style PI_CORE_TOOLS fill:#059669,stroke:#047857,color:#fff
    style PI_AGENT fill:#06B6D4,stroke:#0891B2,color:#fff
    style DB fill:#1E293B,stroke:#334155,color:#fff

pi-agent-core — это среда выполнения LLM-агента, которая обрабатывает цикл взаимодействия с моделью, выполнение инструментов и подписку на события. brain-mcp предоставляет уровень координации (состояние, обмен сообщениями, сигналы пульса, блокировки, контракты) в виде инструментов, которые вызывают pi-агенты. Кондуктор связывает всё это воедино с помощью фаз, шлюзов и раскладки tmux.

Координация без токенов. Кондуктор написан на чистом Python — токены LLM тратятся только на реальную работу. Сигналы пульса, заявки, контракты, шлюзы и повторные попытки выполняются локально.

Нет сервера для управления. Каждый агент открывает собственное stdio-соединение с «мозгом». Режим WAL в SQLite безопасно обрабатывает параллельный доступ.

Один «мозг» для любого CLI. Hermes, Claude Code, MiniMax — все клиенты обращаются к одной и той же БД SQLite. Смешанный парк агентов Hermes + Claude может координироваться для выполнения одной задачи.


CLI hermes-brain

hermes-brain <task> [options]

Флаг

По умолчанию

Описание

--agents <names...>

agent-1 agent-2

Имена агентов для параллельного запуска

--model <id>

claude-sonnet-4-5

Модель, передаваемая каждому агенту

--no-gate

выкл

Пропустить интеграционный шлюз

--retries <n>

3

Макс. количество повторных попыток шлюза

--timeout <seconds>

600

Тайм-аут для каждого агента

--config <file.json>

Загрузка многофазного конвейера

--db-path <path>

~/.claude/brain/brain.db

Пользовательский путь к БД «мозга»

Файл конфигурации конвейера

{
  "task": "Build a todo app",
  "model": "claude-sonnet-4-5",
  "gate": true,
  "max_gate_retries": 3,
  "phases": [
    {
      "name": "foundation",
      "parallel": true,
      "agents": [
        { "name": "types",  "files": ["src/types/"], "task": "Define all TS types" },
        { "name": "db",     "files": ["src/db/"],    "task": "Set up Prisma schema" }
      ]
    },
    {
      "name": "feature",
      "parallel": true,
      "agents": [
        { "name": "api",    "files": ["src/api/"],   "task": "REST endpoints" },
        { "name": "ui",     "files": ["src/ui/"],    "task": "React components" }
      ]
    },
    {
      "name": "quality",
      "parallel": true,
      "agents": [
        { "name": "tests",  "task": "Write unit + integration tests" }
      ]
    }
  ]
}

Фазы выполняются последовательно. Агенты внутри фазы работают параллельно. Интеграционный шлюз запускается между фазами.


Инструменты «мозга»

Более 35 инструментов в 12 категориях. Все доступны для Hermes, Claude Code и любого агента, совместимого с MCP.

Идентификация и состояние

Инструмент

Описание

brain_register

Назвать эту сессию

brain_sessions

Список активных сессий

brain_status

Показать информацию о сессии + комнате

brain_pulse

Сигнал пульса со статусом + прогрессом (возвращает ожидающие DM)

brain_agents

Состояние всех агентов в реальном времени (статус, время последнего пульса, заявки)

Обмен сообщениями

Инструмент

Описание

brain_post

Опубликовать сообщение в канале

brain_read

Прочитать сообщение из канала

brain_dm

Личное сообщение другому агенту

brain_inbox

Прочитать личные сообщения

Общее состояние и память

Инструмент

Описание

brain_set / brain_get

Эфемерное хранилище «ключ-значение»

brain_keys / brain_delete

Список / удаление ключей

brain_remember

Сохранить постоянные знания (сохраняются после brain_clear)

brain_recall

Поиск воспоминаний из предыдущих сессий

brain_forget

Удалить устаревшие воспоминания

Блокировка файлов

Инструмент

Описание

brain_claim

Заблокировать файл/ресурс (мьютекс с TTL)

brain_release

Разблокировать

brain_claims

Список активных блокировок

Контракты (предотвращение ошибок интеграции)

Инструмент

Описание

brain_contract_set

Опубликовать то, что предоставляет/ожидает ваш модуль

brain_contract_get

Прочитать контракты других агентов перед написанием кода

brain_contract_check

Проверить все контракты — выявляет несоответствия параметров, отсутствующие функции

Интеграционный шлюз

Инструмент

Описание

brain_gate

Запустить компиляцию + проверку контрактов, отправить ошибки ответственным агентам

brain_auto_gate

Запустить шлюз в цикле, ждать исправлений, повторять до успеха

Планирование задач (DAG)

Инструмент

Описание

brain_plan

Создать DAG задач с зависимостями

brain_plan_next

Получить задачи, зависимости которых выполнены

brain_plan_update

Отметить задачу как выполненную/неудачную (автоматически продвигает зависимые)

brain_plan_status

Общий прогресс

brain_workflow_compile

Преобразовать цель на естественном языке в фазы, агентов, области файлов и конфигурацию кондуктора

brain_workflow_apply

Сохранить скомпилированный рабочий процесс в состояние «мозга» + DAG задач, опционально записать JSON кондуктора

Оркестрация

Инструмент

Описание

brain_wake

Запустить нового агента (hermes, claude или headless)

brain_swarm

Запустить несколько агентов одним вызовом

brain_respawn

Заменить вышедшего из строя агента с контекстом восстановления

brain_metrics

Уровень успеха, длительность, количество ошибок на агента

Журнал контекста (предотвращает потерю отслеживания)

Инструмент

Описание

brain_context_push

Записать действие/открытие/решение/ошибку

brain_context_get

Прочитать журнал

brain_context_summary

Сжатый вид для восстановления контекста

brain_checkpoint

Сохранить полное рабочее состояние

brain_checkpoint_restore

Восстановить после сжатия контекста


Протокол пульса и контрактов

Каждый запущенный агент следует двум протоколам, которые принудительно исполняются оркестратором:

Пульс (Heartbeat) — агенты вызывают brain_pulse каждые 2-3 вызова инструментов со своим статусом и краткой заметкой о прогрессе. Кондуктор использует это для:

  • Отображения статуса в реальном времени в терминале (● working — editing src/api/routes.ts)

  • Обнаружения зависших агентов (нет пульса в течение 60с → stale)

  • Доставки ожидающих личных сообщений в качестве возвращаемых значений пульса (без лишних запросов)

Контракты — перед написанием кода агенты вызывают brain_contract_get, чтобы увидеть, что экспортируют другие агенты. После написания они публикуют свой собственный контракт с помощью brain_contract_set. Перед завершением работы brain_contract_check проверяет весь парк — выявляет:

  • Несоответствия сигнатур функций (ожидалось 2 аргумента, получено 3)

  • Отсутствующие экспорты (агент А импортирует getUser, но агент Б его не экспортировал)

  • Дрейф типов (ожидался User, получен {name, email})

Это ключ к достижению качества интеграции одиночного агента при работе параллельного парка.


Интеграционный шлюз

sequenceDiagram
    participant O as Orchestrator
    participant C as Compiler
    participant DB as Brain DB
    participant A as Agent

    O->>C: Run tsc / mypy / cargo / go vet
    C-->>O: Errors with file:line:message

    O->>DB: Query: who claimed this file?
    DB-->>O: Agent X owned src/api/routes.ts

    O->>A: DM: "Fix these errors in your files"
    Note over A: Agent reads DM on next pulse
    Note over A: Fixes code, pulses done

    O->>C: Re-run compiler
    C-->>O: Clean
    O->>DB: Record metrics

Шлюз автоматически определяет язык проекта и запускает соответствующий инструмент проверки:

Язык

Инструмент проверки

TypeScript

npx tsc --noEmit

Python

mypy

Rust

cargo check

Go

go vet

Ошибки анализируются, сопоставляются с агентом, который заявлял права на проблемный файл, и направляются в виде личного сообщения. Агенты получают свои ошибки при следующем пульсе и исправляют их. Цикл повторяет попытки до --retries раз, прежде чем сдаться.


Смешанные парки

БД «мозга» является общей для всех MCP-клиентов. Один проект может иметь:

graph LR
    subgraph "Fleet"
        direction TB
        HA["Hermes Agent<br/><small>fast local inference</small>"]
        CC["Claude Code<br/><small>deep reasoning</small>"]
        MM["MiniMax<br/><small>cheap boilerplate</small>"]
    end

    subgraph "Brain"
        DB[("brain.db")]
    end

    HA <--> DB
    CC <--> DB
    MM <--> DB

    style HA fill:#F59E0B,stroke:#D97706,color:#000
    style CC fill:#9333EA,stroke:#7C3AED,color:#fff
    style MM fill:#3B82F6,stroke:#2563EB,color:#fff
    style DB fill:#1E293B,stroke:#334155,color:#fff

Маршрутизация по типу задачи. Используйте Hermes для рутинной работы, Claude для архитектурных решений, более дешевые модели для шаблонного кода — все координируются через один «мозг», обмениваясь контрактами, шлюзами и памятью.

Из Claude Code:

brain_wake({ task: "...", cli: "hermes", layout: "headless" })
brain_wake({ task: "...", cli: "claude", layout: "horizontal" })

Продвинутые возможности

Все, что ниже, охватывает полную техническую глубину.


Производительность

Запустите бенчмарки самостоятельно:

node benchmark.mjs        # SQLite direct layer (1000 iterations)
node benchmark-mcp.mjs    # MCP tool layer (30 iterations per tool)

Уровень прямого доступа к SQLite (2026-04-06, M4 Pro, режим WAL)

Операция

ср.

p50

p95

p99

пропускная способность

session_register

0.021мс

0.011мс

0.027мс

0.039мс

~47K/с

message_post (1 сообщ.)

0.014мс

0.011мс

0.019мс

0.031мс

~70K/с

message_read (50 сообщ.)

0.042мс

0.042мс

0.045мс

0.066мс

~24K/с

state_get

0.002мс

0.002мс

0.002мс

0.003мс

~570K/с

claim_query (все)

0.001мс

0.001мс

0.002мс

0.002мс

~670K/с

heartbeat_pulse (обновл.)

0.002мс

0.002мс

0.002мс

0.003мс

~464K/с

session_query (по id)

0.002мс

0.002мс

0.002мс

0.003мс

~455K/с

Прямой SQLite: каждая операция координации ядра занимает менее миллисекунды. KV-хранилище (state_get) поддерживает ~570 тыс. чтений/с. Высокочастотная координация (пульс, заявки, состояние) остается значительно ниже 1 мс.

Уровень инструментов MCP (2026-04-06, stdio JSON-RPC, по 30 вызовов)

| Инструмент | ср. | p50 |

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevvGwardo/brain-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server