Skip to main content
Glama
SkiTemplar
by SkiTemplar

これは何ですか?

あなたの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)に保存されます。

柱

機能

管理されたメモリ

~/.ultron/brain.db(SQLite)が唯一の真実の情報源。すべての書き込みは、監査イベントも記録する単一のサービスを通過します。自動キャプチャはアクティブメモリに直接書き込むことはありません。人間が承認または拒否するインボックスに候補を提案します。

ハイブリッドリコール

Reciprocal Rank Fusion(RRF)による2つのソースの融合:密(Qdrant内のE5 1024dベクトル)+ 疎(brain.db上のFTS5/BM25)。Qdrant/E5が利用できない場合はスパースのみに低下。

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、およびガバナンスenum Status、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に渡します。この関数は:

    1. LLM(ai_router::route、ゾーンchat経由)に少数の永続的な事実/決定を抽出するよう依頼します;

    2. 各事実を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(control-center/src/)

バックエンド(コントロールセンター)

Rust安定版(control-center/src-tauri/src/)

メモリ(SoT)

SQLite(FTS5) in ~/.ultron/brain.db

密インデックス

Qdrantネイティブ(~/.ultron/qdrant-native/)、コレクションultron_memory、E5 1024d

埋め込み

E5(密) via crate::qdrant::embed_e5 in ultron-memory

サイドカーCLIフック

ultron-memory(Nodeフックで再利用される標準ロジック)

OSスクリプティング

PowerShell 5.1+ / cockpit/内のスクリプト

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。

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    B
    maintenance
    Enterprise-grade MCP server for persistent, intelligent memory management across Claude Code sessions.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives Claude persistent memory by storing conversation context, entities, and enabling semantic search across sessions.
    18 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A 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 npm
    5
    MIT