Skip to content

Latest commit

 

History

History
403 lines (285 loc) · 18.8 KB

File metadata and controls

403 lines (285 loc) · 18.8 KB
seekdb logo

Write · Search · Fork — AI エージェントのためのステートストア

GitHub Stars Latest Release Commit Activity Contributors Issues License Downloads Join Discord Documentation Ask DeepWiki follow on LinkedIn YouTube

MySQL 互換 · 組み込み / サーバー両対応 · ベクトル + 全文ハイブリッド検索 · COW サンドボックス

⚡ ストリーミング書き込み + 検索で 1,523 QPS(10× Milvus、3× Elasticsearch)
🌿 FORK/MERGE サンドボックスでエージェントが安全に探索・自由にロールバック
🔍 ベクトル + 全文 + スカラーを 1 本の SQL で完結
🐬 完全な ACID、MySQL プロトコル、LangChain / LlamaIndex / Dify にネイティブ対応

English | 中文版 | 日本語

30 秒で試す · クイックスタート · なぜ seekdb か · エコシステム · 開発

seekdb が役立つと思ったら、star をお願いします — より多くの人にプロジェクトを届けられます。


⚡ パフォーマンス概要

seekdb ベンチマーク:Milvus の 10.7 倍、Elasticsearch の 3.2 倍の QPS

📖 ローンチブログを読む → · 🔁 ベンチマークを再現する →


⏱️ 30 秒で試す

seekdb 30 秒デモ
pip install -U pyseekdb   # pyseekdb は seekdb の Python SDK です

📋 demo.py ソースを見る →

サーバー不要、スキーマ定義不要、エンベディング設定不要。組み込みモードならプロセス内でそのまま動作し、たった 1 行でサーバーモードや OceanBase 分散モードに切り替えられます。その他の例 →


✨ なぜ AI エージェントに seekdb なのか?

🔥 ストリーミング書き込み + 並行検索、P99 スパイクなし

エージェントのワークロードは「絶え間ない書き込み + ミリ秒単位の読み取り」が本質です。seekdb の**非同期インデックスパイプライン(Change Stream)**が DML とインデックス構築を分離し、2 レベル HNSW(インクリメンタル + スナップショット)によって、書き込み直後のベクトルが即座に検索可能になります。

seekdb 非同期インデックスパイプラインアーキテクチャ

書き込みパスはコミット後、インデックス構築を待たずに即座にリターンします。Change Stream パイプラインが redo ログを非同期で消費し、デルタ HNSW を更新。クエリはデルタインデックスとスナップショットインデックスの両方にきめ細かい読み取りロックでアクセスします — これが高並行性でも P99 が安定し続ける理由です。

実測結果:1,523 QPS、並行 P99 はわずか 21.7 ms — Milvus の 10.7 倍の QPS を達成。並行数上昇時の P99 ジッターは 1.1 倍に留まります(同一ワークロードで ES / Milvus は約 10 倍)。

ソース: src/share/change_stream/ · src/share/vector_index/

🌿 コピーオンライトサンドボックスでエージェントが自由に探索

FORK DATABASE でデータベース全体を数秒でスナップショット — データコピーはゼロ。エージェントはサンドボックス内で自由に実験(書き込み、クエリ、テーブル破壊すら可能)し、MERGE TABLE で成果をメインラインに反映するか、DROP DATABASE で丸ごと破棄。アプリケーション層の保存/復元ではなく、カーネルレベルの COW で実現しています。

-- 数秒でスナップショット、データコピーなし
FORK DATABASE agent_state TO agent_sandbox_42;

-- エージェントがサンドボックスで自由に読み書き...
USE agent_sandbox_42;
INSERT INTO memory (session_id, embedding, content) VALUES (...);

-- 成果をメインラインに反映(戦略:FAIL / THEIRS / OURS)
MERGE TABLE agent_sandbox_42.memory INTO agent_state.memory STRATEGY THEIRS;
-- ...または破棄:
DROP DATABASE agent_sandbox_42;

ソース: tools/deploy/mysql_test/test_suite/fork_table/

🔍 1 つの SQL でハイブリッド検索

ベクトル + 全文 + スカラーフィルターを単一の実行プランに統合。クライアント側での N+1 マージも、結果を貼り合わせるグルーコードも一切不要です。

SELECT id, title, l2_distance(emb, '[0.12,0.34,...]') AS dist
FROM docs
WHERE MATCH(content) AGAINST('quarterly report')
  AND author_id = 42
  AND created_at > '2026-01-01'
ORDER BY dist APPROXIMATE LIMIT 10;

🐬 MySQL 互換、ACID、組み込み可能

実績ある OceanBase SQL エンジン上に構築。組み込みライブラリ、単一ノードサーバー、または OceanBase 分散クラスターとして動作します。完全な ACID、リアルタイム書き込み、MySQL エコシステムをそのまま活用できます。


🎬 クイックスタート

インストール

プラットフォームを選択:

☁️ クラウド(インストール不要)

curl 一発で稼働中のデータベースが手に入ります — サインアップ不要、クレジットカード不要。

curl -X POST https://d0.seekdb.ai/api/v1/instances

7 日間無料。詳細はこちら →

🐍 Python(AI/ML におすすめ)
pip install -U pyseekdb
🐳 Docker(簡易テスト)
docker run -d \
  --name seekdb \
  -p 2881:2881 \
  -p 2886:2886 \
  -v ./data:/var/lib/oceanbase \
  oceanbase/seekdb:latest

この Docker イメージの詳細はドキュメントを参照してください。

📦 バイナリ(スタンドアロン)
# Linux(ワンライナーインストール、sudo が必要な場合あり)
curl -fsSL https://obportal.s3.ap-southeast-1.amazonaws.com/download-center/opensource/seekdb/seekdb_install.sh | bash

# macOS(Homebrew)
brew tap oceanbase/seekdb
brew install seekdb

DEB/RPM オフラインインストールと設定の詳細はデプロイメントドキュメントを参照してください。

📝 その他の例

完全な Python SDK ガイド — 接続モード、エンベディング関数、メタデータフィルター — は pyseekdb ユーザーガイドを参照してください。

🤖 エージェントメモリパターン(継続的書込 + 即時検索)

エージェントの典型的なループ:観察を書き込み、ミリ秒後に関連コンテキストを検索、これを繰り返します。seekdb の非同期インデックスパイプラインが、持続的な並行負荷の下でも読み書き双方の高速性を維持します。

import pyseekdb

client = pyseekdb.Client(path="./agent_state.db")
memory = client.get_or_create_collection(name="episodic")

for step in agent.run():
    # 観察結果を永続化
    memory.upsert(ids=[step.id], documents=[step.observation])

    # 関連コンテキストを検索 — 書き込みの数ミリ秒後に、
    # インクリメンタル HNSW が即座に応答(バックグラウンドリビルド待ち不要)
    relevant = memory.query(query_texts=step.next_query, n_results=5)

    agent.act(relevant)
🗄️ SQL — スキーマ + ハイブリッド検索
-- ベクトル列、全文インデックス、HNSW ベクトルインデックスを持つテーブル
CREATE TABLE articles (
  id        INT PRIMARY KEY,
  title     TEXT,
  content   TEXT,
  embedding VECTOR(384),
  FULLTEXT INDEX idx_fts (content) WITH PARSER ik,
  VECTOR   INDEX idx_vec (embedding) WITH (DISTANCE=l2, TYPE=hnsw, LIB=vsag)
) ORGANIZATION = HEAP;

-- ハイブリッド検索:ベクトル類似度 + 全文マッチを 1 つのクエリで
SELECT id, title,
       l2_distance(embedding, '[0.12, 0.34, ...]') AS dist
FROM articles
WHERE MATCH(content) AGAINST('quarterly report')
ORDER BY dist APPROXIMATE
LIMIT 10;

Python 開発者は SQLAlchemy や任意の MySQL ドライバーでアクセスできます。

📚 ユースケース

🎯 エージェント AI — メモリ、サンドボックス、ステート

エージェントには、絶え間ないメモリ書き込み、ミリ秒レベルの検索、探索のためのブランチング、問題発生時の即時ロールバックに対応できるステートストアが必要です。seekdb はまさにそのために作られました:

  • ストリーミング対応 — 書き込んだ瞬間から検索可能
  • COW サンドボックスFORK DATABASE で安全に実験、MERGE で採用、DROP で即ロールバック
  • ハイブリッド検索 — ベクトル + 全文 + リレーショナルを 1 本の SQL で
  • MySQL プロトコル — LangChain、LlamaIndex、Dify がそのまま動作

パーソナルアシスタント · エンタープライズ自動化 · バーティカルエージェント · エージェントプラットフォーム

🧩 その他のユースケース

seekdb のハイブリッド検索 + マルチモデルエンジンは、従来型の AI ワークロードにも最適です:

  • 📖 RAG とナレッジ検索 — ベクトル + 全文 + スカラーフィルター、多段階アクセス制御対応。エンタープライズ QA、カスタマーサポート、業界インサイト、個人ナレッジベース。
  • 🔍 セマンティック検索 — エンベディングベースのテキスト、画像、マルチモーダル検索。商品検索、テキストから画像、画像から商品。
  • 💻 AI 支援コーディング — セマンティックコード検索、マルチプロジェクト分離、タイムトラベルクエリ。IDE プラグインやコードエージェント向け。ローカル IDE、Web IDE、デザインからコードへ。
  • ⬆️ エンタープライズアプリケーションインテリジェンス — レガシーシステム向けの MySQL 互換 AI レイヤー、行列ハイブリッドストレージ対応。ドキュメントインテリジェンス、ビジネスインサイト、金融システム。
  • 📱 オンデバイス&エッジ AI — リソース制約のあるデバイス向けの組み込み/マイクロサーバーモード。車載システム、AI 教育、コンパニオンロボット、ヘルスケアデバイス。

🌟 エコシステムと統合

LangChain LlamaIndex Dify LangGraph Coze HuggingFace

+ Camel-AI · DB-GPT · FastGPT · Firecrawl · Spring-AI-Alibaba · Cloudflare Workers AI · Jina AI · Ragas · Instructor · Baseten — 完全なリストはユーザーガイドを参照してください。


🌐 次のステップとコミュニティ


🛠️ 開発

ソースからビルド

ビルド前に、お使いの OS に必要なツールチェーンと依存関係をインストールしてください。詳細はツールチェーンのインストールを参照してください。

# リポジトリをクローン
git clone https://github.com/oceanbase/seekdb.git
cd seekdb
bash build.sh debug --init --make
mkdir -p ~/seekdb/bin
cp build_debug/src/observer/seekdb ~/seekdb/bin
cd ~/seekdb
./bin/seekdb

この例では作業ディレクトリとして $HOME/seekdb を使用しています。テストには新しい空のディレクトリを使用してください。詳細は開発者ガイドを参照してください。

コントリビュート

コントリビューション大歓迎です! まずはコントリビューションガイドをご覧ください。

Contributors

📈 Star の推移

Star History Chart

seekdb が役立つなら、star で他の人にも届けましょう。


📄 ライセンス

seekdb は OceanBase チームが開発 — Alipay、Taobao、DiDi、Xiaomi などの本番環境で稼働しているデータベースエンジンと同一基盤です。Apache License, Version 2.0 に基づく完全なオープンソースプロジェクトです。