DB9 深度解读:面向 AI Agent 的无服务器 PostgreSQL
本文基于 DB9 官网 与 Quick Start 文档 整理,并补充 Architecture 与 Why DB9 for AI Agents 中的架构与设计说明,便于技术团队评估与落地。
目录
[DB9 深度解读:面向 AI Agent 的无服务器 PostgreSQL](#DB9 深度解读:面向 AI Agent 的无服务器 PostgreSQL)
[1. 产生背景与架构](#1. 产生背景与架构)
[1.1 为什么需要 DB9?](#1.1 为什么需要 DB9?)
[1.2 核心架构(控制面 / 数据面 / 存储)](#1.2 核心架构(控制面 / 数据面 / 存储))
[2. 快速使用](#2. 快速使用)
[2.1 路径一:CLI(终端优先)](#2.1 路径一:CLI(终端优先))
[2.2 路径二:TypeScript SDK(程序化)](#2.2 路径二:TypeScript SDK(程序化))
[2.3 路径三:Agent 一键接入](#2.3 路径三:Agent 一键接入)
[2.4 官方推荐的下一步阅读](#2.4 官方推荐的下一步阅读)
[3. 应用场景](#3. 应用场景)
[3.1 记忆与个人助手 / 客服副驾](#3.1 记忆与个人助手 / 客服副驾)
[3.2 研发文档与编码 Agent(RAG / 知识库)](#3.2 研发文档与编码 Agent(RAG / 知识库))
[3.3 自动化、报表与多 Agent 协作](#3.3 自动化、报表与多 Agent 协作)
[3.4 平台与工程化场景](#3.4 平台与工程化场景)
[4. 集成周边生态](#4. 集成周边生态)
[4.1 PostgreSQL 生态](#4.1 PostgreSQL 生态)
[4.2 AI 与 Agent 工具链](#4.2 AI 与 Agent 工具链)
[4.3 内建「替代拼图」能力(减少外部系统)](#4.3 内建「替代拼图」能力(减少外部系统))
[4.4 浏览器与公开数据访问](#4.4 浏览器与公开数据访问)
[5. 注意事项](#5. 注意事项)
[5.1 连接与安全](#5.1 连接与安全)
[5.2 账号与配额](#5.2 账号与配额)
[5.3 命令行与本地环境](#5.3 命令行与本地环境)
[5.4 兼容性与事务语义](#5.4 兼容性与事务语义)
[5.5 文件与嵌入能力限额(示例)](#5.5 文件与嵌入能力限额(示例))
1. 产生背景与架构
1.1 为什么需要 DB9?
传统数据库多为「长生命周期应用 + 人工运维」设计,而 AI Agent 的工作方式截然不同:需要在秒级内按需创建数据库、在同一后端完成语义检索与结构化存储、读写文件、从 SQL 调用外部 API、安全地做实验性分支,以及内建定时任务------若全部拆成「PostgreSQL + 向量库 + 对象存储 + 编排 + Cron」,集成与运维成本会急剧上升。
DB9 的定位是 「Postgres but for agents」 :在保持 PostgreSQL 协议与生态兼容 的前提下,把 Agent 常见需求以 编译进数据库的扩展能力 交付,减少旁路服务与胶水代码。官网概括为:需要算力时用 SQL,需要简单时用文件操作 ;一个数据库,统一接口 (详见 db9.ai)。
1.2 核心架构(控制面 / 数据面 / 存储)
根据官方 Architecture 文档,DB9 的整体模型可概括为:
| 层次 | 组件 | 职责 |
|---|---|---|
| 客户端 | psql、ORM、各类驱动、TypeScript SDK、db9 CLI、Browser SDK 等 |
发起管理与查询请求 |
| 控制面 | db9-backend(REST API,如 Axum 应用) |
数据库生命周期、认证与 Token、分支、迁移、可观测性等 |
| 数据面 | db9-server(异步 Rust / Tokio,PostgreSQL 线协议) |
SQL 解析、优化、执行;扩展(fs9、HTTP、embedding、向量、pg_cron 等);Worker 队列 |
| 存储 | TiKV(分布式 KV,Raft + 事务) | 每个 DB9 数据库对应独立 keyspace,多租户在存储层隔离 |
查询路径(简化):SQL 文本 → 解析(如 sqlparser-rs)→ 分析 / 优化 → 基于迭代器模型的执行器 → 通过 TiKV 客户端读写 → 经 pgwire 返回结果。
多租户隔离 :连接用户名形如 tenant_id.role;db9-server 解析租户 ID 并绑定到对应 keyspace,不存在跨租户查询路径。
当前架构边界 (官方明确列为设计阶段限制,而非「缺陷」):例如单进程单节点执行、无跨多 db9-server 的分布式查询、并行查询与部分 PostgreSQL 能力(如 FDW、逻辑复制、部分 GIN 运行时行为等)不支持或有限制------选型时需对照 SQL limits 与 Compatibility Matrix。
2. 快速使用
以下三条路径与 Quick Start 一致,可按团队习惯选择。
2.1 路径一:CLI(终端优先)
安装(macOS / Linux,x86_64 / arm64):
curl -fsSL https://db9.ai/install | sh
自定义安装目录示例:
DB9_INSTALL_DIR="$HOME/.local/bin" curl -fsSL https://db9.ai/install | sh
验证:db9 --version。
macOS 文件挂载 :若使用
db9 fs mount,需先安装 macFUSE(如brew install --cask macfuse),并在 Apple Silicon 上按需于「系统设置 → 隐私与安全性」批准系统扩展。
创建数据库(首次使用会自动注册匿名账号,无需单独注册):
db9 create --name myapp
执行 SQL (一次性或进入交互 REPL,行为类似 psql):
db9 db sql myapp -q "SELECT 'hello from db9' AS greeting"
db9 db sql myapp
连接信息 (供 psql、ORM 或任意 PostgreSQL 客户端):
db9 db connect myapp
db9 create --name myapp --show-connection-string
db9 db connect-token myapp
常用自检:
db9 status
db9 list
2.2 路径二:TypeScript SDK(程序化)
安装:npm install get-db9。
使用 instantDatabase() 创建(或按名称复用已有库)并可选 seed 初始化 schema:
import { instantDatabase } from 'get-db9';
const db = await instantDatabase({
name: 'myapp',
seed: `
CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT);
INSERT INTO users (name) VALUES ('alice'), ('bob');
`,
});
console.log(db.databaseId);
console.log(db.connectionString);
console.log(db.adminUser);
随后用返回的 connectionString 配合 pg 等任意 PostgreSQL 客户端使用。instantDatabase() 对同名库 幂等:已存在则不会重复执行 seed。
2.3 路径三:Agent 一键接入
为 Claude Code、Codex、OpenCode 等安装技能说明,使 Agent 能自主使用 CLI:
db9 onboard --agent claude
db9 onboard --all
db9 onboard --agent claude --dry-run # 仅预览
作用域:--scope user(默认,全局)、--scope project(当前项目)、--scope both。
此外,Agent 也可直接阅读官方技能说明:https://db9.ai/skill.md。
2.4 官方推荐的下一步阅读
-
Connect:连接串、
sslmode、驱动与 TLS
3. 应用场景
结合官网场景划分与 Why DB9 for AI Agents,典型用法包括:
3.1 记忆与个人助手 / 客服副驾
-
结构化状态 放在 Postgres 表(如
agent_id、kind、file_path、topic)。 -
原始上下文、会话快照、长文本 以文件形式存放在同一工作区,通过元数据表关联。
-
实现「表里查索引,盘里读原文」的统一后端。
3.2 研发文档与编码 Agent(RAG / 知识库)
-
源文档保留在文件系统路径下。
-
分块、元数据、向量 存入 Postgres,用 SQL 做过滤与相似度检索(内建
embedding()与向量算子,减少独立向量流水线)。 -
适合「知识在文件,检索在 SQL」的 Agent 流水线。
3.3 自动化、报表与多 Agent 协作
-
报告、轨迹、产物 持久化为文件(如
/runs/42/report.md)。 -
运行历史、状态、元数据 在表中查询与聚合。
-
配合 分支 做隔离实验,配合 pg_cron 做周期性同步、清理或回调。
3.4 平台与工程化场景
官方架构文档指出,DB9 较适合:Agent 与自动化负载 (快速开通、按任务隔离、内建能力多)、多租户 SaaS (keyspace 级隔离)、开发与 CI (分支与一次性数据库为一等公民)、以及 能落在单节点执行模型内 的工作负载。若强依赖跨节点分布式分析或特定 PG 扩展,需对照兼容性文档评估。
4. 集成周边生态
4.1 PostgreSQL 生态
-
通过标准 PostgreSQL 线协议 连接:
*sql、psql、主流 ORM 与驱动均可对接(注意 TLS,见下文注意事项)。 -
官网提及 600+ ORM 测试 通过及
db9 gen types生成 TypeScript / Python 类型(详见官网与 CLI 文档)。
4.2 AI 与 Agent 工具链
-
Claude Code、OpenAI Codex、Cursor、Cline、VS Code、OpenCode、OpenClaw、Vercel 等在官网列为可配合栈;通过
db9 onboard或阅读skill.md完成 Agent 侧引导。 -
插件示例 :如 OpenClaw 相关
my-claw-dash(将事件写入 DB9、JSONL 审计等),说明见 https://db9.ai/plugins/my-claw-dash.md。
4.3 内建「替代拼图」能力(减少外部系统)
在 SQL 层即可组合使用(具体以 Extensions 为准):
-
向量与语义 :
embedding()、vector类型、HNSW、距离算子。 -
文件 :fs9(SQL 读写 CSV / JSONL / Parquet 等)+ CLI
db9 fs cp/mount。 -
出站 HTTP :
http_get/http_post等(有 SSRF、并发、超时、体积等默认安全边界)。 -
定时任务 :pg_cron /
db9 db cron。 -
环境分支 :
db9 branch create等,克隆表、文件、Cron、权限等(以官方文档为准)。
4.4 浏览器与公开数据访问
- Browser SDK 支持客户端场景,结合 RLS 与发布密钥等机制(详见文档)。
5. 注意事项
5.1 连接与安全
-
必须使用 TLS :客户端需支持
sslmode=require或等价配置;若出现连接被拒绝或超时,优先检查 TLS 与网络(参见 Connect)。 -
HTTP 扩展 :默认 仅 HTTPS、屏蔽私网与回环 IP(防 SSRF)、单语句请求数与并发、响应/请求体大小与超时等限制------生产集成前应在预发环境验证配额与行为。
5.2 账号与配额
-
匿名账号 首次使用自动注册;Quick Start 说明匿名用户 最多创建 5 个数据库 ,超出需执行
db9 claim通过 SSO 升级以解除限制。 -
CLI 与 SDK 的凭据会 缓存在本机,注意工作区与 CI 密钥管理。
5.3 命令行与本地环境
-
若提示
db9: command not found,将安装目录加入PATH,例如:export PATH="$HOME/.local/bin:$PATH"。 -
macOS + FUSE :挂载前安装并授权 macFUSE,否则
db9 fs mount可能失败。
5.4 兼容性与事务语义
-
默认隔离级别对应 快照隔离(与 PostgreSQL
REPEATABLE READ层面的体验相关) ;文档说明 Serializable 语法可能被降级 ,且 与 PostgreSQL SSI 不完全一致 ------有强一致事务需求时需细读 Architecture 与 SQL 文档。 -
扩展为编译进二进制 ,非任意加载 C 扩展;不支持 FDW、逻辑复制 等,请用 HTTP 扩展或分支 / API 做数据搬迁。
-
GIN、并行查询、跨节点分布式执行 等存在明确边界,上线前对照 SQL limits 与 Production Checklist。
5.5 文件与嵌入能力限额(示例)
官方在 Agent 向文档中给出过 单文件大小、单次读取预算、嵌入并发 等默认值(如 fs9 单文件 100 MB 、嵌入默认 5 路并发 等)。这些可能随版本调整,以当前官方 Extensions / 运维文档为准。
结语
DB9 将 PostgreSQL 协议、TiKV 多租户隔离 与 面向 Agent 的内建能力 (文件、向量、HTTP、Cron、分支)打包为统一后端,适合希望 减少微服务数量、让 Agent 用 SQL + CLI 完成闭环 的团队。落地时建议:先跑通 Quick Start → 阅读 Connect 与 Extensions → 用生产清单核对认证、可观测性与限制。
参考链接
-
Quick Start:https://db9.ai/docs/quickstart
-
Architecture:https://db9.ai/docs/architecture/
-
Why DB9 for AI Agents:https://db9.ai/docs/why-db9-for-ai-agents/
-
Agent skill:https://db9.ai/skill.md