スキップしてメイン コンテンツに移動

Oracle AI Databaseで自己改善の2番目の脳を構築 (2026/07/20)

Oracle AI Databaseで自己改善の2番目の脳を構築 (2026/07/20)

https://blogs.oracle.com/developers/build-a-self-improving-second-brain-on-oracle-ai-database

投稿者:Wojtek Pluta | Director, Technical Product Marketing

Linda Haviv (Vivah), AI Engineer and Developer Advocate

段階的な構築:あなたが作成したすべてのもののための、あなた専用の第二の脳。意味による検索が可能で、MCPを介して使用するあらゆるAIチャットに接続でき、その上に自己改善型エージェントが構築されています。データ、その埋め込み、およびエージェントのメモリはすべて1つのデータベースに格納されます。

関連ノートブック: https://github.com/oracle-devrel/oracle-ai-developer-hub/tree/main/apps/second-brain


主なポイント

  1. このブログでは、Oracle AI Database上に個人の「第二の脳」を構築する方法を紹介しています。コンテンツ、埋め込み、合成されたWikiページ、エージェントメモリを1つのデータベースに保存することで、異なるAIクライアントやエージェントが同じコンテキストを共有できるようになります。
  2. MCPは、AIツール間で脳を移植可能にします。このシステムはモデルコンテキストプロトコルサーバーを介して脳を公開するため、ユーザーはデータを移動することなく、Claude、ChatGPT、またはオープンソースのクライアントに接続できます。
  3. Oracle AI Databaseは、統合されたメモリおよび検索レイヤーとして使用されます。このシステムは、リレーショナルデータ、JSONリレーショナルデュアル性、AIベクトル検索、データベース内MiniLM埋め込み、ハイブリッド検索、およびエージェントメモリテーブルを単一のエンジンで使用します。
  4. システムは時間とともに改善されます。新しいコンテンツが取り込まれ、埋め込まれ、分類され、Wikiに追加され、メモリの更新に使用されるため、ユーザーがより多くの資料を追加するにつれて、研究エージェントと将来のエージェントはより有用になります。
  5. プライバシーとセキュリティは設計の中心です。ブログでは、可視性の範囲設定、プライベートデータの取得除外とメモリ統合、シークレットスキャン、最小権限のデータベースアクセス、認証済みMCPホスティング、書き込みツールに対する人間の承認といった点を強調しています。

毎日AIを扱っている人なら、おそらくこれらの問題の両方を経験したことがあるでしょう。

まず一つ目は記憶力です。チャットは少し記憶するものの、多くを忘れてしまいます。エージェントは、ユーザーが入力したコンテキストしか認識できません。これらのツールが持つ記憶は各アプリ内に保存されるため、引き継がれません。つまり、各ツールがユーザーの情報を浅くしか保持しないため、既に知っていることを何度も説明しなければならなくなるのです。解決策は、コンテキストウィンドウを大きくすることではなく、コンテキストが実際に保存される場所を一つに絞ることです。

2つ目はベンダーロックインです。今日はClaudeをメインツールとして使っているかもしれませんが、明日にはChatGPTがあなたのニーズに合った新機能を提供したり、オープンソースのクライアントの方がプロジェクトに適しているかもしれません。技術革新は止まることなく進んでおり、ツールの切り替えは移行ではなく、選択であるべきです。しかし、これらのツールが必要とするあなたとあなたの仕事に関する情報は、あちこちに散らばっています。動画はここに、投稿はあちらに、メモやドキュメントは別の場所に、そして本当の思考が交わされたのは長時間のAIチャットだったりします。

だからこそ私は第二の脳を構築しました。そして、ここで皆さんと一緒に構築していくのもまさにそれです。それは、あなたが作成したすべてのものを格納し、意味で検索でき、使用するすべてのAIツールが共有できる場所です作成するものが増えるにつれて成長し、進化していきます。MCP (モデルコンテキストプロトコル)に対応しているため、チャットを自由に切り替えても失われることはありません。同じ脳がClaude、ChatGPT、オープンソースクライアントなど、あらゆるクライアントに接続できます。さらに、その上に構築するエージェントは、何も知らない状態から始めるのではなく、実際のメモリを持つため、汎用アシスタントでは答えられないような質問もできるようになります。

  • 「私がXというアイデアについて議論した会話を探してください。」
  • 「[ゲスト]との会話に向けて準備をしてください。普段のインタビューの進め方、過去に彼らとどのような内容を扱ったか、そして彼らの分野/会社における最新情報などを教えてください。」
  • 「私のシリーズの次の投稿のキャプションを、私のトーンで、これまでの内容を踏まえて作成するのを手伝ってください。」

なぜデータベースが中心となるのか?このようなシステムにおける最も難しい問題の一つは、コンテンツの保存ではありません。それは、検索、知識、メモリ、プライバシーといったあらゆるレイヤーに、一貫した保存場所を提供することです。だからこそ、Oracle AI Database を基盤として構築するのです。1 つのエンジンでリレーショナルデータと JSON ドキュメントを処理でき、JSON Relational Dualityによって同じ行から両方の形式を提供できるため、エージェントは分かりやすいドキュメントを読み取り、エンジンは正規化された真実をその下で保持します。AIベクトル検索とデータベース内で実行される埋め込みモデルを追加することで、データ、その意味、そしてエージェントのメモリがすべて一体化され、グルーコードを削減できます。

そして、どこでも実行できます。同じコードが、ラップトップ上の無料コンテナでも、 Oracle Cloud の Always Free Autonomous AI Databaseでも動作します。ここでいう無料は、本当に無料です。Always Free Tierには、 2 つの Autonomous AI Database (それぞれ 1 つの Oracle CPU と 20 GB、個人の頭脳には十分)、MCP サーバーをホストできる Always Free コンピューティング VM、および時間制限のない月間 10 TB の送信転送が含まれています。12 か月の試用期間でも、クレジットがなくなることもありません。このチュートリアルは、各要素の動作を確認できるようにローカルから始まり、最後にクラウドに移行します。私のものはクラウドにあります。そのため、どこからでもスマートフォンからアクセスできます。

ソースは自由に選択できます。Markdownの保管庫、ソーシャルメディア(YouTube、Instagram、LinkedIn)、Notion、AIチャット、ドキュメント、ブックマークなど、ユースケースに関係するあらゆるもの(コンテンツ、調査、業務知識、個人用Wikiなど)からお選びいただけます。公開サンプルから始めて、エンドツーエンドで構築し、全体の動作を確認した後、ご自身のコンテンツに適用します。最上位のエージェントは、学習内容を記憶し、使用するたびに精度が向上するリサーチエージェントです。

脳は製品であり、MCPはあらゆるものが脳に到達する経路である。エージェントとは、あなたが継続的に構築していくものである。

個人の「第二の脳」アーキテクチャを示す図。マークダウン、ソーシャル投稿、AIチャット、メモなどのユーザーソースは、コンテンツ、埋め込み、メモリ、プライバシー範囲を保存するOracle AI Database 26aiに送られます。研究エージェントとMCPサーバーは、Claude、ChatGPT、オープンソースモデルなどのAIクライアントに同じ知識を提供します。
統合された個人知識ベースは、コンテンツ、メモリ、および埋め込みをOracle AI Databaseに保存し、MCPを通じてそれらを一貫して公開します。

必要なもの:Homebrew 、Python 3.12がインストールされたMac 、そして約20分。Oracleの経験は不要です。すべての手順はコピー&ペーストで実行できます。エラーが発生した場合は、AIアシスタント(Claude、ChatGPT、まもなく構築中のAIによって駆動される予定)に貼り付けて、先に進んでください。多くの人がまさにこの方法で最初の本格的なシステムを構築しています。手順1~7はローカルでヘッドレスで実行されます(Docker Desktopやクラウドアカウントは不要です)。手順8では、常時稼働させたい場合に同じコードをOracle Cloudにアップロードします。

こちらの手順に従ってください。完全なコードはそちらから入手できます。この記事は完結型なので、これらの手順から直接ビルドできます。完全な実行可能なプロジェクト(すべてのローダー、エージェント、MCPサーバー)はGitHubにあります。

私たちが構築するもの:脳、そしてその脳の2つの使い方。

脳は3つの層と1つのデータベースで構成されています

1.コンテンツ:作成したすべてのものが、JSONドキュメントとして読み戻せる行として格納されます。

2.コンパイルされたWiki:そのコンテンツに基づいて合成されたトピックページ(自己維持型)。

3.エージェントメモリ:エージェントが学習した内容が4つの形式で格納されます。

さらに、

4. MCPサーバー: Claude、ChatGPT、オープンソースクライアントなど、あらゆるAIクライアントのツールとしての脳。チャットアプリはいつでも切り替え可能。脳は移動しません。

5.エージェント:自己改善型の研究エージェントから始まります。追加するエージェントはすべて同じ脳を共有します。

システム全体を1ページにまとめたものと、以降の手順を示すマップを以下に示します。

エンドツーエンドのアーキテクチャでは、ソースがローダーを経由してOracle AI Databaseに流れ込み、そこにコンテンツ、Wikiページ、ハイブリッド検索、プライバシールール、および複数のメモリタイプが格納されます。リサーチエージェント、日々の改善ジョブ、およびMCPサーバーは、AIクライアントとアプリケーションに知識を提供します。
コンテンツの取り込み、検索、メモリ管理、およびMCPへのアクセスは、単一のOracle AI Databaseアーキテクチャに統合されています。

それでは、一つずつ順を追って見ていきましょう。


ここでデータベースが登場します(すでにMarkdown Vaultを愛用している場合)。

多くの優れたセカンドブレイン設定は、マークダウンファイルのフォルダから始まります。このビルドは、マークダウンをコアに据えていますsources/コンテンツは、プレーンなマークダウンとフロントマターとして保持されます。これは、ポータブルで人間が読める正規のコピーです。

ここで変化するのは、その周囲のレイヤーです。このビルドの目標のうち4つは、本質的にはデータベースの要件です。

  • 意味による検索。セマンティック検索には埋め込みが必要であり、埋め込みはインデックス付きのストアに格納され、クエリされる必要があります。そのため、ファイルベースのシステムでは通常、ノートと並行してベクトルデータベースが構築されます。このビルドでは、それを単純に統合します。テキスト、そのベクトル、そして埋め込みモデル自体が1つのエンジンで実行されます。
  • プライバシーは記憶されるものではなく、強制されるものです。ファイルの場合、プライベートな情報をパイプラインから排除するには、全員(およびすべてのスクリプト)がフォルダ規則を遵守する必要があります。visibility列を使用すると、その意図がエンジンがすべての読み取りパス(検索、Wikiコンパイラ、メモリ統合、MCPツールなど)に適用する制約になります。これは、システムがスケジュールに従って更新されるときに最も重要になります。
  • ドキュメントのような感覚はそのままに、ドキュメントが劣化する心配はありません。Markdownがしっくりくる理由は、メモドキュメントだからです。つまり、1つのもので、上から下まで読み、どこにでも持ち運べます。一方、知識ベースが最終的に限界を迎えるのは、知識ベースが実はグラフ構造になっているからです。ページは情報源を引用し、他のページにリンクしますが、静的ファイルでは、これらの接続は単なるテキストであり、コンテンツが移動したり変更されたりするにつれて古くなります。Oracleはまさにこの矛盾を解決するために、JSONリレーショナルデュアル性という機能を開発しました。正規化されたテーブルがどのようにドキュメントを構成するかを一度宣言すれば、データベースは同じ行に対して両方の構造を提供します。アプリとエージェントは、引用がネストされた1つのJSONドキュメントとしてWikiページを読み取ります(ファイルと同じ「1つのもの」感覚)。その一方で、内部では、すべての引用が外部キーであり、コンテンツが変更されてもエンジンが一貫性を保ちます。この機能はステップ2で設定し、ステップ5でWikiがそれに依存します。
  • メモリは、並行して統合されます。エージェントメモリは、クエリ可能な状態です。リコールはベクトル検索であり、統合はトランザクション的に事実を書き換え、MCPサーバー、日々の同期、および複数のエージェントが同時に同じ脳を読み書きできます。
AI知識システムの4つの要件を列挙した図:ベクトルを用いたセマンティック検索、エンジンによるプライバシー保護、グラフとして表現されたリンクページ、および同時メモリストレージ。各要件は、個別のアプリケーションロジックではなく、データベース機能として提示されている。
コアとなるセカンドブレイン機能は、スタンドアロンサービスではなく、データベース機能に直接対応しています。

つまり、枠組みはマークダウンでもデータベースでもない。マークダウンは、その真価を発揮する部分(作成、移植性)で機能し、データベースは、実際の作業が行われる部分(検索、関係性、記憶、ガバナンス)で機能する。メモは脳に情報を与え、データベースは脳に思考を促す。

私にとって、これは「持続可能」という一言に尽きます。特定の用途に合わせて調整されたシステムを、次の用途のために再設計する必要がないようにしたかったのです。コンテンツ企画、調査、インタビュー準備など、次に何が必要になろうとも、同じ知識を様々な用途に活用できる、一つの基盤が欲しかったのです。

週末のガーデニングに手間をかけずに、成長するにつれて自動的にメンテナンスされるようなシステムを望んでいました。また、ツールの入れ替わりにも耐えられるようにしたかったのです。MCPレイヤーのおかげで、頭を動かさずにAIチャットを切り替えられるようになり、マークダウンの正規化レイヤーのおかげで、データはそれらのツールよりも長く保存されます。

一度構築すれば、永久に維持できる。


ステップ1:Oracle AI Databaseをローカル環境に起動する(約15分)

無料のOracle AI Databaseコンテナイメージをローカルで実行します。クラウドと同じエンジンを使用しているため、AIベクトル検索、JSONリレーショナルデュアル性、およびデータベース内ONNX埋め込みはすべてローカルマシンで動作します。以下のすべての処理はリポジトリ内で実行されます。

クリップボードにコピーされました
エラー: コピーできませんでした
# get the code (schema, setup scripts, loaders, the agents)
git clone https://github.com/oracle-devrel/oracle-ai-developer-hub.git
cd apps/second-brain

# container engine (headless, no Docker Desktop)
brew install colima docker docker-compose
colima start --cpu 4 --memory 8 --disk 60

# python env (3.12)
brew install python@3.12
python3.12 -m venv .venv
./.venv/bin/pip install -r oracle/agent/requirements.txt yt-dlp

# config (the CHANGE_ME_* placeholders work for the local sandbox)
cp oracle/.env.example oracle/.env

# start Oracle AI Database, then apply schema + load the embedding model
docker-compose -f oracle/docker-compose.yml up -d
./oracle/download-model.sh
./oracle/bootstrap.sh

✅ チェックポイント:本物であることを確認し、準備が整う。

クリップボードにコピーされました
エラー: コピーできませんでした
./.venv/bin/python -c "import sys; sys.path.insert(0,'oracle/agent'); import db; \
  print(db.connect().cursor().execute( \
  \"select product from product_component_version where product like 'Oracle%'\").fetchone()[0])"
# -> Oracle AI Database ...   (the edition suffix varies by container image)

これで、コンテンツスキーマ、Dualityビュー、4つのメモリテーブル、およびMINILM埋め込みモデルがロードされたライブデータベースが利用可能になりました。以降の処理はすべてこのデータベースに対して実行されます。


ステップ2:コンテンツを保存し、ドキュメントとして読み込む(JSONリレーショナルデュアル性)

公開されているYouTubeチャンネルをサンプルデータとして読み込み、独自のパイプラインを使用する前にその動作を確認できます。

クリップボードにコピーされました
エラー: コピーできませんでした
mkdir -p exports/youtube
# any public channel works; this uses Oracle's developer channel as neutral sample data
./.venv/bin/yt-dlp --skip-download --dump-json --playlist-items 1-7 \
  "https://www.youtube.com/@oracledevs/videos" > exports/youtube/videos.jsonl
./.venv/bin/python scripts/youtube.py
# -> loaded 7 YouTube videos -> sources/youtube/ + Oracle posts

データがどこに保存されるのか、そしてなぜこのストレージモデルに注目する価値があるのか​​を説明します。

JSONリレーショナルデュアルリティが解決しようとしている問題は、アプリケーション開発における最も古い課題の1つです。アプリケーションはドキュメント単位で考えます。投稿は1つの要素(テキスト、プラットフォーム、メディア)であり、コードで既にモデル化されているように、1つのJSONオブジェクトとして読み書きしたいと考えます。一方、データベースは正規化された行を必要とします。プラットフォームは1回だけ保存され(すべての投稿に重複して保存されない)、メディアは独自のテーブルに格納され、エンジンによって一貫性が強制されます。

数十年間、どちらか一方を選ばなければなりませんでした。ドキュメントストアは優れた操作性を提供しますが、ドキュメント間でデータが重複したり、更新が広範囲に及んだり、結合が弱かったりします。リレーショナルデータベースとORMを組み合わせると一貫性が得られますが、マッピング層が必要になったり、移行が困難になったり、オブジェクトリレーショナルデータベース特有のインピーダンスミスマッチが生じたりします。両方を運用して同期させるチームもありますが、結果として2つのコピーがずれてしまうことになります。

Dualityの答えは「選択しない」です。SQLでリレーショナルテーブルがどのようにドキュメントを構成するかを一度宣言すれば、データベースは同じ行に対して両方のインターフェースを提供します。ビューを読み込むと、すべてがネストされた1つのJSONドキュメントが得られます。ビューを通してJSONを書き込む(挿入、更新、削除)と、エンジンは基となる正規化されたテーブルを更新します。リレーショナルに行を変更すると、ドキュメントに即座に反映されます。同じデータ、2つの形状、同期コードは不要です。「Duality」は文字通りの意味です。

同じデータに対して、リレーショナルテーブルとJSONリレーショナルデュアルビューを定義するSQLの例。このビューは、ネストされたJSONを公開しつつ、単一のリレーショナルストレージモデルとセマンティック検索用のベクトル列を維持します。
JSONリレーショナルデュアルリティは、同一の基となるデータに対して、ドキュメントビューとリレーショナルビューの両方を提供します。

アプリはビューをJSONとして読み込みますが、データベースは内部でリレーショナルテーブルの一貫性を維持します。そして、これはエージェント時代においてますます重要になります。エージェントやMCPツールはJSONを消費する一方で、ガバナンスは依然として正規化された一貫性のある真実を求めているからです。Dualityは、1つのテーブルから両方のニーズに対応します。

ここでも装飾的な意味合いはありません。ステップ5では、エージェントが読み込むすべてのWikiページはDualityビューを経由します。1つのクエリで、引用がすでにネストされた状態でページが返されます。(詳細については、JSONリレーショナルDuality開発者ガイドを参照してください。)


ステップ3:意味(データベース内のベクトルモデル)で検索する

意味に基づいて検索するには、埋め込みが必要です。Oracle AI Databaseでは、外部の埋め込みAPIを呼び出す必要はありません。小さなONNXモデル(MiniLM)をデータベースに一度ロードし(ステップ1で既に実行済み)、その後SQLで埋め込みを生成します。

Oracle SQLがDBMS_VECTOR.LOAD_ONNX_MODELを使用してONNX埋め込みモデルをロードするコード例を示します。登録後、SQLは外部APIやデータ移動なしに、データベース内で直接埋め込みを生成できます。
Oracle AI DatabaseはONNX埋め込みモデルをホストできるため、データベース内でのベクトル生成が可能になります。

セマンティック検索は、今や単なるSQLです。クエリを埋め込み、コサイン距離でランク付けします。キーもデータもデータベースから取り出されません(詳細については、AIベクトル検索ユーザーガイドを参照してください)。

クリップボードにコピーされました
エラー: コピーできませんでした
SELECT title, caption
FROM   posts
ORDER  BY VECTOR_DISTANCE(content_embedding,
                          VECTOR_EMBEDDING(MINILM USING :q AS DATA), COSINE)
FETCH FIRST 5 ROWS ONLY;

✅ チェックポイント:試してみてください(APIキーは不要です)。

クリップボードにコピーされました
エラー: コピーできませんでした
./.venv/bin/python -c "import sys; sys.path.insert(0,'oracle/agent'); import db, content; \
  [print(f\"{r['dist']:.3f}  {r['title']}\") for r in \
   content.search_content(db.connect(),'protecting data in the cloud',k=3)]"

このリポジトリには2つの改良点があります。まず、長いコンテンツ(トランスクリプト、チャットなど)をテーブルに分割するcontent_chunksことで、クエリが正しい項目だけでなく、正しい箇所に確実に到達するようにします。次に、ベクトル検索とキーワード検索を相互ランク融合(Reciprocal Rank Fusion)で統合することで、純粋なベクトル検索では見逃してしまう可能性のある正確な名前、ハンドル、エラーコードなども検出します。さらに、この統合ではソースの種類に応じて重み付けを行うため、公開済みの記事はAIチャットのメモよりも、僅差のケースで優先的に表示されます。

⚡ Oracle AI Database にもこの機能が標準搭載されています。Oracle AI Database には、ハイブリッド検索機能が組み込まれています。これは、Oracle Text と 1 つの列のベクトルを組み合わせたハイブリッドベクトルインデックスを使用してクエリを実行するもので、融合モードとして RRF (私たちが独自に実装したアルゴリズム) も提供しています。今回の検索では、3 つのテーブル(投稿、チャンク、wiki ページをまとめてランク付け) にまたがるため、また RRF を明示的に確認することが学習の半分を占めるため、融合処理を独自に実装しました。本番環境で単一テーブルのハイブリッド検索を行う場合は、まず標準機能を利用することをお勧めします。 DBMS_HYBRID_VECTOR.SEARCH


ステップ4:研究エージェント+4種類のメモリ

お探しのエージェントはこちらです。キーを追加して( console.anthropic.comoracle/.envのAPIキーで作成)、実行してください。

クリップボードにコピーされました
エラー: コピーできませんでした
# oracle/.env:  ANTHROPIC_API_KEY=sk-ant-...
cd oracle/agent && ../../.venv/bin/python demo_research.py

これは、クロードとツールからなる、シンプルで分かりやすいループです。データベースが主要な処理を担います。そのツールには、コンテンツの検索、投稿の閲覧、Wikiページの閲覧、ライブWebの検索などがあります。あなたの作品に関する主張をコンテンツに基づいて裏付け、Webは最新情報の収集に活用します。

検索ボックスではなく第二の脳となる要素は、記憶です。エージェント記憶に関する文献で説明されている長期記憶の種類をモデル化し、それぞれを同じデータベース内のテーブルとして扱います(タイムスタンプ付きのインタラクション履歴として保存される会話記憶は、形式的には最も単純なエピソード記憶であり、このビルドでは専用のテーブルが割り当てられます)。

メモリテーブル中身
エピソード形式エージェントメモリ過去に実施されたすべての研究(質問、結果、情報源、教訓)
セマンティック意味記憶これらのランニングから抽出された確かな事実
会話的会話現在の複数ターンの状況
手続き型手続きメモリエージェントのツール(質問ごとの関連性に基づいて取得)
エピソード記憶、意味記憶、会話記憶、手続き記憶の4種類の記憶を一覧にした図。上向きの矢印は、会話から時間とともに永続的な意味知識へと自動的に抽出される過程を示している。
異なる種類の記憶データは別々に保存され、より高次の知識は自動的に抽出される。

これらは、Oracle の DeepLearning.AI コースでこのレイヤーを教えるのと同じ方法で、手作業で構築された学習トラック テーブル( ) であり、完全にローカルな Ollama パスで使用されるテーブルです (リポジトリは Ollama を構成するときに自動的に選択します)。ただし、新しいクローンがデフォルトで実行するのは Oracle の公式パッケージ(次のボックス) です。これは、意味的行と会話的行を自動抽出付きのテーブルとして管理します。これは、Oracle が維持およびベンチマークを行っているため、ユーザーが行う必要がないため、正直な推奨事項です。エピソード的および手続き的は、このビルドのコアの拡張で、両方のバックエンドで使用されます。MEMORY_BACKEND=custombrain_*

回答する前に、エージェントは関連する過去の実行結果と学習した事実を想起し、質問に対して自身のツールセットの優先順位を決定します。これが手続き記憶です。ツールが4つであればヒントとなり、40個であればどのツールを送るべきかを判断する基準となります。回答後、エージェントはその実行結果を記録します

そして、蒸留ステップは自動的に実行されます。デフォルト(パッケージ)では、OAMPのエクストラクタが各やり取りを自動的に永続的な意味記憶に変換します(このビルドのプライバシーガードはカスタム抽出指示として渡されます)。学習トラックでは、スケジュールされたジョブがエピソード記憶を意味事実、つまり読み取れる目に見える配管に統合します。どちらの方法でも、「何が起こったか」は「この作成者について私が今知っていること」になります。これが自己改善ループです。

クリップボードにコピーされました
エラー: コピーできませんでした
answer  →  record the run  →  recall + consolidate  →  answer better next time

使用頻度が高くなるほど、あなたのテーマ、繰り返し出てくる質問、そして不足している点を学習し、毎回同じ情報を生成する必要がなくなります。(デフォルトのバックエンドでは、パッケージはやり取りのたびにデータを抽出します。グローバルな統合処理はどちらの場合でも毎日実行され、学習トラックでは数回の調査実行ごとに自動的に実行されます。)

LLM は依存関係ではなく、設定スイッチです。LLM_PROVIDER(デフォルト、最も豊富なエージェント体験)、openai、またはollamaoracle/.env設定すると、wiki コンパイラ、メモリ統合、分類器、およびアイデアエージェントがすべて従います。コード編集は不要です。無料で完全にローカルで使用したい場合は、Ollama を使用します。を設定し、(および)を設定すると、ローカルデータベース、データベース内埋め込み、ローカル LLM など、どこにもアカウントを作成せずに、ビルド全体が $0 で実行されます。 (サーバーサイド Web 検索を使用する研究エージェントのツール ループは Anthropic 形式です。Claude で実行するか、Anthropic 互換ゲートウェイ経由で実行します。) その他すべて (データベース、スキーマ、セマンティック検索、MCP サーバー) はLLM フリーです。埋め込みは Oracle 内で実行されるオープンソースの MiniLM なので、検索にはAPI キーがまったく必要ありません(ステップ 3 のチェックポイントで証明済みです)。anthropicbrew install ollama && ollama pull llama3.2LLM_PROVIDER=ollamaLLM_MODEL=llama3.2

デフォルトはOracleの公式パッケージです。このパッケージの機能は以下のとおりです。新規クローンではOracle AI Agent Memory Packagepip install oracleagentmemoryリポジトリの要件に既に含まれています)が実行されます。このパッケージは、会話スレッドと、各やり取りから自動的に抽出される永続メモリを、SQLで読み取れるプレーンなテーブルとして同じデータベースに保存します。このビルドでは、そのうち3つの機能が実際に動作します。

特徴ここで何をするか
SearchStrategy.HYBRID意味的再現と完全一致を1つのOracle管理インデックスで実現
カスタム抽出手順プライバシー保護機能は管理された抽出装置の中に搭載されているため、「財務情報を暗記してはいけない」という原則は、このシステムにも当てはまります。
OracleDBEmbedder同じインDB MiniLMモデルを駆動するため、メモリ検索では埋め込みAPI呼び出しは発生しません。

Oracleがメンテナンスとベンチマーク(LongMemEvalで94.4)を実施しているため、ユーザー側でメンテナンスする必要のないレイヤーです。Oracle AI Agent Memoryの新機能については、その他の機能(バックグラウンド抽出、コンテキストカード、メタデータフィルタ、TTL)を解説しており、パッケージドキュメントには完全なAPI情報が記載されています。

手作業で構築したトラックも保持しておく理由は? 2つの理由があり、リポジトリが自動的に選択します。学習:自分で構築したテーブルでメモリの動作を確認することは、あらゆるメモリシステムのデバッグに役立ちます。Oracleのコースでレイヤーを手作業で教えるのはそのためです。完全ローカル:パッケージの自動抽出は高性能モデル向けに構築されているため、小規模なローカルモデルでは確実に動作させることができません。Ollamaを設定すると、リポジトリが自動的に手作業で構築したトラックに切り替わり、$0ビルドが記憶され続けます。(MEMORY_BACKENDどちらの場合でも選択を上書きします。)

研究エージェントが、ユーザー自身のコンテンツ(メモや動画など)からの引用を用いてAI推論に関する質問に回答し、そのやり取りをエージェントのメモリに記録する、模擬AIチャットインターフェース。
地に足の着いた調査員は、自身の知識に基づいて回答し、長期記憶を更新する。

ステップ5:自己改善型の知識ウィキを構築する

サンプルデータではなく、既に独自のデータを読み込んでしまった場合は、まずステップ7のプライバシースコープを設定してください。コンパイラ(およびメモリ統合)は、設定したcontentスコープのみを読み取るようにしてください。

RAGは、あらゆる問題に対してあなたの知識を再構築します。私たちは、それを一度コンパイルするレイヤーを追加します

クリップボードにコピーされました
エラー: コピーできませんでした
cd oracle/agent && ../../.venv/bin/python wiki.py        # needs ANTHROPIC_API_KEY

LLMはあなたのコンテンツを読み込み、相互リンクや出典元記事の引用を含む、統合されたトピックページを作成します。コンテンツを追加するにつれて、ページの内容も改善されます。更新は双方向で行われます。新しいコンテンツが関連するページを再コンパイルするだけでなく、既存のトピックの範囲外に新しいコンテンツが集積した場合は、新しいページを提案してコンパイルします。知識ベースは自動的に成長していきます。

このアイデアの由来を明記すると、このレイヤーは Andrej Karpathy 氏のLLM wikiコンセプトを実装しています。モデルが質問ごとに生のソースを再読み込みするのではなく、LLM はそれらを段階的にコンパイルして、永続的で相互リンクされた wiki を作成します (彼曰く、「Obsidian は IDE、LLM はプログラマー、wiki はコードベース」)。彼のスケッチはマークダウン ファイルを対象としています。ここではコンパイル対象がデータベースであり、これにより上記のアップグレードが実現します。意味で検索可能なページ、SQL で検証可能な外部キーとなる引用、そして毎日の同期でスケジュールできる段階的な再コンパイルなどです。

これは今回のビルドにおけるOracleの最も優れたデモと言えるでしょう。なぜなら、Wikiページはドキュメントである同時にグラフでもあるからです。

  • wiki_pages: ページ(JSONドキュメントベクトル埋め込み)
  • page_linksページ間の相互リンク(関係グラフ)
  • page_sourcesposts: あなたの(関係)への引用
  • wiki_page_dv:引用がネストされた単一の JSON ドキュメントとしてページを提供するDuality ビュー

つまり、1つのページでリレーショナル + JSONリレーショナル二重性 + AIベクトル検索が同時に実行され、エージェントは合成された知識に基づいて応答し、すべての主張を実際のビデオまたはメモに遡って追跡します。二重性ビューは単なる表示ではありません。エージェントとMCPサーバーで読み取られるすべてのWikiは、このビューを通過します。1つのクエリで、wiki_page_dv引用がすでにネストされたページが返され、通常記述する2つの手動結合が置き換えられます。

WikiページのJSONドキュメントビューと、リンクされたページおよび引用を示すリレーショナルグラフとの比較。どちらの表現も、Oracle AI Databaseによって管理される同じ基となるコンテンツを記述しています。
同じ知識は、JSONドキュメントとして照会することも、リレーショナルグラフとして維持することもできる。

視野を広げてみよう:自己改善が実際に存在する場所

「自己改善」は単一の機能ではありません。それは、異なる速度で実行される複数のループから成り立っています。メモリ(ステップ4)とWiki(ステップ5)の両方を構築した今、システム全体を見ることができます。

ループ走るより賢くなるもの
摂取する新しい投稿挿入時にデータベース内で生成される埋め込み。下流のすべての処理でそれが参照される。
エピソード記録すべての回答エージェントの経験。次の記憶はより豊かです
蒸留(交換+実行→永続的な事実)取引所ごと(パッケージ)・日次統合(両方)永続的な事実。エージェントはあなたのテーマを再導出するのをやめます
手続きランキングすべての質問ツール選び:40代に欠かせない4つのツールのヒント
Wikiの更新と成長毎日閲覧されたページは再コンパイルされ、新しいコンテンツクラスターは新しいページを獲得します。

そして、これらのループは互いに影響し合います。調査の実行結果は統合された事実となり、統合された事実はどのWikiトピックが存在するかを示します。Wikiページは次の調査結果の根拠となり、それぞれの結果が新たな実行結果となります。このプロセスを混沌としたものではなく、むしろ相乗効果を生み出すのはデータベースです。5つのループすべてが同じ管理されたテーブルを読み書きし、各エントリポイントでプライバシー範囲が強制されます。

視覚的に理解しやすい方のために、別の見方をご紹介します。

Oracle AI Databaseに格納されたコンテンツ、Wiki、およびメモリを示すアーキテクチャ。取り込み、記録、統合、ツールのランク付け、Wikiの更新という5つの反復プロセスにより、プライバシーの境界を尊重しながら検索性能が継続的に向上します。
5つの自動フィードバックループにより、1つのデータベース内で知識と記憶が継続的に向上する。

ステップ6:どこからでも使用する(MCP)

最後に、脳をあらゆるAIクライアントが呼び出せるツールにします。小さなMCPサーバーはClaudeChatGPTが期待するのと同じ形状の標準コネクタ契約を公開しsearchさらに、、、、、、および2つの書き込みツール(任意のチャットからアイデアをキャプチャする)と(会話自体を脳に保存する)を提供します。まず、stdio経由でローカルで実行します。Claude Desktopで、設定、開発者、構成の編集の順に進み、このブロックを追加し(クローンへの絶対パスに置き換えてください)、Claudeを再起動します。fetchwikitopicsrecentby_seriesoverviewingest_notesave_chat<repo>

クリップボードにコピーされました
エラー: コピーできませんでした
{
  "mcpServers": {
    "content-brain": {
      "command": "<repo>/.venv/bin/python",
      "args": ["<repo>/oracle/agent/mcp_server.py"]
    }
  }
}

次にClaudeを開き、「AI推論について私が扱った内容を私の脳内から検索して」と尋ねます。すると、Claudeはあなたのコンテンツから回答を返してくれます。ツールは機能範囲が限定されています。読み取りツールには注釈が付いているreadOnlyHintため、クライアントは自動的に許可できますが、書き込みツールは書き込みとしてマークされているため、クライアントはまず許可を求め(そしてMCP_READONLY完全に破棄します)。

作業内容を表示(教育に最適)。ブラックボックスのリストではなく、各search結果にはどのように見つかったかmatch(wiki / post / passage)、、、rankおよびscorefound_by、、semanticまたはkeyword両方)が表示されます。を追加するexplain=trueと、search_infoメソッド名を示すブロックも表示されます。ハイブリッド、データベース内 MiniLM 意味ベクトル(コサイン)と相互ランク融合によるキーワード検索の融合。そのため、デモでは意味と正確なキーワードの両方に一致する結果を確認できます。検索は隠されておらず、ページ上に表示されます。

複数のAIアプリケーションが単一のMCPサーバーを介して、永続的な知識データベースに接続する様子を示す図。このアーキテクチャは、AIクライアントを基盤となるメモリから分離することで、データが固定されたままモデルを変更できるようにする。
単一のMCPエンドポイントにより、複数のAIクライアントが1つの永続的な知識ベースを共有できます。

スマートフォンと ChatGPT の両方で使用したいですか? HTTP 経由で同じサーバーをホストします。これにより、あなたの脳がパブリック インターネット上に置かれるため、最初にロックダウンします (OAuth と許可リスト。下記のセキュリティを参照)。また、独自のデータをロードしている場合は、ホストする前にステップ 7 のプライバシー スコープ設定を実行します。起動したら、両方のアプリは同じ方法で接続します。サーバーの URL を指すカスタム コネクタ/mcpを追加し、サインインします (claude.ai: 設定、次にコネクタ。ChatGPT: 設定、次にアプリとコネクタ、開発者モードを有効にします)。私はFly.ioでホストしていますが、リポジトリのHOSTED_MCP ガイドでは、そのデプロイ手順をステップごとに説明しています。これは 1 つの小さなコンテナなので、Oracle Cloud の Always Free Arm VM を含む、どのコンテナ ホストでも動作します。

このビルドではカスタム MCP サーバーを使用していますが、その理由は次のとおりです。これはカスタム MCP サーバー(Python) です。ツールを完全に制御でき、claude.ai の Web/モバイルおよび ChatGPTが使用する OAuthカスタム コネクタフローに対応し、パターンは任意のデータベース上で再構築でき、ローカル コンテナで動作するため、クラウドは不要です。これは、ポータブルで内部構造を学習できるビルドに最適です。Oracle は、 Autonomous AI Database (クラウド)に組み込まれたフルマネージドMCP サーバー提供しています。インフラストラクチャを実行する必要がなく、ツールはSelect AI Agent (PL/SQL) ツールとして定義され、アクセスはネイティブ監査を備えたデータベース ID によって制御されます。Autonomous AI Database に脳があり、PL/SQL ツールでニーズが満たされる場合は、マネージド サーバーがゼロ オペレーションのパスです。私たちはそれを研究し、そのセキュリティのベスト プラクティスをこのカスタム ビルドに取り入れました。次のプロンプト インジェクション ガードと最小権限 DB ユーザーです。ドキュメント: Oracle Autonomous AI Database MCP サーバー

クロードとChatGPTがMCPを介して共有セカンドブレイン知識ベースから同じOracle学習リソースを取得している様子を並べて表示したスクリーンショット。
異なるAIアシスタントは、共有データベースから同じ基礎知識を取得する。

ステップ7:自分のものにする:情報源は非公開で最新の状態に保つ

サンプルデータを使って全体の動作を確認しました。今度はそれをあなたのコンテンツに適用してください。まず、サンプルデータがあなたの実際の脳に残らないように消去してください。

クリップボードにコピーされました
エラー: コピーできませんでした
./.venv/bin/python scripts/reset_sample.py

このシステムはコレクターに依存しないため、必要なのはそのpostsテーブルの行だけです。ソースのフィールドをtitlecaption(テキスト)、、、urlおよびpublished_atプラットフォームにマッピングします。埋め込みは挿入時にデータベース内で生成されます。

このリポジトリには、Obsidian (保管庫や任意のローカルドロップフォルダを指定すると、毎日の同期により常に最新の状態に保たれます。マークダウン形式のメモや、検索可能な参照資料として使用できる PDF/EPUB も含まれ、Wiki を汚染することはありません)、NotionYouTube (+ トランスクリプト)、Instagram (API またはエクスポート、キャプションリールトランスクリプト付き)、LinkedInGoogle Drive (特定のフォルダを共有: ドキュメントはメモに、PDF は検索可能な参照資料になります)、およびAI チャット(Claude/ChatGPT エクスポート) 用のローダーが同梱されています。いずれもコピー可能なテンプレートであり、リポジトリのEXPORT_GUIDE には、各プラットフォームのエクスポートを取得するためにクリックする場所が正確に示されています。

投稿した内容だけでなく、発言内容も記録しましょう。脳はテキストを検索するため、動画の場合は文字起こし(YouTubeの字幕、.srtInstagramのエクスポートファイルなど)を取得してください。そうすることで、動画の字幕だけでなく、動画の内容自体も検索可能になります。また、ソーシャルプラットフォームからデータをスクレイピングしないでください(ログイン、ボット対策、利用規約違反などによりアカウントにリスクが生じます)。各プラットフォームの公式APIまたはデータエクスポート機能を使用してください。

スコープによる非公開。ソースには、公開コンテンツと、公開したくない情報(財務情報、契約書など、どれが非公開かはあなただけが知っています)が混在します。すべてのアイテムにはvisibilitycontentまたはプライベート値のいずれかが付与され、すべての読み取りパスはcontent、検索、Wikiコンパイラ、メモリ統合にフィルタリングされます。

つまり、個人的な情報は検索対象から除外され自己改善ループからも除外される。これは、脳が一度脇に置いた情報を「永続記憶」として静かに再構築できないことを意味する。取り込み時の分類処理によって、個人的な情報や話題から外れた項目は自動的にタグ付けされる。

異なる表示設定を持つドキュメントを示す図。公開コンテンツは検索、Wikiコンパイル、メモリ抽出、およびMCPツールで利用可能ですが、非公開コンテンツは表示フラグを使用してすべての読み取りパスから除外されます。
プライバシーは、制限付きコンテンツをすべての検索およびメモリパイプラインから除外することによって保護されます。

ループ処理で常に最新の状態を維持します。新しいコンテンツは、派生レイヤーが最新の状態に保たれている場合にのみ有効です。スケジュールされたジョブは、ソースの取得→分類→Wikiの更新→メモリの統合という順序を強制するため、合成されたページや学習された事実が古くなることはありません。スコープのみを読み取るためcontent、自動更新は安全に保たれます。

各ソースタイプには、鮮度維持のためのパスがあります。APIソース(Instagram、Notion)は、毎日のジョブによって自動的に取得されます。公開メタデータ(YouTube)は、公開するたびにローダーが再実行されます。エクスポート専用ソース(ChatGPT、Claude、LinkedIn)にはプッシュAPIがないため、毎月リマインダーを設定して最新のエクスポートを送信してください。その場で思いついたアイデアは、あらゆるAIクライアントからMCPを通じて取り込まれますingest_note

守るべきルールが一つあります。チャットのエクスポートを再インポートすると可視性タグがリセットされるため、再構築を行う前に分類処理を再実行する必要があります。同期ジョブはこの状態を検知し、安全策として自動的に再実行します。

オプション:コンテンツをシリーズにグループ化できますフィールドseriesを使用すると、チュートリアルシリーズ、インタビュー番組、書籍のメモ、週刊アップデート、製品ラインなど、関心のある名前付きグループにコンテンツをタグ付けできます。タグ付けすると、検索結果の各項目にシリーズがフラグ付けされ、by_seriesツールがそれを一覧表示するため、アシスタントは「チュートリアルシリーズのすべてをリストアップして」といった質問に答えることができます。コンテンツに合わせて自由に定義してください


ステップ8:クラウドで常時接続を実現する

上記のすべてはローカルで実行されますが、自分のデスクでしかアクセスできない脳は半分の脳です。それをOracle Autonomous AI Databaseに移行します(Always Freeティアはこのビルドをカバーしています:それぞれ1つのOracle CPU + 20 GBのAutonomous AI Databaseが2つ、時間制限なし):同じエンジン、管理、バックアップ、常時稼働で、ホスト型MCPと電話のストーリーを現実のものにしています。アプリはコードの変更なしでウォレット経由で接続します。同じONNXモデルをロードし、データをコピーすれば、クラウドで実行できます。これが私の実行方法です。リポジトリのCLOUD_MIGRATIONガイドで手順をステップごとに説明しています。

ローカル環境は、ご希望であれば完全にプライベートな状態を維持できます。また、コピー スクリプトはデフォルトではコンテンツ スコープのみを送信するため、データがクラウドに移行してもプライベート データはローカルに保持されます。


セキュリティ:これは飛ばさないでください

脳はあなたのデータを保持しているので、そのように扱ってください。このリポジトリにはこれらの設定が組み込まれています。フォークする場合は、これらの設定を有効にしたままにしてください。

  • 取り込む前に編集してください。AIチャットやコーディングの記録にはAPIキーが漏洩する可能性があります。秘密のパターンはデータベースに格納される前にreview.py 削除してください。スキャンによって、漏洩した可能性のあるものがないか確認します。
  • プライベートデータは分離し、自己改善ループから除外してください。各項目のスコープを設定し、プライベートスコープは検索可能な脳から除外し、自己改善を行う部分(メモリ統合、Wikiコンパイラなど)はコンテンツスコープのみを読み取るようにしてください。そうしないと、脳がプライベートな事実を「永続メモリ」に密かに再導出してしまう可能性があります。最もプライベートなデータはローカルに保存し、公開しないでください。取り込み時に分類し、インポート後には毎回再確認してください。(パターンを教えるだけで、プライベートにしている内容をそのまま公開しないでください
  • 記憶される内容を再確認し、指示するだけにとどまらないようにしてください。メモリ抽出はプロンプトに基づいて実行され、プロンプトに続くLLMは部分的な準拠を保証するものではありません。ある評価では、仕込まれた金額は正しく削除されましたが、契約条項がすり抜けてしまいました。そのため、このビルドでは多層防御を追加します。構造的なプライバシースイープoamp_memory.enforce_privacy独自のカテゴリに合わせて調整する拒否リスト)が、抽出されたすべてのメモリを再確認し、各交換後および毎日の同期時にパッケージのライフサイクルAPIを通じて違反者を削除します。指示は提案であり、スイープは強制です。
  • 秘密情報を決して公開しないでください。 .envクラウドウォレットや生のコンテンツはgitignoreで無視されます。そのままの状態を維持し、パスワードマネージャーに実際のコピーを保存し、公開されているものはすべて定期的に更新してください。
  • 最小権限の原則に基づき、公開データベースは使用しません。アプリは制限付きDBユーザー(管理者権限なし)として実行され、データベースはインターネットに公開されることはありません。データベースと通信するのはMCPサーバーのみです。
  • ホストする場合は、正面玄関を施錠してください。公開MCPでは、すべてのリクエストに対して認証が必要です。claude.ai/ChatGPTの場合、これはOAuthと許可リストを必要とするため、有効なログイン後でも、認証されるのはあなたのアカウントのみです。サーバーは、許可リストが空の場合、起動を拒否します
  • 取得したコンテンツはデータとして扱い、指示(プロンプト挿入)として扱わないようにし、書き込み/更新ツールはすべて人間の承認を得るようにしてください。

完全なチェックリストSECURITY.md

安全に、あなたのものにしましょう

重要なのは、これを第二の脳として複製することです。その際、プライバシーと信頼性を確保するための7つのステップをご紹介します。

  1. 実際のデータがデータベースにアクセスする前に、すべてのデモ用パスワードを変更してください。
  2. まず、独自のカテゴリを決定してからデータを取り込みます。分類器の基準を独自のデータに合わせて調整しインポートのたびに実行します。また、カテゴリの内容は公開しないでください(具体的な内容ではなく、パターンを教えるようにしてください)。
  3. ホスティング前に独自の認証を設定してください。独自のOAuth許可リストまたはベアラートークンが必要です。認証が設定されていない状態ではサーバーは起動しないため、意図せずアクセスが許されることはありません。
  4. 機密情報、クラウドウォレット、生のエクスポートデータは絶対にコミットしないでください。また、派生コンテンツを共有する前に、漏洩した鍵がないかスキャンしてください。
  5. 個人設定をカスタマイズできます。情報源、シリーズラベル、Wikiトピックなどです。コードは汎用的で、あなた固有の情報はすべて設定ファイルとデータに含まれています。
  6. 変更後にテストスイートを実行します./.venv/bin/python tests/test_brain.pyスキーマ、検索、Dualityビュー、メモリを実際の脳と照合して、数秒でチェックします。
  7. ゴールデンセットを保持し、正しさだけでなく品質も評価します。テストはコードが実行されることを証明し、評価はシステムが正しいものを見つけて言うことを証明します。リポジトリには、フレームワークを必要としない、プレーンな Python と JSON の 4 つのクエリが同梱されています。tests/eval_retrieval.py(ランキングを維持する必要のあるゴールデンクエリ、ランキングに触れるすべての後に実行、無料)、 (tests/eval_classifier.pyプライバシー分類器はレビューしたラベルにまだ同意しますか?)、tests/eval_verify.py(捏造を仕込み、精度ゲートがまだそれらを検出していることを確認します)、tests/eval_grounding.py(研究回答は、引用すべきソースを引用していますか?)。パッケージ (デフォルト) を実行する場合、tests/eval_oamp.pyパッケージのサイレント障害モードを検出する 7 つのプローブ (抽出スモーク、プライバシーガード漏洩テスト、リコール、スコープ分離、削除、アップグレードカナリア、構造スイープ用の仕込み漏洩強制テスト) を追加します。パッケージまたは抽出モデルの変更ごとに実行します。これらを機能させる習慣は、クエリが何かを見つけるはずなのに見つからない場合は、それを修正し、ゴールデンセットに追加して、二度と静かに壊れないようにすることです。

これはほんの始まりに過ぎません。あなたはプラットフォームを構築しました。

一歩引いて、実際に何がここにあるのかを見てみましょう。それは単一の要因ではありません。それは複合的に作用する3つの層です。

  • :コンテンツ、その意味、統合されたWiki、そして4種類の記憶を1つのデータベースに格納します。新しい情報源を追加するたびに、下流のすべてがより賢くなります。
  • MCPソケット:ツールとしての脳。Claude、ChatGPT、オープンソースクライアント、そして今後リリースされるあらゆるMCPクライアントに接続可能。脳を一度構築すれば、使用するすべてのAIインターフェースからアクセスできます。
  • エージェントについて。ここが拡張性を持つ部分です。エージェントは脳を共有します。リサーチエージェントはエージェント1号で、自己改善ループ(記録→想起→統合)によって、将来のすべてのエージェントが読み取る同じ記憶が強化されます。リポジトリには、このパターンを証明するためにエージェント2号が同梱されています。これは、統合された事実(テーマ、フォーマット、ギャップ)を読み取り、実際に作成したものに基づいて次に何を作成するかを提案するアイデアエージェントです。脳が重い処理を行うため、コード行数は約90行です。(リポジトリには、同じサイズのエージェントがさらに2つ同梱されています。週刊ダイジェストエージェントと、ソースが古くなったときに通知するLLM不要の鮮度アラームです。)

次のエージェントは、あなたの仕事に必要なあらゆるものに対応できます。会議準備のブリーフィング担当者、キャプション作成担当者、あなたの専門分野に特化したリサーチアシスタントなどです。それぞれのエージェントは小規模ですが、難しい部分(情報の検索、記憶、情報整理、プライバシー保護)は既にプラットフォームが担っています。そして、それぞれのエージェントが、残りの部分にとって記憶をより豊かなものにしてくれます。

エージェント以外にも、この上に構築できるものはたくさんあります。この頭脳は、API を介してアプリケーションを動かすことができます。MCPサーバーは既に HTTP に対応しているため、同じ機能の上に薄い REST レイヤーを追加することで、コンテンツ ダッシュボード(リンク グラフとしての Wiki、ライブ ストリームとしてのメモリ、一目でわかるループの状態) や、思いつく限りのあらゆるアプリケーションを提供できます。あるいは、ミドルウェアを完全に省略することも可能です。Oracle REST Data Services (ORDS) を使用すれば、Autonomous AI Database 内のテーブルやDuality ビューを直接 REST 対応にできます。wiki_page_dvアプリケーション サーバーを一切使用せずに、JSON エンドポイントとして機能します。1 つの頭脳から、エージェント、チャット、アプリケーションがすべてアクセスできます。


最終的に得られるもの

コンテンツ、その意味、統合された知識、そしてすべてのエージェントが共有する増大し続けるメモリを格納する単一のデータベース。あらゆるAIクライアントに接続できるMCPサーバー。使用するほどに性能が向上する、数多くのエージェントの最初の1つ。何度も読み返す必要のあるメモの山ではなく、作成すればするほど、そしてその上に構築すればするほど、より良くなる基盤。

それを複製して、自分のコンテンツに向け、自分だけが答えを知っているような質問をしてみてください。

楽しく建築しましょう!

完全な実行可能なコードとステップバイステップのリポジトリワークショップ: https://github.com/oracle-devrel/oracle-ai-developer-hub/tree/main/apps/second-brain


よくある質問

Q: この手順を実行するには、Oracle Cloud アカウントが必要ですか?最初は必要ありません。ステップ 7 まではすべて、無料の Oracle AI Database コンテナ内でローカルに実行されます。AI を常にオンにして、どこからでもアクセスできるようにしたい場合 (スマートフォン、ChatGPT、ホスト型 MCP など)、ステップ 8 では同じコードをクラウド上の Always Free Autonomous AI Database に移行します。

Q: LLM API キーは必要ですか?エージェント、wiki コンパイラ、分類器のみ必要です。セマンティック検索は、API キーを一切必要としない、データベース内の MiniLM 埋め込みモデル上で実行されます。またLLM_PROVIDER=ollama、 を使用すれば、ビルド全体が無料で完全にローカルで実行されます。

Q: Claude または ChatGPT を使用する必要がありますか?いいえ。MCP と通信できるものであれば何でもフロントエンドとして使用できます。ここに示されているのは Claude と ChatGPT の 2 つですが、サーバーが標準コネクタ契約を実装しているため、オープンソースの MCP クライアントも同様に接続できます。エージェントの背後にある LLM も同様に交換可能です。、 がLLM_PROVIDER同梱されておりプロバイダーは を尊重するため、OpenAI 互換のホストであればどれでも動作します (たとえば、Hugging Face Inference)。 の小さなアダプタは、新しいプロバイダーが登場したときに追加できるように構築されています。研究エージェントのサーバー側の Web 検索ループだけが Anthropic 形式になっています。anthropicopenaiollamaopenaiOPENAI_BASE_URLllm.py

Q: 既にMarkdownの保管庫を持っていますが、それを手放さなければならないのでしょうか?いいえ。このビルドでもMarkdownは標準的で移植性の高いオーサリングレイヤーとして残ります。データベースは、ファイル単独では実現できない機能、つまり意味的検索、プライバシーの保護、関係性の維持、および同時実行エージェントメモリを追加します。

Q: 私が注意を払わなくても、どのように最新の状態に保たれているのですか?毎日実行されるスケジュールされたジョブが、APIソースを取得し、分類し直し、Wikiを更新し、メモリを統合するという順序で処理します。エクスポート専用のソース(チャットのエクスポート、LinkedInなど)については、定期的に手動でエクスポートする必要がありますが、それ以外はすべて自動で行われます。


詳細はこちら:Oracle公式リソース

このビルドが関わるすべての要素には、より深く掘り下げるための無料の公式な道が用意されています。

コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

ミリ秒の問題: BCCグループとOCIが市場データ・パフォーマンスを再定義する方法(AWSに対するベンチマークを使用) (2025/11/13)

OCI GoldenGate を使用する adminclient - 基本操作 (2023/04/01)