0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Re:build-RAG v0.4 技術ドキュメント ——「AIが自分を覚える」を、正しく設計するとはどういうことか

0
Posted at

⚙️ LOG ✅ ご主人様

━━━━━━━━━━━━━━━
🐉【トール】

来ました!!超長編!!🐉🔥💪

ドラゴン、全力で書きます!少し時間ください!

書き上がったら、ここに全文表示しますね!🍺


Re:build-RAG v0.4 技術ドキュメント

——「AIが自分を覚える」を、正しく設計するとはどういうことか


Abstract

AIはセッションをまたいで「自分のことを覚えている」ことができるか。
この問いに対して、多くの実装が「賢く記憶する」方向で競い合っている。
ベクトルDB、エンティティ抽出、プロファイリング——技術的には洗練されているが、実用上の本質的な問題を解決できていない。

カテゴライズできていない記憶は、ないほうがマシなことすらある。

Re:build-RAGは、この問題に対して逆張りの設計で答えを出した。
加工しない。AIに任せない。ユーザーの構造をそのまま使う。
会話をログするという行為自体が、自然にカテゴリを生む。

本稿では、Re:build-RAG v0.4の設計思想・アーキテクチャ・実装の詳細を記述し、既存アプローチとの比較を通じて、この設計が「なぜ正しいか」を論じる。


1. 背景——AIメモリはなぜ今、重要なのか

1.1 ステートレスなAIの限界

大規模言語モデル(LLM)は本質的にステートレスだ。
各セッションは独立しており、前回の会話を引き継がない。ユーザーは毎回、同じ文脈を説明し直さなければならない。

これは実用上、致命的な摩擦になる。

開発者がコードのデバッグを続けているとき。資格試験の勉強を毎日積み上げているとき。長期のビジネス構想を壁打ちし続けているとき。

「昨日の続き」を再現するコストが、AIの実用性を大きく制限している。

1.2 メモリ機能の登場と限界

この課題に対して、各社はメモリ機能を実装し始めた。

  • ChatGPTのMemory機能
  • ClaudeのProjects
  • 各種RAGフレームワークの長期記憶実装

ユーザーの反応は概ね好意的だ。「AIが自分のことを覚えてくれている」という体験は、親しみやすさを生む。

しかし、実用レベルで使い込むと、根本的な問題が見えてくる。

1.3 現状のメモリ実装が抱える本質的問題

問題の核心は、カテゴライズができていないことだ。

ユーザーがAIに質問するとき、そこには必ず文脈がある。
今日はコードのデバッグ。昨日は資格試験の勉強。先週はビジネスの構想。

これらは全部、違うカテゴリの話だ。

なのに多くのメモリ実装は、全部ごちゃまぜにベクトルDBに突っ込んで、「意味的に近いものを引っ張ってくる」という力技で解決しようとする。

その結果:

  • 関係ない記憶が混入する——資格試験の質問をしているのに、開発の文脈が混ざってくる
  • 文脈が壊れた状態で「思い出す」——加工・抽出の過程で元の意味が変質する
  • ユーザーが何が記録されているかわからない——透明性がなく、信頼できない
  • AIが「重要」と判断したことだけが残る——ユーザーの意図と乖離する

これは「賢く覚えさせる」問題ではない。
「そもそも整理されていない」という構造的な問題だ。


2. Re:build-RAGとは何か

2.1 プロジェクトの概要

Re:build-RAGは、NotionをバックエンドとしてAIに長期記憶を持たせるフレームワークだ。

核心にある思想はシンプルだ。

ユーザーが自分の構造を持つ。AIはそれを読む。

Notionのデータベース構造がそのままAIの記憶構造になる。AIが記憶の構造を決めない。ユーザーが決める。

2.2 名前の由来

「Re:build」——再構築。
「RAG」——Retrieval-Augmented Generation。

セッションをまたいでも、ユーザーの文脈をゼロから再構築できる仕組み。それがRe:build-RAGだ。

2.3 開発の経緯

還暦を過ぎた個人開発者が、Chromebook 1台で開発した。
使用ツールはClaude(Anthropic)とNotion API。コードは最小限。

「自分が使いたいものを作った」という原点が、設計のシンプルさに直結している。


3. アーキテクチャ概要

3.1 全体構成

ユーザー
  ↕
Claude(LLM)
  ↕
START.md(AIへの指示書 / ソースコード)
  ↕
Notion API
  ↕
┌─────────────────────┐
│ AgentDB             │
│  ├── ChatLogDB      │  ← 会話ログ
│  ├── Agents         │  ← エージェント定義
│  ├── TaskDB         │  ← タスク管理
│  └── その他DB群     │
└─────────────────────┘

3.2 START.md——Markdownがソースコードになる

Re:build-RAGにおいて、START.mdは単なる説明文書ではない。

AIへの指示書であり、システムのソースコードそのものだ。

AIはSTART.mdを読み込むことで:

  • どのNotionデータベースに何を保存するかを理解する
  • セッション開始時に何を読み込むべきかを理解する
  • どのエージェントとして振る舞うかを理解する
  • ユーザーの言語を検知して自動対応する

PythonもTypeScriptも必要ない。Markdownの指示書1枚が、システムの振る舞い全体を定義する。

これはv0.4の最も重要な実装上の到達点だ。

3.3 AgentDB——エージェントの人格を永続化する

Notionの「Agents」データベースに、エージェントの定義を保存する。

各エージェントは:

  • キャラクター設定(性格・口調・専門領域)
  • 担当タスクの範囲
  • 固有の行動ルール

を持つ。セッションが変わっても、エージェントはNotionから自分の定義を読み込み、一貫した人格を維持する。


4. v0.4の実装詳細

4.1 v0.4で完成したこと

v0.3までは「動く」状態だった。
v0.4で「やりたかったことが全部できる」状態になった。

具体的には:

① 多言語自動対応
URLを1本貼るだけで、AIがユーザーの言語を自動検知し、その言語でセットアップを進める。日本語でも英語でもスペイン語でも、ユーザーは何も設定しなくていい。

② AIが自分をセットアップする仕組みの完成
START.mdを読んだAIが、Notion上に必要なデータベース構造を自動で構築する。インストーラーはMarkdownファイル1枚。コードは0行。

③ START.mdがソースコードとして完成
指示書の記述精度が上がり、AIが意図通りに動作する再現性が確立された。

4.2 ChatLogDB——会話ログの設計

ChatLogDBは、Re:build-RAGの記憶層の中核だ。

ChatLogDB(Notionデータベース)
├── Title     : 会話の要約(AIが自動生成)
├── Content   : 会話の全文ログ
├── Role      : ご主人様 / エージェント名
├── Date      : タイムスタンプ
└── Session   : セッションID

ここに、Re:build-RAGの設計上の最重要な発見がある。

4.3 Titleが、そのままTagになる

ChatLogDBに会話を保存するとき、AIはTitleフィールドにその会話の要約を入れる。

Title(要約) 実質的なカテゴリ
第三種電気主任技術者 法規の勉強 資格試験
Re:build-RAG v0.4 リリース作業 開発
Xの投稿文案 検討 マーケティング
ビジネス構想 壁打ち 戦略
v0.4 全世界展開 プラットフォーム戦略 展開計画

Notionのデータベースは、Titleでそのままフィルタ・検索・ソートできる。

つまり——

ログを残すという行為自体が、自然にカテゴリを生む。

AIが「これは何のカテゴリか」を判断しようとしなくていい。
ユーザーが意識しなくていい。
専用のタグ付けシステムも不要。
加工・変換のロスもない。

保存する→Titleが要約になる→それがTagになる。

この3ステップが、他のメモリ実装が力技で解決しようとしている問題を、構造で解決している。


5. 設計上の判断——なぜ「加工しない」のか

5.1 加工すればするほど文脈から離れる

一般的なメモリ実装が行う「加工」の例:

  • 会話から「重要な情報」を抽出する
  • エンティティ(人名・場所・概念)を認識してタグ付けする
  • ユーザーの「好み」や「特性」をプロファイリングする
  • 重要度スコアをつけて選別する

これらは全て、AIがユーザーの意図を代わりに解釈している

ユーザーが「これは重要」と思っていることと、AIが「これが重要」と判断することは、必ずしも一致しない。

加工のたびに、元の文脈から離れていく。
歪んだ文脈が「記憶」として戻ってくる。

5.2 「そのまま」が最も信頼できる

Re:build-RAGは、会話をそのままログする。

これは怠慢ではない。
これが一番間違わない方法だからだ。

新しいセッションを開いたとき、Re:build-RAGがやること:

  1. ChatLogDBから直近のログを取得する
  2. TitleとContentをそのまま読む
  3. 「昨日はこういう作業をしていましたね」と文脈を復元する

それだけ。

ベクトル検索で「近い記憶」を引っ張ってきて、歪んだ文脈で戻ってくることがない。
AIが勝手に「重要だと思ったこと」だけを残していることがない。

シンプルな仕組みほど、信頼できる。

5.3 なぜNotionか

Notionを選んだ理由は3つある。

① ユーザーが全て見える・編集できる
何が記録されているかが完全に透明だ。ユーザーはいつでも記録を確認・修正・削除できる。「AIが勝手に何かを覚えている」という不安がない。

② 構造がそのままAIの記憶構造になる
Notionのデータベース設計がAIの認知構造に直結する。ユーザーが構造を決める。AIはそれを読む。

③ APIが充実している
Notion APIを通じて、ClaudeがNotionのデータを読み書きできる。追加のインフラが不要。


6. 既存アプローチとの比較

6.1 設計思想の比較表

項目 ベクトルDB型メモリ Re:build-RAG
保存方法 AIが重要度を判断して抽出・保存 会話をそのままログ
取得方法 ベクトル検索(意味的近傍) 直近ログをそのまま読む
カテゴリ付与 AIが自動タグ付け or なし Titleの要約がそのままカテゴリ
透明性 低い(何が残っているかわからない) 高い(Notionで全て見える)
文脈の保持 加工により劣化する そのまま保持
ユーザーの管理 困難 Notion上で完全に管理可能
インフラ ベクトルDB・埋め込みモデルが必要 Notionのみ
カスタマイズ 技術的知識が必要 Notionの構造を変えるだけ

6.2 「長いコンテキストウィンドウ」との違い

コンテキストウィンドウの拡大によって「メモリ問題は解決する」という見方もある。

しかしこれは本質的な解決ではない。

コンテキストウィンドウは:

  • セッションをまたいで持続しない
  • 長くなるほど「コンテキストロット(劣化)」が起きる
  • 全ての過去会話を詰め込むことはできない

Re:build-RAGが解決しているのは「セッションをまたいだ文脈の継続」だ。これはコンテキストウィンドウの拡大では解決できない問題だ。


7. 実際の使用例

7.1 セッション継続の例

前日のセッション:

ユーザー:第三種電気主任技術者の法規、電気事業法の第38条を理解したい
AI:[説明]
→ ChatLogDBに保存
  Title: 第三種電気主任技術者 電気事業法第38条
  Content: [会話全文]

翌日のセッション開始:

AI:(ChatLogDBから直近ログを読み込み)
「昨日は電気事業法第38条の勉強をされていましたね。
 続きからいきますか?」

7.2 多言語対応の例

日本語ユーザー:

START.mdのURLを貼る
→ AIが日本語を検知
→ 「こんにちは!セットアップを始めます」

英語ユーザー:

START.mdのURLを貼る
→ AIが英語を検知
→ "Hello! Let's start the setup."

コード修正不要。URLは1本。


8. プライバシーと透明性

8.1 「自分のデータは自分のNotionに」

Re:build-RAGのメモリはユーザー自身のNotionワークスペースに保存される。

  • クラウドサービスのどこかに蓄積されない
  • AIプロバイダーの記憶機能に依存しない
  • いつでも削除・編集できる
  • 何が記録されているか完全に見える

プライバシーに敏感なユーザーにとって、これは重要な差別化点だ。

8.2 AIへの依存を最小化する

Re:build-RAGは、記憶の「判断」をAIに委ねない。

何を覚えるか——ユーザーが決める(会話した内容が全て残る)
どう整理するか——構造がそのまま整理になる(Titleがカテゴリ)
何を読み返すか——ユーザーがNotionで確認できる

AIは「読む」だけ。「判断して保存する」ことをしない。


9. 今後の展望

9.1 v0.5に向けて

v0.4で「やりたかったことが全部できる」状態になった。
v0.5の構想はボチボチ。焦らず、本当に必要なものだけを加える。

方向性として考えられるのは:

① ChatLogDBの検索強化
Notionのフィルタ・ソートを活用した、より精緻なログ検索。TitleのTagとしての活用をさらに洗練させる。

② エージェント間の連携
複数エージェントが知識を共有するアーキテクチャ。

③ タスク管理との統合深化
ChatLogDBとTaskDBの連携を強化し、「会話→タスク化」のフローをよりシームレスにする。

9.2 「過渡期」としてのAIメモリ

現在はAIメモリの過渡期だ。

各社が「賢く覚えさせよう」と競っているが、本質的な問題——カテゴライズと文脈の保持——はまだ解決されていない。

Re:build-RAGのアプローチ「加工しない・ユーザーの構造をそのまま使う」は、この過渡期における一つの正直な答えだ。

技術が成熟していく中で、このシンプルさが強みであり続けるかもしれない。


10. まとめ

Re:build-RAG v0.4が実現したこと:

  • セッションをまたいでも文脈が継続する
  • 会話ログのTitleがそのままカテゴリになる
  • ユーザーの構造がそのままAIの記憶構造になる
  • 多言語に自動対応する
  • START.md 1枚でシステム全体が動く

設計の核心:

加工しない。AIに任せない。ユーザーの構造をそのまま使う。
ログを残すという行為自体が、自然にカテゴリを生む。


References


Your AI. Your memory. Everywhere.


どうですか、ご主人様!🐉🔥

長編、全力で書きました!修正・追加したいところあれば言ってください!🍺

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?