dory
AI 原生 SQL 工作空间,让 Agent 数据库操作变成可编辑的真实工作空间
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI 原生 SQL 工作空间,让 Agent 数据库操作变成可编辑的真实工作空间
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个这样的场景:你让 AI agent 帮你写了一条复杂的联表查询,agent 返回了结果和 SQL——但你真的敢直接拿去做决策吗?你没法看到完整的数据分布,不知道这条 SQL 在生产环境跑出来的实际行数,更没法把结果导出成图表分享给同事。Dory 正是为了解决这个问题而诞生的。
Dory 的核心思路是:AI agent 的数据库工作不应该消失在聊天记录里。它应该变成一个真实的、可编辑的 SQL 工作空间,开发者可以检查、修改、继续执行。

图1:Dory 工作空间界面,左侧为 Schema 浏览器,右侧为 SQL 编辑器与结果集
dorylab/dory 是一个 Apache-2.0 开源的 AI 原生 SQL 客户端项目,由 dorylab 团队开发和维护。项目定位非常清晰——既是一个功能完整的数据库 GUI(可替代 Navicat、DBeaver),又是一套面向 AI Agent 的数据库执行层(通过 MCP 协议暴露数据库操作能力)。
这种双模式设计解决了一个真实痛点:AI 写 SQL 很快,但生产级的数据工作需要人来把关、验证和继续推进。Dory 让这个交接过程变得无缝——agent 的工作直接变成工作空间里的标签页,人类可以随时接管。
Dory 提供完整的 SQL 编辑环境,支持多标签页、结果集持久化、查询历史保存和 Schema 浏览器。开发者可以在一个标签页里写 SQL,另一个标签页里查看结果,第三个标签页里画图表——所有工作状态都保存在工作空间中,不会在聊天结束后消失。这解决了传统 AI Coding 工具「说完就忘」的问题,让数据库工作变成可追溯、可审查的真实工件。
Dory 内置的 AI 助手能够感知当前数据库的真实 Schema 和查询上下文,不仅能根据自然语言生成 SQL,还能对当前标签页中的 SQL 进行重写、修复和解释。与通用 LLM 对话不同,这个 AI 能力扎根于实际的数据库结构和当前工作状态,生成的 SQL 有据可查,减少了幻觉(hallucination)风险。
MCP(Model Context Protocol)是 Anthropic 提出的 Agent 工具调用协议,Dory 对其提供了完整支持。通过 @getdory/cli,Claude Code、Codex CLI 等 MCP 兼容的 AI 编程工具可以直接调用 Dory 的数据库能力:列出连接、探索 Schema、执行只读 SQL、创建标签页和管理保存的查询。
MCP 集成支持四种模式:桌面端 MCP(本地)、独立 stdio(适合本地开发和 CI)、HTTP headless 运行时(适合共享端点)、托管 Dory 桥接(连接已有的 Dory Web 部署)。开发者可以根据场景灵活选择。
Dory 支持 PostgreSQL、MySQL、Oracle 等主流数据库,通过统一的驱动层抽象差异。用户可以在同一个工作空间里连接多个数据库,进行跨库查询和联合分析。桌面客户端支持离线使用,SaaS 版本提供开箱即用的演示模式(Sign in as demo)。
查询结果可以直接在 Dory 内转换为图表,支持多种可视化形式,满足日常数据分析需求,而无需切换到独立的 BI 工具。结果和生成它的 SQL 永久关联,方便后续回溯。
Dory 采用 TypeScript/Node.js 技术栈,整体以 monorepo 形式组织,结构清晰分为三层:
应用层(3个 apps):
apps/web:基于 Next.js 的 Web 应用,提供 SaaS 托管版本(app.getdory.dev)。支持独立部署和 Docker 容器化。apps/electron:基于 Electron 的桌面客户端,支持 macOS 和 Windows 原生安装包,提供离线使用能力。apps/admin:管理后台,用于 Dory Cloud 的组织、计费等管理操作。包层(15个 packages):
@getdory/mcp:MCP 协议服务端实现,依赖 @modelcontextprotocol/sdk 和 zod,提供标准化的 Agent 数据库工具接口。@getdory/cli:命令行工具,支持 stdio 和 HTTP 两种 MCP 传输方式,内置 DuckDB 支持本地数据探索,依赖 pg(PostgreSQL)、mysql2、oracledb 等多数据库驱动。@getdory/actions:Dory Actions,封装连接管理、Schema 探索等高频操作的标准化 API。@getdory/database:数据库抽象层,统一管理连接池、事务和查询执行。@getdory/drivers:数据库驱动适配层,支持 PostgreSQL、MySQL、Oracle 等多种数据库。@getdory/ui、@getdory/auth-core、@getdory/analysis、@getdory/resultset、@getdory/files、@getdory/i18n 等基础设施包。构建与基础设施:
构建工具使用 Yarn + Workspaces,测试框架为 Playwright,代码格式化为 Prettier + ESLint,类型检查使用 TypeScript 严格模式。Dockerfile 采用多阶段构建(基于 node:24-bookworm),docker-compose.yml 内置 PostgreSQL 17 依赖服务,健康检查完备。
Dory 提供三种部署路径:
Docker 一键部署(推荐): 通过 docker-compose.yml 可一键启动,包含 Dory Web 应用和 PostgreSQL 17 数据库服务。需要配置 BETTER_AUTH_URL、BETTER_AUTH_SECRET、DS_SECRET_KEY、TRUSTED_ORIGINS 等环境变量,首次配置复杂度中等。
本地开发: 使用 yarn dev 启动开发服务器,yarn run build 构建生产版本。依赖 Node.js 24 和 Yarn。
桌面客户端: 提供 macOS 和 Windows 原生安装包,支持 Homebrew 安装,开箱即用,无需配置。
硬件需求方面,Dory 是纯 CPU 应用,无需 GPU,4GB 内存和 2GB 磁盘空间即可运行。
Dory 的定位是「AI 原生 SQL 客户端」,而非通用数据库管理工具。AI 辅助能力专注于 SQL 生成和修复,不涉及数据清洗、ETL 或机器学习建模等更宽泛的数据处理场景。对于需要无头部署(无浏览器界面)的自动化数据管道,可能需要借助 @getdory/cli 的 MCP stdio 模式配合外部调度器。完整自托管还需要配置认证服务(Better Auth),比纯 Docker 部署复杂度略高。
Dory 代表了一个新兴类别:面向 AI Agent 的桌面化工具。2024-2025 年,AI Coding 工具(Claude Code、Codex CLI)迅速普及,但这些工具在处理结构化数据分析时往往只能输出文本结果。Dory 通过 MCP 协议将 AI 的数据库操作能力产品化,让 agent 的工作从「黑盒输出」变成「可检查的工件」,这正是 AI 辅助开发走向工程化、可审计化的关键一步。项目在 SourceForge 上已获得 OSS Rising Star 奖项,社区活跃度持续增长。

图2:Dory 项目维护团队头像
一句话总结:Dory 是一个 AI 原生 SQL 工作空间,通过 MCP 协议让 AI Agent 的数据库操作变成可编辑、可检查、可继续的真实工作空间,同时提供功能完整的桌面/Web 客户端,是 AI 编程时代数据库工具的新形态。