Oort について
Oortは、事実の更新と過去の履歴保持により、情報の変化に対応するオープンソースのAIエージェント向けメモリーです。時点を指定した検索や想起理由の確認ができ、CLI、SDK、MCPサーバーを提供します。
主な機能
- 01簡潔な事実の保存と更新
- 02置き換え・訂正された履歴の保持
- 03有効性で絞り込む複合検索
- 04新しい記憶と古い履歴の階層化
- 05想起結果の順位付け理由を説明
活用シーン
- 01エージェントのセッション間でプロジェクト記憶を共有
- 02現在有効なユーザー情報を検索
- 03過去の時点で把握していた事実を確認
- 04MCPクライアントやアプリにメモリーを接続
MCP 対応
stdioのMCPクライアント向けに、記憶ツール、スキーマ、説明を備えたローカルMCPサーバーを提供します。CLIから対応エージェントを接続・設定することもできます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.oortcloud.dev/mcpclaude mcp add --transport http oortmem-oort https://mcp.oortcloud.dev/mcp{"mcpServers":{"oortmem-oort":{"type":"http","url":"https://mcp.oortcloud.dev/mcp"}}}Cursor で開く{"servers":{"oortmem-oort":{"type":"http","url":"https://mcp.oortcloud.dev/mcp"}}}VS Code で開く{"mcpServers":{"oortmem-oort":{"type":"http","url":"https://mcp.oortcloud.dev/mcp"}}}{"mcpServers":{"oortmem-oort":{"serverUrl":"https://mcp.oortcloud.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
AI エージェント向けのオープンソースメモリー。
古い事実は上書きせず、終了扱いにします。古い履歴は安価なストレージに移します。
どの想起についても、選ばれた理由を説明できます。
Oort を選ぶ理由
エージェントはセッション間で情報を忘れてしまいます。よくある解決策は、増え続けるベクトルストアです。これには2つの問題があります。古くなった事実が優先され続け(「ベルリン在住」が「リスボンに引っ越した」より上位になるなど)、保存したメッセージが増えるたびに料金も増えていきます。
Oort は太陽系が物質を保つように、メモリーを保持します。
| ティア | 名前 | 保存されるもの | 想起 |
|---|---|---|---|
| ホット | 光球 | 直近に起きたことと、固定されたすべての情報 | 即時。検索は不要 |
| ウォーム | カイパーベルト | 過去のセッションから抽出した短い事実。完全にインデックス化されています | 数ミリ秒 |
| コールド | オールトの雲 | 古い履歴。zstd で圧縮されています。テキストは残し、容量の大きいベクトルを削除します。 | 再び必要になったときに戻ります |
事実が変わると、古い事実には「置き換え済み」と印を付け、履歴として保持します。事実が誤りだと判明した場合は、「訂正済み」と印を付けます。想起では現在の真実が返されます。ただし、特定の日付時点の状態を示す --as-of、事実の --history、ある時点で --known-at だった内容を指定した場合は除きます(または「3月には何を使っていた?」と尋ねてください)。
クイックスタート
CLI をインストールし(Node 22.15 以降)、エージェントを接続します。oort setup はエージェントを検出し、キーの設定方法を尋ねてから、それらを接続して簡単なチェックを実行します。各手順はスキップできます。
npm install -g oortmem
oort setup は、エージェントが実行する管理対象のコピーも ~/.oort/cli にインストールします(npm i -g --prefix ~/.oort/cli oortmem)。そのため、nvm、fnm、Volta、asdf で Node のバージョンを切り替えても、フックや MCP エントリーは引き続き動作します。詳細。
後から更新するには oort update を実行します。ここにあるすべてのコピー(Claude Code のフックが実行する管理対象のコピーも含む)を更新し、ストアを移行して oort serve を再起動します。
oort setup
oort recall "where does the user live"
oort explain "where does the user live" # each stage's rank and score
すべてのコマンドとフラグについては、docs/cli.md をご覧ください。独自のコードから Oort を使うには(import { createOort } from 'oortmem')、SDK は docs/sdk.md、リファレンスは docs/sdk-reference.md、examples/ をご覧ください。ソースからビルドするには、次を実行します:git clone https://github.com/oortmem/oort && cd oort && pnpm install && pnpm build && cd packages/cli && pnpm add -g .(pnpm 12)。
対応環境
Claude Code(フックと MCP サーバー)、Claude Desktop、Codex、Cursor、Gemini CLI、VS Code、および stdio 経由のあらゆる MCP クライアントに対応しています。oort connect <host> は設定を書き込み、古いファイルをバックアップして差分を表示します。Claude Code ガイド。
コーディングエージェントで Oort を使って開発する
oort-sdk スキルは、TypeScript SDK(oortmem の createOort)、マルチユーザーアプリ、Vercel AI SDK、LangGraph.js、OpenAI Agents JS、サーバーレス、ネイティブの Python クライアント(from oortmem import Oort)、その他の言語向けの CLI の JSON を使って、Oort を独自のアプリやエージェントフレームワークに組み込む方法をコーディングエージェントに教えます。スキル内のコードブロックはすべて、テスト済みの例です。これは独立したプラグイン oort-dev なので、「Oort を使った開発を手伝って」という用途では、「自分のセッション用のメモリ」(oort プラグイン)をインストールせずに済みます。その逆も同様です。
Claude Code:
claude plugin marketplace add oortmem/oort
claude plugin install oort-dev@oortmem
(または、セッション内で /plugin marketplace add oortmem/oort と /plugin install oort-dev@oortmem を実行します)
Codex:
codex plugin marketplace add oortmem/oort
codex plugin add oort-dev@oortmem
(または Codex で /plugins を実行します)
SKILL.md を読み込むその他のエージェント(Cursor、Gemini CLI、GitHub Copilot、OpenCode など):skills/oort-sdk をスキルフォルダーにコピーします。たとえば、リポジトリ内の .agents/skills/oort-sdk にコピーするか、npx skills add oortmem/oort --skill oort-sdk を実行します。各ツールの詳細については、skills/README.md をご覧ください。
仕組み
flowchart LR
T[Agent turn] --> S[Scrub secrets]
S --> W[Writer: distil short facts]
W --> G{Decide: add, update,<br/>supersede or skip}
G --> H[(Photosphere<br/>hot)]
H -- consolidate --> K[(Kuiper Belt<br/>warm)]
K -- age out --> C[(Oort Cloud<br/>cold, zstd)]
Q[Recall query] --> F[Lexical + vector<br/>validity filter]
F --> R[Fuse and rerank,<br/>freshness breaks ties]
K --> F
C -- stub and entities --> F
C -. hydrated when returned .-> A
R --> A[Memory block<br/>for the prompt]
- 書き込みパス。 各ターンから、まずシークレットをすべて除去します。小型の書き込みモデルが内容を短い事実にまとめ、判断モデルが各事実を既存の保存内容と比較し、追加、更新、古い情報の置き換え、またはスキップを判断します。
- 読み取りパス。 キーワード検索(SQLite FTS5)とベクトル検索(sqlite-vec)を同時に実行します。順位付けの前に、有効でなくなった事実を除外します。結果を統合し、有効な場合は再順位付けを行います。新しさは同点の場合にのみ考慮されるため、新しい事実がより適切な一致を上回ることはありません。
- ローカル優先。 すべてのデータは、圧縮されたコールドデータのブロブと 1 つの SQLite ファイルにまとめて、お使いのマシン上の
~/.oortに保存されます。Oort Cloud を選択しない限り、ホストされることはありません。API キーも Oort Pro のログインもない場合、ローカルコマンドはネットワーク呼び出しを一切行いません(検索はキーワード検索にフォールバックします)。また、テストではすべてのソケットをブロックした状態でコマンドを実行します。例外は、新しいリリースを確認する 1 日 1 回のチェックのみです。npm のレジストリに 1 回リクエストを送信しますが、ユーザーに関する情報は送信しません。OORT_NO_UPDATE_CHECK=1で無効にできます(詳細)。
パッケージ
| パッケージ | 機能 |
|---|---|
oortmem | oort コマンドライン(セットアップ、コネクター、ローカル MCP サーバー、想起、インポートとエクスポート)と TypeScript SDK(ドキュメント) |
@oortmem/core | エンジン:シークレットのスクラブ、書き込みゲート、ハイブリッド想起、フュージョン、階層化、プロジェクトスコープ |
@oortmem/store-sqlite | FTS5 と sqlite-vec を使用した SQLite ストレージ、および zstd コールドブロブ |
@oortmem/writer | 会話のターンを、短く自己完結した事実に変換します |
@oortmem/decide-jev | TypeSafe Jev を使用して、決定の追加、更新、置き換え、またはスキップを行います |
@oortmem/embed-voyage | Voyage AI による埋め込み |
@oortmem/rerank-voyage | Voyage AI による再ランク付け |
@oortmem/local-models | CPU 上での埋め込みと再ランク付け(ONNX Runtime):キーもアカウントも不要 |
@oortmem/claude-code | Claude Code フックとトランスクリプトのインポート |
@oortmem/mcp | あらゆるメモリバックエンド上で提供される MCP ツール、スキーマ、指示、スキル |
PyPI の oortmem | ネイティブ Python クライアント(Oort、AsyncOort;ドキュメント)と oort コマンドのランチャー |
Claude Desktop、Claude Code、Codex、Cursor、Gemini CLI 向けのインストールバンドルは
distribution/ にあります。
このリポジトリに含まれるのは、オープンソースのエンジンと CLI のみです。ホスト型サービス(oortcloud.dev、Oort Cloud、Oort Pro リレー)は別のサービスであり、エンジンと CLI は Oort Pro の使用時に限り、HTTPS 経由で接続します。
キーを使うか、Oort Pro を使う
Oort は 3 つのモデルサービスを呼び出します。Voyage AI(埋め込みと再ランク付け)、TypeSafe(決定)、Anthropic(ライター)です。oort keys set を実行して、ご自身のキーを設定してください。キーは macOS ではキーチェーンに、Linux と Windows では 0600 の認証情報ファイルに保存されます。
または、キーもアカウントも不要で実行できます。npm i -g @oortmem/local-models && oort models pull を実行すると、小型の埋め込みモデルと再ランク付けモデル(58 MB、MIT および Apache-2.0)がダウンロードされ、オフラインで CPU 上で動作します。新しいメモリの保存には、引き続き決定モデルとライターモデルが必要です。ローカルモデル。
または、Oort Pro をご利用ください。月額 19 ドルで、該当する場合は VAT 込みです。API キーは不要です。oort login を実行し、続けて oort cloud use を実行すると、ダッシュボード、星図、claude.ai および ChatGPT 用コネクターを備えた Oort Cloud にメモリを保存できます。メモリはいつでもエクスポートまたは削除できます。または、メモリをお使いのマシンに保存したまま、コンテンツを保存しないリレーのみを利用することもできます。料金。
プロジェクトと信頼
メモリはプロジェクトごとに分離されています。デフォルトでは、ID はメインリポジトリのルートから取得されるため、Git のワークツリーはメインのチェックアウトとメモリを共有します。リポジトリの oort.config.json にある project.id は、oort project link を実行するまで無視されます。そうしないと、クローンしたリポジトリから別のプロジェクトのメモリを読み取れてしまう可能性があるためです。詳しくは docs/cli.md をご覧ください。
開発
pnpm install
pnpm verify # public-repo and copy checks, format, lint, build, typecheck and every test
エクスポート形式については、docs/export-format.md に記載されています。
セキュリティ
脆弱性の報告は、公開の issue ではなく [email protected] までお送りください。
ライセンス
Apache 2.0。スウェーデン、ヨーテボリで開発されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。