mcpField
B
brainbox

brainbox

ローカル
github.com/thebasedcapitalメモリ・ナレッジ143 週間前に更新

brainbox について

brainboxは、ファイル、ツール、エラー修正の関係をSQLiteグラフに学習する、コーディングエージェント向けのローカル行動メモリーです。過去の操作から関連ファイルを想起し、次のツールを予測します。MCP経由で記憶を提供することもできます。

主な機能

  1. 01ツール呼び出しから行動パターンを学習
  2. 02過去の操作をもとにファイルを想起
  3. 03次のツール呼び出しを予測
  4. 04エラーと修正手順を記録
  5. 05ローカルのSQLiteグラフに保存

活用シーン

  1. 01コーディング中のファイル検索を減らす
  2. 02検索前に関連ファイルを提示
  3. 03過去のエラー修正を再利用

MCP 対応

brainboxはMCP サーバーとして動作し、record、recall、explain、error、resolve、predict_next、stats、decayなどのツールをエージェントに公開できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"thebasedcapital-brainbox": {
"command": "npx",
"args": [
"-y",
"brainbox-hebbian"
]
}
}
}
起動コマンドnpx -y brainbox-hebbian

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmbrainbox-hebbian0.1.6

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

BrainBox — コーディングエージェントのための筋肉記憶

npm バージョン GitHub のスター数 Node 22+ MCP:8 個のツール 無料、ローカル、SQLite MIT ライセンス

インストール · 仕組み · 成果 · 研究 · 連携 · ホワイトペーパー

BrainBox はAI コーディングエージェントのための手続き記憶です。エージェントが実際に行う操作を監視して記憶します。

  • どのファイルが一緒に読み込まれ、編集されるか
  • どの編集によってどのエラーが修正されたか
  • エージェントが繰り返すツールの組み合わせ

次のタスクでは、エージェントが検索を始める前に、適切なファイルを提示します。

ベクトルデータベースではありません。RAG でもありません。 ローカル SQLite グラフ上のヘブ学習です。API コストはゼロで、GPU も不要です。データがマシンの外に出ることもありません。

Session 1   agent greps for auth.ts, reads it, edits it            ~2,000 tokens of searching
Session 5   BrainBox recalls auth.ts + session.ts up front         search skipped
Session 20  auth.ts → session.ts → token.ts is a superhighway      instant recall

論文

DOI

BrainBox:コーディングエージェントのためのローカル行動記憶(Bhavesh B、2026)。上記の DOI はすべてのバージョンを対象とし、最新バージョンに解決されます。最新バージョン:v0.2、doi:10.5281/zenodo.23250505。

@misc{b2026brainbox,
  author    = {B, Bhavesh},
  title     = {BrainBox: Local Behavioral Memory for Coding Agents},
  year      = {2026},
  publisher = {Zenodo},
  version   = {v0.2},
  doi       = {10.5281/zenodo.23250505},
  url       = {https://doi.org/10.5281/zenodo.23250505}
}

インストール

npm install brainbox-hebbian

これで完了です。postinstall スクリプトは次の処理を行います。

  1. ~/.claude/settings.json に PostToolUse フックを追加します。ファイルの読み込み、編集、検索、コマンドの実行から学習します。
  2. UserPromptSubmit フックを追加します。プロンプトに簡潔な想起情報を挿入します。または、無視されることを学習すると、何も表示しなくなります。
  3. SessionEnd フックを追加します。想起されたファイルのうち、実際に開かれたものや編集されたものを評価し、手順をまとめます。
  4. claude mcp add を使って MCP サーバーを登録します。ツールは 8 個です:record、recall、explain、error、resolve、predict_next、stats、decay。
  5. ~/.brainbox/ を作成し、埋め込みモデルのバックグラウンドダウンロードを開始します。

フックがモデルをダウンロードすることはありません。モデルがキャッシュされるまでは(brainbox models pull)、想起は語彙検索のみで実行されます。埋め込みにはオプションの @huggingface/transformers 依存関係を使います。ネイティブモジュールをマシンにインストールできない場合(たとえば、システムの libvips が使われていてビルドツールがないため sharp をインストールできない場合)でも、BrainBox はインストールされ、キーワード検索で動作します。brainbox models status で現在のモードを確認できます。

Git の履歴とコードグラフから初期データを投入して、起動時の待ち時間をなくしましょう。

brainbox bootstrap --repo /path/to/project --imports

アンインストール: brainbox uninstall はフックと MCP サーバーを削除しますが、データベースは保持します。

仕組み

BrainBox のパイプライン:ツール呼び出し → 学習 → 想起 → ポリシー → 注入と、そのフィードバックループ

ツールを呼び出すたびに、ニューロンが発火します。ファイル、ツール、エラーがニューロンとなり、近いタイミングでアクセスされた項目どうしはシナプスになります。プロンプトが想起を引き起こし、複数のランキングチャネルを融合します。学習されたポリシーが、トークンを使って情報を注入する価値があるかどうかを判断します。実際に開いたり編集したりした内容へのフィードバックは、グラフに反映されます。

同時に発火し、共に結びつく

ヘブ学習:複数のセッションで同時にアクセスされたファイル間のシナプスが強化される

複数のセッションで auth.ts に続いて session.ts にアクセスすると、それらのシナプスが強化されます。SNAP 可塑性により、強いシナプスほど成長が遅くなるため、単一のつながりが支配的になることはありません。リンクには方向性があり(STDP)、それ以前に何を開いたかよりも、次に何を開くかが重要です。

活性の伝播

ファイルを起点に、ファン効果による減衰を伴って3ホップにわたり活性が伝播する様子

1つのファイルを想起すると、最大3ホップ先まで近隣のファイルが活性化されます。各ホップは 1/√degree で減衰するため、ハブとなるファイルが結果を埋め尽くすことはありません。各結果には、それを生成したチャネルとエッジが付随します。brainbox_explain を使うと、ファイルが想起された理由を正確に確認できます。

主要経路と減衰

よく使われる経路は超高速道路へと髄鞘化し、使われないエッジは減衰する

よく使う経路は髄鞘化され、即座に想起できる超高速道路になります。新しさと頻度は ACT-R の基準レベル方程式 B = ln Σ tⱼ^-0.5 に従い、使われないつながりは弱まります。想起されたものの無視されたファイルは、そのファイルを表面化させたエッジのみが弱まります。

エラー → 修正の免疫システム

エラーのフィンガープリントが修正に使われた編集内容と結びつき、次回の発生時に想起される

失敗したコマンドの後に編集が行われ、再実行が成功すると、BrainBox はエラーから修正に至る手順を保存します。この手順はエラーのフィンガープリントをキーとし、有益または有害だった結果を追跡します。同じエラーが次に発生すると、修正に使われたファイルがすぐに想起されます。手順は指示ではなく、引用された観察事項としてエージェントに提示されます。

結果

実際のエージェントの軌跡における v0.2、v0.1、最良ベースラインの比較

brainbox eval は、実際のコーディングエージェントの軌跡を時間順に再生します。各タスクは、同じリポジトリ内のそれより前のタスクのみで学習した新しいインメモリ DB で評価され、すべてのシステムが同じ候補セットを順位付けします。

v0.1 は次のファイルの予測で、単純な新しさベースの方式に負けました。 ホールドアウトされた SWE タスクでは差は −.207、95% 信頼区間は −.312…−.118 でした。v0.2 はこの指標で新しさベースの方式と統計的に同等です。次のツールの予測では、すべてのベースラインを有意に上回り、読み込んだファイルの再現率は両方のデータソースで最高です。

既知の課題: ローカルセッションでは、編集頻度のみで順位付けすると、編集されたファイルについては依然として BrainBox を上回ります(Δ −.089、信頼区間 −.185…0)。

語彙チャネルとヘブ則チャネルの重みをゼロに調整すると dev で高いスコアになりましたが、その場合、再現率はクエリを無視してしまうため、リリース版ではこれらの重みを維持しています。

全表、プロトコル、コマンド

プローブ:

  • P1: タスクで編集または読み込まれたファイル(クエリ = タスクのテキスト)
  • P2: 次のファイルをステップごとに予測
  • P3: 次のツール(上位 3 件)

ベースライン:新しさ、頻度、BM25、EdgeBank、ランダム。信頼区間は、軌跡ごとに再サンプリングした対応ありブートストラップの 95% 信頼区間です。

データセット:

  • 順位付けの重みは dev リポジトリ(sqlglot、dvc、streamlink)のみで調整しました。
  • SWE test は Pillow と conan のホールドアウトされた 40 タスクです。
  • Local は 5 プロジェクトにわたる 97 のエージェントセッションで、重みの調整には使用していません。

スコアは MRR(P3:MRR@3)で、埋め込みは無効です。

プローブSWE test:v0.1v0.2最良ベースラインlocal:v0.1v0.2最良ベースライン
P1 編集されたファイル.307.307.216 BM25.737.703.791 頻度
P1 読み込まれたファイル.191.267.206 BM25.372.555.547 BM25
P2 次のファイル.223.409.430 新しさ(Δ 信頼区間 −.049…+.003).634.702.701 新しさ(同等)
P3 次のツール.479.767.748 頻度(Δ +.019、信頼区間 +.012…+.027).257.686.662 新しさ(Δ 信頼区間 +.010…+.036)
npm run eval -- --source nebius --repos 5 --max-tasks-per-repo 20 --split test --embeddings off --engine new
npm run eval -- --source omp    --repos 5 --max-tasks-per-repo 20 --embeddings off --engine old   # v0.1 engine (needs a worktree, see src/eval)

コード検索:30 件のクエリを用いたコード検索セットでは、デフォルトの jina-embeddings-v2-base-code が Recall@5 0.867 を達成し、以前の MiniLM の 0.667 を上回ります。

## 研究に基づいて構築

最近の論文と、それらが形作ったBrainBoxのサブシステムの対応関係

v0.2の各変更は最近の論文に対応しており、リプレイ評価で測定されています。

サブシステム変更内容出典
ランキング固定減衰に代わり、ACT-Rのベースレベル活性化を採用。再発候補と人気候補を追加。保留中の開発リポジトリで重みを調整した、重み付き逆順位融合。方向性STDP、n-gramツール予測。ACT-R 2505.05083 · Base3 2506.12764 · 2502.04910
コード検索cAST方式のASTチャンク。FTS5 BM25 + sqlite-vec KNNをRRF(k=60)で融合。コンテンツハッシュによる増分処理。cAST 2506.15655
インジェクションポリシーコンテキストに応じたUCB1バンディットがSILENT / TOP1 / TOP3 / TOP5を選択。報酬 = 開いた、または編集したファイル数からトークンコストを差し引いた値。MemCon 2607.13591
帰属すべての想起を、それを生成したシナプスとともに記録します。無視された想起は、そのエッジだけを弱めます。MemTrace 2605.28732
コンパクトなインジェクションコンパクトなpath:start-end — whyリストを挿入します。削除されたファイルは挿入されません。FastContext 2606.14066
手順失敗したコマンド → 編集 → 成功した再実行、および複数セッションにわたるワークフローを決定論的に抽出し、有用・有害のカウンターを備えます。ACE 2510.04618 · Mem^p 2508.06433
コードグラフTree-sitterのインポート/呼び出し/継承エッジ(TS/JS、Python、Rust、Swift、Go)を弱い事前情報(≤ 0.35)として設定し、学習済みの共アクセスがそれを上回るようにします。—
評価SWE-rebenchのOpenHands軌跡とローカルセッションをオフラインでリプレイし、ベースラインと対応あり信頼区間を用いて評価します。SWE-rebench trajectories

0.2には、次の変更も含まれます。

  • Node 22–26上でビルドします(better-sqlite3 v13)。
  • フックはClaude Codeのネストされた設定形式で記述されています。
  • フックのDBロック待機時間は最大100 msです。
  • 手順のコンパイルは、大規模な履歴で470倍高速です。

インテグレーション

MCP サーバー(任意のエージェント)
# 8 tools: record, recall (detail: compact|full), explain, error, resolve, predict_next, stats, decay
npx tsx node_modules/brainbox-hebbian/src/mcp.ts
Kilo / OpenCode(ネイティブプラグイン)

~/.config/kilo/config.jsonに追加します。

{
  "plugin": ["node_modules/brainbox-hebbian/src/kilo-plugin.ts"]
}
OpenClaw(NeuroVault)

BrainBoxはOpenClawのメモリスロットプラグインとして実行できます。リファレンス実装についてはNeuroVaultをご覧ください。

項目Claude CodeOpenClaw
ツール名PascalCase(Read)小文字(read)
コンテキストの挿入UserPromptSubmitフックbefore_agent_startライフサイクル
学習のトリガーPostToolUseフックafter_tool_callライフサイクル
埋め込みjina-embeddings-v2-base-code(設定可能)キーワードのみ(信頼度のしきい値を低く設定)
macOSデーモン(オプトイン)

システム全体を対象とするFSEventsファイルウォッチャーです。エージェントだけでなく、VS Code、Xcode、vim、シェルからも学習します。LaunchAgentをインストールするため、明示的なオプトインが必要です。

brainbox daemon install   # installs LaunchAgent, starts watching
brainbox daemon status
brainbox daemon uninstall

CLI

brainbox recall "authentication login"
brainbox record src/auth.ts --query "authentication"
brainbox stats                 # includes stale-embedding counts + re-index commands
brainbox error "TypeError: cannot read 'token'"
brainbox predict Read
brainbox bootstrap --repo . --imports [--since <git-rev>]   # git history + tree-sitter code graph
brainbox extract-snippets [--force] [--no-embed]           # AST chunks → FTS5 + sqlite-vec
brainbox embed [--force]       # embed neurons with the active model
brainbox models pull|status    # fetch / inspect the embedding model
brainbox procedures [list|compile|show <id>|deprecate <id>]
brainbox sleep                 # consolidation + procedure compilation
brainbox eval --source nebius|omp [...]                   # offline replay evaluation
brainbox hubs | stale | projects | sessions | streaks | graph | highways | decay
設定
変数用途デフォルト
BRAINBOX_DBSQLite のパス~/.brainbox/brainbox.db
BRAINBOX_DB_TIMEOUT_MSSQLite のビジータイムアウト5000(フックでは 100)
BRAINBOX_EMBED_MODELminilm | jina-code | gemma | gemma-q4jina-code
BRAINBOX_MODEL_CACHEモデルキャッシュディレクトリTransformers.js のデフォルト
BRAINBOX_EMBEDDINGSoff にすると埋め込みを完全に無効化on
BRAINBOX_POLICYoff にすると学習済みの注入ポリシーを無効化(常に TOP5)on
BRAINBOX_SESSION_IDCLI/アダプターのセッション ID を上書き自動設定
BRAINBOX_HOOKフックのエントリーポイントで設定:ローカル専用モデル、埋め込みの期限は 1.2 秒未設定

Gemma プロファイルには、Gemma 利用規約が適用されます。

アルゴリズムの詳細
コンポーネントメカニズム(デフォルトは DEFAULT_ENGINE_OPTIONS)
シナプス形成連続ウィンドウ(25 項目)、位置に応じた減衰、方向性 STDP(後から先へのエッジ × 0.5)
強化SNAP シグモイド可塑性(中点 0.5、急峻度 8)、BCM ミエリン化、上限 0.95
最近性/頻度ACT-R ベースレベル B = ln Σ (Δt_h)^-0.5(直近 50 回のアクセスを対象)
ファイルランキング重み付き逆順位融合。チャネルの重み:語彙(FTS5、クエリ語句の逐語的な一致率でスケーリング)4、ヘブ学習の証拠 4、コードスニペット 4、頻度 2、最近性 1、ベースレベル 0.5、再発 0.2。クエリが現在のセッションに一致する場合、セッションの最近性の重みは 30 になります。
活性拡散3 ホップ BFS、ファンアウト上限 10、ファン効果 1/sqrt(degree)
ツール予測最長サフィックス n-gram(n ≤ 3、最小サポート 4)を頻度(0.5)と融合
コード検索AST チャンク、FTS5 BM25 + sqlite-vec KNN、RRF k=60
構造的事前分布import 0.2、call ≤ 0.35、inherit 0.3。学習済みの共アクセスを上書きしません
注入ポリシーSILENT/TOP1/TOP3/TOP5 に対する UCB1。報酬 = 順位で重み付けしたオープン/編集数 − 1,000 トークンあたり 2
反想起無視された想起は、生成元のエッジのみを弱めます。1 - (1 - 0.1)^streak、下限 0.1
エラー学習学習率を 2 倍に強化。失敗→編集→合格の再実行から、エラー→修正の手順を学習

論文のソース(v0.2、doi:10.5281/zenodo.23250505)では、実装と、カバレッジを条件とした再生結果(不確実性と来歴に関する制約を含む)について説明しています。参考文献、集計された証拠、LaTeX および PDF のビルドについては、論文のビルドと根拠に関する注記を参照してください。

アーキテクチャ
src/
  hebbian.ts       # Engine: record, recall (rank fusion), STDP, n-gram tool prediction, decay, anti-recall
  db.ts            # SQLite schema + migrations
  policy.ts        # Recall event log + contextual UCB1 injection policy
  adapter.ts       # Shared recall/injection orchestration for all hosts
  snippets.ts      # AST chunking, FTS5 + sqlite-vec hybrid search
  embeddings.ts    # Embedding model profiles, hook-safe loading
  codegraph.ts     # Tree-sitter import/call/inherit graph
  procedures.ts    # Procedural playbook mining + matching
  bootstrap.ts     # Git history / code graph / session seeding
  installer.ts     # Hooks + MCP registration, model prefetch
  mcp.ts           # MCP server (8 tools)
  hook.ts          # PostToolUse + SessionEnd hook
  prompt-hook.ts   # UserPromptSubmit hook
  kilo-plugin.ts   # Kilo/OpenCode native plugin
  daemon.ts        # FSEvents file watcher (macOS, opt-in)
  cli.ts           # CLI
  eval/            # Offline trajectory replay evaluation
  testkit.ts       # Test harness; test.ts + tests/*.test.ts
scripts/visuals/   # JS generators for the README figures (tbcresearch.org ink style, light + dark)

開発

npm test                      # 147 tests
npx tsx src/test.ts "Ranking" # filter by suite/test name
npm run visuals               # regenerate assets/*.svg (light + dark) from scripts/visuals/scenes/*.mjs
bash scripts/visuals/social.sh  # render assets/social-preview.png for GitHub's social preview

要件:macOS または Linux 上の Node.js 22 以降。FSEvents デーモンは macOS 専用ですが、それ以外はすべてクロスプラットフォームです。


BrainBox がエージェントの検索の手間を省いたなら、他の人にも見つけてもらえるよう⭐ を付けてください。
@thebasedcapital が開発 · MIT License

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。