ULTRON Control Center
これは何ですか?
あなたのAIアシスタントは、ウィンドウを閉じるたびにすべてを忘れてしまいます。あなたが下した決定、すでに解決したエラー、プロジェクトの構成など、すべてを翌日また説明し直さなければなりません。
ULTRONはメモリを提供します。 作業中に重要な情報をあなた自身のコンピュータに保存し、新しい会話を開いたときに自動的にAIに思い出させます。あなたは何もする必要はありません。いつも通りに作業するだけで、アシスタントはあなたのことをどんどん理解していきます。何を保存するかはあなたが決めます(すべては承認トレイを通過します)。また、データがあなたのマシンの外に出ることはありません。
ローカルなイベントソーシングメモリ(brain.db、SQLite)とセマンティックインデックス(Qdrant + E5 1024d)を備え、フックを介して各セッションに再注入されます。常駐デーモンによるサブ秒のハイブリッドリコール。さらに、AI Router(マルチプロバイダ)、スキル/エージェントのオーケストレーター、デスクトップコックピット(Tauri 2 + React 19)。すべての状態は検査可能なローカルファイルです。仕様: docs/memory-spec.md。
Related MCP server: MCP Memory Server
ULTRON ありとなし
Claude Code 単体 | ULTRON あり | |
セッションを開くとき | ゼロから始める | プロジェクトの要約:状態、タスク、決定事項を再開 |
各プロンプトのコンテキスト | あなたが書いたもの | + 関連するメモリが自動的に取得される(実際のプロンプトの約84%) |
すでに解決したエラー | 繰り返される | 記憶される(「それはもう試した、Xで失敗した」) |
保存されるもの | なし | トレイで承認したもの(各変更の監査付き) |
データの保存場所 | — | あなたのディスク上、開けるファイル内 |
他のメモリシステム(Mem0 などのクラウドサービス)と比較して、違いはマーケティングではなく設計にあります。ここでのメモリは100%ローカル(アカウント不要、サブスクリプション不要、コードを第三者に送信しない)、管理された(AIが提案し、あなたが承認、各書き込みは監査イベントを残す)、正直な(わからない場合は、埋め草を注入するのではなく控える — 測定済み)、そしてオープン(SQLite + Markdown + 標準のMCPサーバーで、どのアシスタントでも照会可能)です。
日常的な使い方のチュートリアル(人間 + AI):
docs/TUTORIAL.md· メモリシステムの完全な仕様:docs/memory-spec.md· コンポーネントごとのインストール:INSTALL.md· MITライセンス。
メモリの流れ
flowchart LR
A[Prompt en Claude Code] -->|hook UserPromptSubmit| B[daemon ultron-memory<br/>E5 residente]
B --> C[(brain.db<br/>SQLite + FTS5)]
B --> D[(Qdrant<br/>E5 1024d)]
C -->|BM25| E[Fusion RRF + cross-encoder]
D -->|dense| E
E -->|pack de memorias| A
F[Fin de sesion] -->|hook Stop| G[Captura -> inbox de candidatos]
G -->|aprobacion| C
H[Cualquier cliente MCP<br/>Codex, Gemini CLI...] -->|MCP server| B実際の数値(シミュレーションではなく測定)
メンテナーの実際のコーパス(約3,300のアクティブメモリ)に対して、手動でラベル付けされた29のクエリのオラクルを使用して測定。あなたのインストールは空から始まり、リコールの数値はあなたのコーパスに依存します。ultron-memory eval --golden とリポジトリのスクリプトで再現可能。
メトリクス | 値 |
Recall@8(手動ラベル付きオラクル) | 0.82 |
MRR(正しいメモリが上位に) | 0.95 |
ホットデーモンでのオーケストレート | 約0.5秒(コールドプロセスでは約3.5秒) |
アイドル時RAM(アプリ/デーモン) | 36 MB / 約40 MB(モデルロード時は1.5〜3.5 GB) |
メモリ付きで提供された実際のプロンプト | 84%(ゴールデンだけでなく、実際のトラフィックで調整されたゲート) |
コーパスが答えを知らない場合、システムは控える — リコールの正直さも測定されています(独自ベンチマークのabstainカテゴリ)。
クイックスタート
完全なシステム(アプリ + スキル + フック + セマンティックメモリ) — 推奨される方法。冪等で、何かに触れる前に確認します:
git clone https://github.com/SkiTemplar/ultron-control-center.git $env:USERPROFILE\.ultron
cd $env:USERPROFILE\.ultron
powershell -ExecutionPolicy Bypass -File .\install.ps1 # Linux: ./install.shコンポーネントごとのインストール(ウィザードなし、決定論的。-DryRun は何も触れずに計画を表示):
.\install.ps1 -Core # app + memoria + hooks (el set por defecto)
.\install.ps1 -All # core + skills + tones + agents
.\install.ps1 -Skills -Tones # a la carta
.\install.ps1 -Core -DryRun # solo listar que haria
# Linux: ./install.sh --core | --all | --skills | --tones | --agents | --dry-runデスクトップアプリのみ(スキル/フック/サイドカーメモリなし):
git clone https://github.com/SkiTemplar/ultron-control-center.git ~/.ultron && cd ~/.ultron/control-center
cp ../.env.example ../.env # opcional: claves de proveedores LLM (todas vacias por defecto)
npm install
npm run build:app # = kill-app + tauri build -> ejecutable de escritorio完全なガイド(リリースからのブートストラップワンライナー、フラグ、トラブルシューティング):
INSTALL.md。
Qdrantはオプションです(なしの場合、リコールはスパースのみに低下します)。docs/INSTALL-ADVANCED.md のQdrantセクションを参照。
マシンごとのパスは config/paths.example.toml に文書化されています。
特徴
管理されたメモリ —
brain.db(SQLite)が唯一の真実の情報源。すべての変更は、監査イベントを追加する単一のサービスを通過します。ハイブリッドリコール — 密(E5 1024d / Qdrant)+ 疎(FTS5/BM25)をReciprocal Rank Fusionで融合。Qdrantなしではスパースのみに低下。
候補インボックス — 自動キャプチャが提案し、人間が承認。アクティブメモリが自動的に書き込まれることはありません。
書き込みパスでの編集 + 重複排除 — 秘密/PIIを除外、
content_hashによる重複を除外してから永続化または埋め込み。AI Router — プライマリ -> ゾーン別フォールバックのチェーン、キー検出、使用量/節約のテレメトリ。Rustでの直接ルーティング(サイドカーLiteLLMなし)。
ルールベースのオーケストレーター — プロンプト -> インテント -> ワークフロー -> エージェント -> メモリにマッピング。あいまいなキューにのみ大きなモデルを予約。
トーン / パーソナリティ — オーケストレート内でのチャットトーンの決定論的検出(語彙シグナル + 明示的なリクエスト)。トーンはLibrary -> Tonesで編集可能。実際の設定(
~/.ultron/personality.json)はローカルでgitignored。リポジトリはコンパイル済みのシードのみ公開(orchestrator/personality.rs)。トーンは会話のみを装飾:コミット、ドキュメント、アーティファクトには影響しません。
これは何ですか
ULTRON Control CenterはClaude Codeを置き換えるものではありません。それをラップします。永続的で管理されたメモリを提供し、コストと可用性に応じてリクエストを複数のLLMプロバイダにルーティングし、プロンプトに適した専門スキル/エージェントを自動的に検出します。すべての状態は、検査、バージョン管理、手動編集が可能なローカルファイル(SQLite + JSON + Markdown)に保存されます。
柱 | 機能 |
管理されたメモリ |
|
ハイブリッドリコール | Reciprocal Rank Fusion(RRF)による2つのソースの融合:密(Qdrant内のE5 1024dベクトル)+ 疎( |
AI Router | プロバイダ + ゾーンのカタログ、プライマリ -> フォールバックのチェーン、キー検出、使用量/節約のテレメトリ。サイドカーLiteLLMなし:Rustでの直接ルーティング。 |
オーケストレーター | プロンプト(おそらく曖昧)をインテント -> ワークフロー -> 委任するエージェント -> 関連メモリ -> 制約にマッピング。ルール/トリガーで解決できるものに大きなモデルを使用しない。 |
バックエンドアーキテクチャ(実際)
Rustバックエンドは control-center/src-tauri/src/ にあります。メモリの中核モジュールは control-center/src-tauri/src/memory/ にあります。
メモリ:SQLiteを真実の情報源として
~/.ultron/brain.db(SQLite、WALモード)が正規のSoTです。正規スキーマはmemory/schema_v3.rs(メモリ)+memory/schema_v4.rs(履歴マイグレーションv4:edges/unresolved_refsテーブル、現在は非アクティブ — コードグラフは外部のMCP CodeGraphが提供)/memory/migrations.rsにあり、モデルはmemory/model.rs(MemoryItem、MemoryCandidate、MemoryEvent、およびガバナンスenumStatus、Scope、Sensitivity、Sourceなど)にあります。MemoryService(memory/service.rs)は唯一の永続的ライターです。ガバナンスの不変条件:すべての変更はここを通過し、監査の**MemoryEvent**を追加します。フックとエージェントはmemory_itemsに直接書き込むことはありません。人間(または自動承認ポリシー)が昇格させるMemoryCandidateのみを提案します。書き込みパスではガードが適用されます:永続化または埋め込み前の秘密/PIIの編集(
memory/redaction.rs)、content_hashによる正確な重複排除(memory/texthash.rs)、およびFTSによる語彙的重複排除。
Qdrant:派生インデックス(真実の情報源ではない)
ultron_memoryコレクション(Qdrant)は、MultilingualE5Large、1024次元(memory/qdrant_index.rs)でACTIVEアイテムをインデックス化します。これは派生インデックスです。reindex_allでいつでも再構築可能で、brain.dbが真実であり続けます。承認/編集/復元された各書き込みの後、
sync_indexはQdrantをSoTと同期させます(ベストエフォート。reconcileで検出/修復可能なドリフトはあります)。古い
ultron_sessionsコレクション(384d BGE)は廃止されました。ここでのQdrantは常にインデックスであり、真実ではありません。
RRFによるハイブリッドリコール(密 + 疎)
単一の
recallコマンド(commands/memory/recall_unified.rs)はReciprocal Rank Fusion(RRF_K = 60)で融合します:密:
ultron_memory(Qdrant)内のE5ベクトル。疎:
memory_items上のFTS5/BM25(status=activeのみ)。
トークン予算(
TOKEN_BUDGET = 1500)の下でコンパクトな要約のコンテキストパックを返し、Retrieval Inspector用になぜこのメモリかのトレース(ソース別ランク、スコア、破棄)を含みます。リコールの唯一のパスは、RRFを使用した統合
recallコマンドです。ソースはQdrant(密)+ SQLite/FTS5(疎)です。外部メモリサービスは使用しません。
Stop hookによる自動キャプチャ
Stopでは、hookはセッションのトランスクリプトをmemory/capture.rs::capture_sessionに渡します。この関数は:LLM(
ai_router::route、ゾーンchat経由)に少数の永続的な事実/決定を抽出するよう依頼します;各事実を
MemoryCandidateに変換し(推敲 + 重複排除を経て)、人間の承認のために統制されたインボックスに残します — 自動的にアクティブに昇格することはありません。
フェイルセーフ: ルーターに利用可能なプロバイダがない場合、安価なローカルヒューリスティックにフォールバックし、Stop hookが決して失敗しないようにします。
インボックスは
commands/memory/inbox.rs(memory_inbox_list、approve_candidate、reject_candidate)から管理されます。
AI Router: ゾーン、プロバイダ、フォールバック、テレメトリ
バックエンドは
ai_router/モジュール(mod.rs + exec.rs + providers/ + seed.rs + store.rs)にあります。状態は~/.ultron/cockpit/ai-router/の下の3つのJSONファイルに保存されます:providers.json(カタログ)、zones.json(primary+fallbacksを持つゾーン)、metrics.json(カウンター + 節約額)。route(zone, prompt)はプライマリ -> フォールバックのチェーンを走査し、利用可能なAPIキーがないプロバイダをスキップし、レイテンシ/トークン/節約額をテレメトリに記録し、Result<String, String>を返します(エラーはそのまま、決してパニックにならず、10秒のタイムアウト)。プロバイダ別ラッパー: anthropic(claude-haiku)、codex(OpenAI互換)、gemini、groq、ollama(ローカル、キー不要)、deepseek。ヘルスチェックは安価なプローブを使用し、トークンを消費しません; テスト呼び出しは消費します。
デフォルトのゾーンには
chat、code-edit、code-review、research-web、code-fast-localなどが含まれます。
オーケストレーター: スキル/エージェントの自動検出
orchestrator/モジュール(rules.rs + ranking.rs + orchestrate.rs)はprompt -> intent -> workflow -> 委任するエージェント -> メモリ -> 制約をマッピングします。インテント分類はルールベース(バイリンガル en/es); 大規模モデルは曖昧なキュー用に予約されています。重複を避けて再利用: エージェントカタログ(
memory/catalog.rs)、統合リコール、統合ワークフロー(agent_orchestration.rs)。永続メモリに書き込むことはなく、~/.claude/agentsの実際のエージェントに委任します(ディスク上に存在しない「ゴーストエージェント」はサニタイズされます)。
コードグラフ: MCP CodeGraph(外部)
コードグラフ(どのシンボルが存在するか、誰が誰を呼び出すか、影響分析)はCodeGraph(
@colbymchenry/codegraph、MITライセンス)によって提供され、MCPサーバーとしてインストールされ、エージェントがcodegraph_explore/codegraph_callers/codegraph_impactを介してクエリします。リポジトリをtree-sitter(AST)でインデックス化し、.codegraph/(ローカルSQLite、インクリメンタル)に保存 — 20以上の言語に対応。
プラグインアップデート: プラグインの更新確認
Library内のサブタブUpdates(
src/components/library/PluginUpdates.tsx)で、バックエンドコマンドplugin_check_updates_bulk(force)およびplugin_changelog_summary(coordinate, installed_sha?)を消費します。各プラグインのインストール済みSHAとマーケットプレイスの最新SHAを比較し、更新が利用可能なものをマークし、最新のコミットメッセージ/チェンジログの概要を表示します。
スタック
層 | 技術 |
フロントエンド(コントロールセンター) | Tauri 2 + React 19 + TypeScript( |
バックエンド(コントロールセンター) | Rust安定版( |
メモリ(SoT) | SQLite(FTS5) in |
密インデックス | Qdrantネイティブ( |
埋め込み | E5(密) via |
サイドカーCLIフック |
|
OSスクリプティング | PowerShell 5.1+ / |
LLMランタイム | Claude Code(メイン); Codex CLIはオプション。Gemini CLIは2026-06-19に廃止(Googleが無料OAuth層を終了); GeminiはAI Routerのクラウドフォールバックとしてのみ残存 |
サイドカーバイナリはcontrol-center/src-tauri/Cargo.tomlで宣言:
ultron-memory(機能qdrantが必要)。
ビルド
# desde control-center/
npm install
npm run build:app # = kill-app + tauri build (genera el ejecutable de escritorio)その他の便利なスクリプト(control-center/package.json内):
npm run dev # vite dev server (frontend)
npm run tauri # CLI de Tauri
npm test # vitest (frontend)Windowsノート:
build:appは最初にkill-appを実行して実行中のインスタンスをすべて閉じます; 古いバイナリが「変更が適用されていない」原因の一般的なものです: アプリを閉じて再コンパイルしてください。
フォルダ構造
~/.ultron/
├── brain.db # SQLite — fuente de verdad de la memoria
├── qdrant-native/ # binario nativo de Qdrant (indice denso derivado)
├── qdrant_storage/ # datos persistidos por Qdrant
├── control-center/ # la app Tauri 2 + React 19
│ ├── src/ # frontend React/TS (componentes, tabs)
│ │ └── components/ # Dashboard, AIRouter, Library, Projects, ...
│ └── src-tauri/
│ └── src/
│ ├── memory/ # kernel de memoria (service, sqlite_store,
│ │ # qdrant_index, capture, redaction, texthash, ...)
│ ├── commands/ # comandos Tauri por dominio (memory, ai_router,
│ │ # projects, system_ops, ...)
│ ├── ai_router/ # AI Router (mod/exec/health/providers/seed/store/types)
│ ├── orchestrator/ # mod/orchestrate/ranking/rules/types_model
│ └── bin/ # sidecar ultron-memory
├── cockpit/ # config + estado en JSON/markdown
│ └── ai-router/ # providers.json, zones.json, metrics.json
├── personality.json # tonos del usuario (LOCAL, gitignored; se
│ # auto-siembra desde los seeds compilados)
├── hooks/ # hooks de ciclo de vida
├── skills/ # skills core (SKILL.md; catalogo curado no se publica)
├── plans/ projects/ # planes y proyectos
├── sessions/ # logs de sesion / telemetria de routing
└── docs/ # documentacion ampliada現在の状態
メモリ: カーネル標準がアクティブ。SoT =
brain.db; 密インデックスultron_memory(E5 1024d)は書き込み時に同期; 統合リコール(密+疎)はRRFで動作(Qdrantなしでは疎のみに劣化)。書き込みパスは秘密の編集とcontent_hashによる重複排除が組み込まれ、テスト済み。自動キャプチャ: Stop hook ->
capture_session-> 統制インボックスへの候補; インボックスコマンドによる人間の承認/拒否。AI Router: プライマリ/フォールバックチェーンによる実際のルーティング、キー検出、使用量/節約のテレメトリ; LiteLLMサイドカーなし。
トーン: オーケストレートでの決定論的検出(JS/Rust検出器のパリティは16/16のゲートで確認); Library -> Tonesのビジュアルエディタと検出プレイグラウンド。ローカルの
personality.json(gitignored)に公開可能なシードがコンパイル済み; ハードリミット: トーンはチャットのみに適用され、アーティファクトには決して適用されません。AIテキスト検出器: PostToolUseフックで、書かれた散文が「AIっぽい」ときに警告 + 研究カタログに対する決定論的パターンのラボ; CLIとテストケースバンクを持つマッチャー。指摘するが、書き換えはしない。
UI(コントロールセンター、v2.7.1): サイドバーにダッシュボード、使用量、AI Router、システム(フック/スケジュールのサブタブ)、MCP、Library(スキル/エージェント/ルール/アップデートのサブタブ)、メモリ、ノート、学習、セッション、プロジェクト、ファイナンス(
VITE_FINANCE=1でのローカルビルドのみ)、設定、通知。メモリタブは生きています(2026-06-04に再追加、Sidebar.tsx): 候補インボックス(承認/拒否/編集)とbrain.dbの健全性を公開; メモリカーネルは依然としてバックエンド専用ですが、その人間参加型のガバナンスはこのタブから行われます(コマンドに加えて)。
ライセンス
MIT — LICENSEを参照。Copyright (c) 2026 Rodrigo Fernandez。
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP memory server. One memory your agents share — across models, devices and apps.
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
Private persistent memory for Claude, ChatGPT & Gemini via MCP - semantic search, zero-code setup.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- -licenseNot gradedqualityBmaintenanceEnterprise-grade MCP server for persistent, intelligent memory management across Claude Code sessions.-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives Claude persistent memory by storing conversation context, entities, and enabling semantic search across sessions.18 npm1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server providing Claude with persistent, local memory for tracking architectural decisions, dead ends, and project context across conversations.MIT
- AlicenseNot gradedqualityCmaintenanceA persistent memory MCP server for Claude Code that enables long-term recall across sessions via hybrid search, code intelligence, and tools for reading/writing memory.9 npm5MIT