热度观测:最近观测 3194 星,达到本渠道热门门槛 1000。

← 返回内容列表
GGitHub采集材料

seekdb为代理提供可回滚的数据沙箱

发布时间未知 · 北京时间

智能体应用

有实践材料可继续查看

代码仓库安装说明使用说明示例代码演示线索

原文与观测指标

1 个来源
GGitHub

seekdb为代理提供可回滚的数据沙箱

oceanbase
查看原文
星标3,194采集时的累计值
每小时增长待观察星标 / 小时 · 观测区间平均值
最近提交10-28 14:10提交时间不是项目发布时间

发布时间:未知 · 首次发现 10-28 14:30 · 北京时间

指标采集:10-28 14:30 · 指标已取得

项目文档有线索安装说明有线索使用说明有线索示例有线索

仅反映文档与示例线索,未实际运行项目。

摘要

seekdb把向量、全文和结构化数据检索整合到数据库中,供AI代理存储和查询上下文;示例展示如何创建数据库副本、在沙箱中写入数据,再合并结果或丢弃实验。

摘要由 AI 生成,请以原文为准。
观测历史 · 最近 1 条 展开 / 收起

缺失不计为零;增长只比较同一指标来源的有效记录,按实际间隔折算每小时。上游缓存可能延迟数值更新。

采集时间 · 北京时间指标数值来源状态
10-28 14:30:16Star3,194GitHub 公开页面已取得
采集原文 展开 / 收起

seekdb

The AI-Native Search Database. Best for agent storage, it unifies vector, text, structured, and semi-structured data into a single engine…
项目说明 展开 / 收起
Write. Search. Fork. The State Store for AI Agents. MySQL-compatible · Embedded or Server · Hybrid Vector + Full-text Search · COW Sandbox ⚡ 1,523 QPS streaming write+search (10× Milvus, 3× Elasticsearch) 🌿 FORK/MERGE sandboxes for safe agent exploration 🔍 Vector + full-text + scalar in one SQL query 🐬 Full ACID, MySQL protocol, works with LangChain/LlamaIndex/Dify English | 中文版 | 日本語 30-Second Try · Quick Start · Embedded SDKs · Why seekdb · Ecosystem · Contributing If you find seekdb useful, consider giving it a star — it helps others discover the project. ⚡ Performance at a Glance 📖 Read the launch blog → · 🔁 Reproduce the benchmark → ⏱️ 30-Second Try pip install -U pyseekdb # pyseekdb is the Python SDK for seekdb 📋 View demo.py source → No manual server deployment, schema definition, or embedding setup for this Python demo. Run a local database with Python, JavaScript, or Go → ✨ Why seekdb for Agents? 🔥 Streaming Write + Concurrent Search, Without the P99 Spike Agent workloads are continuous write + millisecond-later read. seekdb's async index pipeline (Change Stream) decouples DML from index build, and its two-level HNSW (incremental + snapshot) makes newly-written vectors immediately searchable. The write path commits and returns without waiting on index construction. The Change Stream pipeline consumes the redo log asynchronously and updates the delta HNSW. Queries hit both delta and snapshot indexes with fine-grained read locks — this is why P99 stays flat under concurrency. The result: 1,523 QPS with 21.7 ms concurrent P99 — 10.7× the QPS of Milvus, and P99 jitter of just 1.1× when concurrency rises (vs ~10× for ES / Milvus on the same workload). Source: src/observer/change_stream/ · src/observer/vector_index/ 🌿 Copy-on-Write Sandboxes for Agent Exploration FORK DATABASE snapshots an entire database in seconds — no data copy. Agents experiment freely (write, query, even break tables); then MERGE TABLE commits the work back, or DROP DATABASE discards it. Kernel-level COW, not application-layer save/restore. -- Snapshot in seconds, no data copy FORK DATABASE agent_state TO agent_sandbox_42; -- Agent reads/writes freely on the sandbox... USE agent_sandbox_42; INSERT INTO memory (session_id, embedding, content) VALUES (...); -- Accept the work back to mainline (strategies: FAIL / THEIRS / OURS) MERGE TABLE agent_sandbox_42.memory INTO agent_state.memory STRATEGY THEIRS; -- ...or throw it away: DROP DATABASE agent_sandbox_42; Source: tools/deploy/mysql_test/test_suite/fork_table/ 🔍 Hybrid Search in a Single SQL Vector + full-text + scalar filter pushed into one execution plan. No N+1 client-side merging, no glue code to combine results. 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-Compatible, ACID, Embeddable Built on the proven OceanBase SQL engine. Works as an embedded library, a single-node server, or in the OceanBase distributed cluster. Full ACID, real-time writes, and the entire MySQL ecosystem out of the box. 🎬 Quick Start Embedded use Use a local seekdb database from Python, Node.js, or Go without deploying a database service yourself. Data is stored in a local directory and remains available when you reopen it. 🐍 Python Use pylibseekdb to start a local seekdb database, then execute SQL with PyMySQL. Requires Python 3.11 or newer. python3 -m pip install -U pylibseekdb pymysql Save the following as example.py. It gets the connection arguments from connection_options() and passes them to PyMySQL. The context managers close the cursor and SQL connection before releasing the runtime handle: from contextlib import closing import pylibseekdb import pymysql with closing(pylibseekdb.open("./seekdb.db")) as db: options = db.connection_options() with pymysql.connect( database="test", autocommit=True, cursorclass=pymysql.cursors.DictCursor, **options, ) as connection: with connection.cursor() as cursor: cursor.execute("SELECT 1 AS value") print(cursor.fetchall()) Run it; the result is [{'value': 1}]: python3 example.py Full usage guide · Supported platforms and requirements For a higher-level Collection API with text embedding and hybrid search, see pyseekdb. 🟨 JavaScript / TypeScript (Node.js) Use @oceanbase/seekdb-node to start a local seekdb database, then execute SQL with mysql2. Requires Node.js 22 or newer and supports both JavaScript and TypeScript. npm install @oceanbase/seekdb-node mysql2 Keep npm optional dependencies enabled so npm installs the matching native runtime. The binding manages a separate local seekdb process; close SQL connections before releasing its runtime handle. Save the following as example.mjs (ES modules; TypeScript declarations are also included): import { seekdb } from "@oceanbase/seekdb-node"; import mysql from "mysql2/promise"; const db = await seekdb.open("./seekdb.db"); let connection; try { const endpoint = db.connectionOptions(); const location = endpoint.transport === "tcp" ? { host: endpoint.host, port: endpoint.port } : { socketPath: endpoint.transport === "unix_socket" ? endpoint.unixSocket : endpoint.namedPipe }; connection = await mysql.createConnection({ ...location, user: endpoint.user, password: "", database: "test", }); const [rows] = await connection.query("SELECT 1 AS value"); console.log(rows); } finally { try { if (connection) await connection.end(); } finally { db.close(); } } Run it; the result is [ { value: 1 } ]: node example.mjs Full usage guide and supported platforms For a higher-level JavaScript Collection API, see seekdb-js. 🐹 Go Use seekdb-go to start a local seekdb database, then execute SQL with go-sql-driver/mysql. This example requires Go 1.24 or newer, CGO_ENABLED=1, and a C compiler. mkdir seekdb-go-example cd seekdb-go-example go mod init example.com/seekdb-demo Save the following as main.go. It uses the endpoint returned by ConnectionOptions and close