Skip to content

外部化された経験記憶システム (MCP Server)

License

Notifications You must be signed in to change notification settings

bareforge/watashi-db

Repository files navigation

watashi-db (わたしDB)

User-owned personal context database as an MCP server. Each AI tool connects with permission — reversing vendor lock-in.

Note

v0.x は開発初期段階です。 APIやデータ構造に破壊的変更が入る可能性があります。 データはすべてローカル(~/.watashi-db/default.db)に保存され、外部送信は一切ありません。


概要

わたしDB は、ユーザーが自分の情報(好み・スキル・価値観・意思決定)を所有し、各社のAIツールがMCP(Model Context Protocol)を通じて接続・利用する「パーソナルコンテキストデータベース」です。

従来、AIツールごとにユーザー情報がサイロ化していた問題を解決し、ベンダーロックインの逆転 を実現します。

特徴

  • SPO三つ組モデル: Subject-Predicate-Object 形式でユーザー知識を構造的に記録
  • MCP準拠: Model Context Protocol サーバーとして動作、あらゆるMCPクライアントから接続可能
  • SQLite + FTS5: ローカルファイルDB、全文検索対応、ゼロ依存のインフラ
  • 変更履歴保持: Claimの更新は全て履歴に記録、削除ではなく撤回(retract)モデル
  • 監査ログ: 全操作に「誰が・何を・なぜ」を自動記録
  • Provenance自動付与: 接続元AIの情報をサーバー側で自動記録(自己申告に依存しない)
  • L2推論基盤: Claim間の関係(推論グラフ)、構造化根拠参照、検証ログ
  • マルチデバイス同期: Google Drive等を介したスナップショット同期、複数PCで同一データを共有可能

セットアップ

前提条件

  • Node.js >= 18
  • MCP対応のAIクライアント(Claude Code, Codex CLI, Claude Desktop 等)

ステップ 1: MCP サーバーを登録(全クライアント共通)

お使いの MCP クライアントに watashi-db を登録します:

# Claude Code
claude mcp add watashi-db npx -- -y watashi-db@latest

# Codex CLI
codex mcp add watashi-db -- npx -y watashi-db@latest

Claude Desktop の場合は claude_desktop_config.json に追加:

{
  "mcpServers": {
    "watashi-db": {
      "command": "npx",
      "args": ["-y", "watashi-db@latest"]
    }
  }
}

Tip

@latest をつけるとクライアント起動時に常に最新版が使われます。

ステップ 2: Hook と /recall を配置(Claude Code)

npx watashi-db setup

Claude Code を再起動すれば使えます。

  • Hook: プロンプト送信時に設計判断・好み・作業の節目を自動記録するリマインダー
  • @nolog: プロンプトの先頭に @nolog を付けると、そのメッセージの内容は記録されません
  • /recall: 過去の判断・好み・経験を検索するコマンド

Note

ステップ 2 は現在 Claude Code 専用です。Codex CLI は Hook と Skill に未対応のため、 watashi-db への記録・活用は server instructions 経由の LLM 任せとなります。 背景: #31, #32

Claude Code Cowork プラグイン

リポジトリの cowork-plugin/ ディレクトリに Cowork 用プラグインが含まれています。

プラグインには以下のスキルが含まれます:

スキル 説明
/session-start セッション開始時にプロファイルとコンテキストを自動読み込み
/remember <内容> ユーザーの好み・スキル・知識をわたしDBに記録
/recall [トピック] 過去の判断・好み・経験を watashi-db から検索
/reflect [トピック] エピソード・意思決定の振り返りとパターン分析

バージョンアップ

MCP 設定で watashi-db@latest を指定していれば、Claude の再起動で自動的に最新版が使われます。手動でグローバルインストールしている場合は:

npm install -g watashi-db@latest

バックアップ・同期・マルチStore(オプション)

~/.watashi-db/config.json を作成すると、以下の機能が使えます:

  • バックアップ: sync.destination を設定すると、書き込み時に自動でスナップショットをバックアップ
  • マルチデバイス同期: Google Drive 等のクラウドストレージを介して複数 PC でデータを共有
  • マルチStore: プロジェクト別に DB を分離、watashi_promote でデータを移動
{
  "stores": {
    "default": {
      "type": "local",
      "path": "~/.watashi-db/default.db",
      "sync": {
        "enabled": true,
        "destination": "G:/マイドライブ/watashi-db",
        "generations": 3
      }
    }
  },
  "contexts": {
    "default": {
      "stores": { "default": "read-write" },
      "default_store": "default"
    }
  },
  "default_context": "default"
}

詳細なセットアップ手順・全設定項目のリファレンスについては config.json 設定ガイド を参照してください。


使い方

ユーザー情報の登録

AIとの会話中に自然に情報が登録されます。

# Claimとして登録(SPO三つ組)
watashi_store_claim:
  subject: "user"
  predicate: "prefers"
  object: "日本語コメント"
  category: "preference"

# 好みの簡易登録
watashi_store_preference:
  preference: "ダークモードのエディタ"

情報の取得

# プロファイル全体像(セッション開始時に推奨)
watashi_get_profile_summary

# トピック関連のコンテキスト検索
watashi_query_context:
  topic: "TypeScript"

# 条件検索
watashi_search_claims:
  category: "skill"
  status: "active"

意思決定の記録

watashi_log_decision:
  title: "MIT LICENSEを採用"
  description: "オープンソースライセンスの選定"
  reasoning: "最も自由度が高く、個人プロジェクトに適切"
  alternatives: ["Apache 2.0", "GPL v3"]

アーキテクチャ

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Claude Code   │    │ Claude Desktop  │    │  Other AI Tool  │
│  (MCP Client)   │    │  (MCP Client)   │    │  (MCP Client)   │
└────────┬────────┘    └────────┬────────┘    └────────┬────────┘
         │ MCP                  │ MCP                  │ MCP
         └──────────────────────┼──────────────────────┘
                                │
                    ┌───────────▼───────────┐
                    │     watashi-db        │
                    │   (MCP Server)        │
                    │                       │
                    │  ┌─────────────────┐  │
                    │  │   Tools (25)    │  │
                    │  │  Resources (5)  │  │
                    │  │  Prompts (2)    │  │
                    │  └────────┬────────┘  │
                    │           │           │
                    │  ┌────────▼────────┐  │
                    │  │   SQLite + FTS5 │  │
                    │  │  (~/.watashi-db │  │
                    │  │  /default.db)   │  │
                    │  └─────────────────┘  │
                    └───────────────────────┘

データモデル

テーブル 説明
claims SPO三つ組の知識断片(主語・述語・目的語)
claims_fts FTS5全文検索インデックス
claim_history Claimの変更履歴
claim_relations Claim間の推論関係(7種: supports, contradicts, derives, ...)
claim_evidence 構造化根拠参照(7種: url, file, claim, ...)
claim_checks 検証ログ(7種 x 4結果)
decisions 意思決定ログ
decisions_fts Decisions用FTS5全文検索インデックス
episodes 思考パターン・意思決定エピソード(文脈→問題→欲求→決定→結果→原則)
episodes_fts Episodes用FTS5全文検索インデックス
theories 仮説・パターン認識の構造的記録(V9追加)
theories_fts Theories用FTS5全文検索インデックス
audit_log 全操作の監査ログ

MCPツール一覧

ツール 説明
watashi_store_claim SPO三つ組でユーザー知識を記録
watashi_update_claim 既存Claimを更新(履歴付き)
watashi_retract_claim Claimを撤回(削除ではない)
watashi_supersede_claim Claimを新しいClaimで置き換え
watashi_get_claim Claim詳細 + 変更履歴を取得
watashi_search_claims 条件検索(カテゴリ・スコープ・テキスト)
watashi_query_context FTS5全文検索でコンテキスト取得
watashi_log_decision 意思決定を構造的に記録
watashi_list_decisions 意思決定ログの検索・一覧
watashi_update_decision_status 意思決定のステータス遷移
watashi_get_profile_summary プロファイル全体像をMarkdownで取得
watashi_store_preference 好みの簡易登録ショートカット
watashi_log_episode 思考パターン・意思決定エピソードを構造的に記録
watashi_list_episodes エピソードの検索・一覧(FTS5・タグ対応)
watashi_get_episode エピソード詳細を取得
watashi_store_theory 仮説・パターン認識を構造的に記録
watashi_get_theory Theory詳細を取得
watashi_list_theories Theoryの検索・一覧
watashi_get_context_pack トークン予算を指定した効率的なコンテキスト取得
watashi_list_stores 設定されたStore一覧と現在のアクティブコンテキストを表示
watashi_switch_context アクティブコンテキストを切り替え
watashi_sync_status 各DBの同期状態を表示・手動同期をトリガー
watashi_promote レコードを元StoreからターゲットStoreへ昇格(移動)
watashi_backup_db SQLiteファイルのバックアップ
watashi_export_json 全データのJSONエクスポート

背景思想

わたしDBは L1/L2言語構想 から派生したプロジェクトです。

  • L2(AI内部思考言語): AIが内部で使う構造化された中間表現
  • L1(人間向け監査言語): 人間が読める形でAIの思考を説明する言語

わたしDBはまず「パーソナルコンテキストストア」としての完成を目指し、将来的にL2推論基盤としての発展を構想しています。


開発

# ビルド
npm run build

# テスト
npm test

# 開発モード(ファイル監視)
npm run dev

DBファイルの場所

~/.watashi-db/default.db

Note

旧バージョンで watashi.db を使用していた場合、サーバー起動時に自動で default.db にリネームされます。


ライセンス

MIT

About

外部化された経験記憶システム (MCP Server)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors