LucieEveille/kiwi-mem

🥝 Self-hosted memory gateway for AI companions — OpenAI-compatible proxy with vector search, memory heat, Dream consolidation and calendar-level summaries · AI 伴侣记忆网关:向量搜索、记忆热度、Dream 睡眠整合、日历层级摘要,任何客户端都能接

🥝 kiwi‑mem – AIを脳のように

何であるか

  • チャットクライアントと大規模言語モデル(LLM)API(OpenAI互換またはAnthropicネイティブ)の間に配置される自己ホスト型ゲートウェイ。各リクエストに人間のような長期記憶を注入し、モデルの返答から新しい記憶を抽出する。

主なアイデア

  • 記憶の熱量 – 各保存された事実には「温度」がある。時間とともに冷却され、会話で再訪問されると加熱し、頻繁に言及されない場合はより速く冷却される。熱い記憶は完全に注入され、温かいものは要約として、冷たいものは無視される。
  • 夢(睡眠)サイクル – 夜間のプロセスで古くなった断片を整理し、関連する情報を記憶シーンに統合し、小さな推論ステップで明示されていない事実を推測する。その結果は高レベルの記憶として保存される。
  • カレンダーアーカイブ – チャットログは自動的に階層的な要約(日 → 週 → 月 → 四半期 → 年)にまとめられ、古い期間はわずかなトークンで表現される。
  • 衝突解決とロック – 新しい事実が古いものと矛盾する場合、古いエントリは非効力化される。重要な記憶はロックして、決して劣化しないようにできる。
  • トークン節約型プロンプト構成 – 静的データ(キャラクター設定、ロックされた記憶、カレンダー)はキャッシュされたプレフィックスに配置され、動的データ(検索結果、睡眠ヒント)がその後に続く。これにより、入力トークンコストを最大90%削減できる。

動作方法

  1. チャットクライアントが https://your‑domain/v1/chat/completions にリクエストを送信(kiwi‑memゲートウェイ)。
  2. ゲートウェイはハイブリッドRRF検索(ベクトル+キーワード)で関連する記憶を検索し、熱量に応じてプロンプトの先頭に追加する。
  3. リクエストは設定されたLLMプロバイダに転送される。
  4. LLMの返答はクライアントに返されるとともに、新しい記憶断片が解析され、初期の熱量とともに保存される。
  5. 定期的(またはオンデマンド)に Dream ジョブが実行され、統合と推論が行われる。

主な機能

機能 機能内容
熱量ベースの減衰と強化 記憶は自動的に薄れ、繰り返し言及されると再加熱される。
夢睡眠統合 3段階のクリーニング、統合、予見推論。
階層的カレンダー 日 → 週 → 月 → 四半期 → 年の要約を段階的に詳細を減らして注入。
衝突処理 新しい矛盾する事実が古いものを無効化。ロックされた記憶は永遠に残る。
ツールドロワー 検索、リマインダー、ウェブ検索など20以上の組み込みツールは、システムが必要と予測したときのみロードされ、トークンを節約。
マルチプロバイダ対応 OpenAI互換エンドポイントおよびAnthropicネイティブAPIの両方に対応。追加の翻訳不要。
プロジェクト隔離 グローバル記憶は共有されるが、各「プロジェクト」はプライベートな指示、ファイル、会話履歴を持ち、他のプロジェクトに漏れない。
Web管理パネル プロバイダの設定、記憶の閲覧・編集、Dreamの実行、プロジェクト管理、バックアップのエクスポート/インポート。
Docker最適デプロイ docker compose up -d で一発でスタック(FastAPIゲートウェイ+PostgreSQL+pgvector)が起動。

技術スタック

  • Python + FastAPI – HTTPゲートウェイと記憶ロジック。
  • PostgreSQL + pgvector – 記憶、埋め込み、熱量値を保存。
  • Docker / Docker‑Compose – 1クリックデプロイ、VPS、クラウドVM、Zeaburなどあらゆる環境でポータブル。
  • AGPL‑3.0‑or‑later – ホスティングされた修正版もオープンソースとして公開を保証。

対象ユーザー

  • あなたの習慣、好み、健康データなどを記憶すべき個人用AIアシスタント。
  • 長期的なチャットコンパニオン(感情的サポート、ロールプレイ、物語創作)。
  • 複数セッションにわたって世界観の詳細を保持する必要があるクリエイティブパートナー。
  • 進捗と弱点を追跡する学習チューター。

導入方法(クイックラン)

# 新規サーバーで
curl -fsSL https://get.docker.com | sh
git clone https://github.com/LucieEveille/kiwi-mem.git
cd kiwi-mem
cp .env.example .env   # API_KEYを事前に埋めたい場合のみ編集
docker compose up -d
  • curl http://localhost:8080"status":"running" で動作確認。
  • https://your‑domain/admin を開き(デフォルトでパスワードなし)、LLMプロバイダを追加し、接続をテストして、OpenAIスタイルAPIをサポートする任意のクライアントでチャットを開始。

更新方法

  • bash scripts/update.sh を実行 – DBのバックアップ、最新コードの取得、コンテナの再ビルド、新バージョンが起動しなければ自動ロールバック。
  • オプションでcronインストール(--install‑cron)で毎日自動更新。

制限事項

  • 個人用記憶 を想定しており、企業向けドキュメント検索や知識グラフ用途には向かない。
  • ゲートウェイ自体には認証がないため、公開されている場合、エンドポイントを保護する必要がある(例:Cloudflare Access、基本認証、IP許可リスト)。

ライセンス

  • AGPL‑3.0‑or‑later – 使用・変更・再配布は可能だが、ネットワーク経由でサービスを提供する場合は、ソース(変更含む)をユーザーに公開しなければならない。

kiwi‑memは、人間の記憶に似た忘却と統合を備えた、本当に「あなたを覚えている」AIを実現することを目指しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト