Skip to main content
Glama

Hermes Brain

Hermes Agent 用のマルチエージェントオーケストレーション

並列Hermesエージェントを生成します。共有の脳(Brain)を与え、1つのコマンドでデプロイしましょう。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. Node.js MCPサーバー (brain-mcp) をビルド

  2. Pythonオーケストレーションパッケージ (hermes-brain) をインストール

  3. BrainをHermesのMCPサーバーとして登録

オプション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

友人と共有する場合: 各個人のBrainは独立したSQLite DBであるため、ネットワーク設定は不要です。同じワンライナーがどこでも動作します。

Dockerユーザー: tmuxペインはヘッドレスコンテナ内でレンダリングできないため、layout: "headless" でエージェントを生成してください:

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

Related MCP server: mcp-comms

クイックスタート

Hermesエージェントの艦隊をオーケストレーションする1つのコマンド:

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. 各エージェントがファイルを確保し、コントラクトを公開し、コードを書き、ハートビートを送信

  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トークンは実際の作業にのみ消費されます。ハートビート、確保、コントラクト、ゲート、再試行はすべてローカルで実行されます。

管理するサーバーは不要。 各エージェントはBrainへの独自のstdio接続を開きます。SQLiteのWALモードが同時アクセスを安全に処理します。

同じBrain、任意のCLI。 Hermes、Claude Code、MiniMaxなど、すべてのクライアントが同じSQLite DBにアクセスします。HermesとClaudeエージェントの混成艦隊が同じタスクで調整可能です。


hermes-brain CLI

hermes-brain <task> [options]

フラグ

デフォルト

説明

--agents <names...>

agent-1 agent-2

並列生成するエージェント名

--model <id>

claude-sonnet-4-5

各エージェントに渡すモデル

--no-gate

off

統合ゲートをスキップ

--retries <n>

3

ゲートの最大再試行回数

--timeout <seconds>

600

エージェントごとのタイムアウト

--config <file.json>

マルチフェーズパイプラインの読み込み

--db-path <path>

~/.claude/brain/brain.db

カスタム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" }
      ]
    }
  ]
}

フェーズは順次実行されます。フェーズ内のエージェントは並列実行されます。統合ゲートはフェーズ間で実行されます。


Brainツール

12カテゴリ、35以上のツール。 Hermes、Claude Code、およびMCP互換エージェントすべてで利用可能です。

アイデンティティと健全性

ツール

説明

brain_register

このセッションに名前を付ける

brain_sessions

アクティブなセッションを一覧表示

brain_status

セッション情報とルームを表示

brain_pulse

ステータスと進捗を含むハートビート(保留中のDMを返す)

brain_agents

全エージェントのライブ健全性(ステータス、ハートビート経過時間、確保状況)

メッセージング

ツール

説明

brain_post

チャンネルに投稿

brain_read

チャンネルから読み取り

brain_dm

他のエージェントにダイレクトメッセージ

brain_inbox

DMを読み取る

共有状態とメモリ

ツール

説明

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

コンパイルとコントラクトチェックを実行し、エラーを責任エージェントにDM

brain_auto_gate

ゲートをループ実行し、修正を待ち、クリーンになるまで再試行

タスク計画 (DAG)

ツール

説明

brain_plan

依存関係を持つタスクDAGを作成

brain_plan_next

依存関係が満たされたタスクを取得

brain_plan_update

タスクを完了/失敗としてマーク (依存先を自動昇格)

brain_plan_status

全体的な進捗

brain_workflow_compile

自然言語の目標をフェーズ、エージェント、ファイルスコープ、コンダクター設定に変換

brain_workflow_apply

コンパイルされたワークフローをBrain状態とタスクDAGに永続化、オプションでコンダクターJSONを書き出し

オーケストレーション

ツール

説明

brain_wake

新しいエージェントを生成 (hermes, claude, またはheadless)

brain_swarm

1回の呼び出しで複数のエージェントを生成

brain_respawn

失敗したエージェントをリカバリコンテキスト付きで置換

brain_metrics

エージェントごとの成功率、期間、エラー数

コンテキスト台帳(追跡の喪失を防ぐ)

ツール

説明

brain_context_push

アクション/発見/決定/エラーを記録

brain_context_get

台帳を読み取る

brain_context_summary

コンテキストリカバリ用の要約ビュー

brain_checkpoint

完全な作業状態を保存

brain_checkpoint_restore

コンテキスト圧縮後に復元


ハートビートとコントラクトプロトコル

生成されたすべてのエージェントは、オーケストレーターが強制する2つのプロトコルに従います:

ハートビート — エージェントは2〜3回のツール呼び出しごとに、ステータスと短い進捗メモを添えて brain_pulse を呼び出します。コンダクターはこれを使用して以下を行います:

  • ターミナルにライブステータスを表示 (● working — editing src/api/routes.ts)

  • 停止したエージェントを検出 (60秒間パルスがない場合 → stale)

  • 保留中のDMをパルスの戻り値として配信 (余分なラウンドトリップなし)

コントラクト — エージェントはコードを書く前に brain_contract_get を呼び出し、他のエージェントが何をエクスポートしているかを確認します。書き込み後、brain_contract_set で自身のコントラクトを公開します。完了とマークする前に、brain_contract_check が艦隊全体を検証し、以下を検出します:

  • 関数シグネチャの不一致 (2引数期待に対し3引数取得)

  • 不足しているエクスポート (エージェントAが getUser をインポートしているが、エージェントBがエクスポートしていない)

  • 型のドリフト ( 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

エラーは解析され、失敗したファイルを確保したエージェントと照合され、DMとしてルーティングされます。エージェントは次のパルスでエラーを拾い、自己修正します。ループは --retries 回まで再試行し、その後諦めます。


混成艦隊

Brain DBはすべてのMCPクライアント間で共有されます。1つのプロジェクトで以下が可能です:

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、定型作業には安価なモデルを使用します。すべて同じBrainを通じて調整し、コントラクト、ゲート、メモリを共有します。

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.021ms

0.011ms

0.027ms

0.039ms

~47K/s

message_post (1 msg)

0.014ms

0.011ms

0.019ms

0.031ms

~70K/s

message_read (50 msgs)

0.042ms

0.042ms

0.045ms

0.066ms

~24K/s

state_get

0.002ms

0.002ms

0.002ms

0.003ms

~570K/s

claim_query (all)

0.001ms

0.001ms

0.002ms

0.002ms

~670K/s

heartbeat_pulse (update)

0.002ms

0.002ms

0.002ms

0.003ms

~464K/s

session_query (by id)

0.002ms

0.002ms

0.002ms

0.003ms

~455K/s

直接SQLite: すべてのコア調整操作はサブミリ秒です。KVストア (state_get) は ~570K 読み取り/秒 を維持します。高頻度の調整 (ハートビート、確保、状態) は1msを大幅に下回ります。

MCPツールレイヤー (2026-04-06, stdio JSON-RPC, 各30回呼び出し)

ツール

平均

p50

p95

最小

最大

brain_status

12.2ms

12.0ms

15.6ms

8.8ms

21.2ms

brain_sessions

1.9ms

1.7ms

3.6ms

0.9ms

4.7ms

brain_keys

1.6ms

1.6ms

2.6ms

0.8ms

4.5ms

brain_claims

2.0ms

1.8ms

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables multiple AI agents to communicate and coordinate via a shared SQLite-backed message log, supporting directed messages, broadcasts, and session discovery.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    SQLite-backed MCP server for Claude Code session persistence and multi-agent coordination. Provides tools for session management, event logging, decision tracking, file locking, agent registry, and plan tracking.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables multiple Claude Code sessions to communicate, share state, and coordinate tasks through session management, message passing, and task scheduling, supporting a three-role collaboration workflow.
    2
    MIT