pgbot

让 AI 直接读懂你的 Postgres,问句话就出数据洞察

pgbot 是一个用 Go 编写的 PostgreSQL 智能层,专为 AI Agent 和应用设计。它把数据库从被动的存储变成可主动查询、分析和推理的数据源,解决 AI 应用直接写 SQL 时面临的 schema 理解难、查询易出错、结果难解释等问题。核心能力包括:自动感知数据库表结构与元数据,让 Agent 无需人工喂 schema 就能理解数据;把自然语言问题转成安全可执行的 SQL 查询;对查询结果做聚合、统计与解释,输出结构化洞察;支持连接现有 Postgres 实例,无需迁移数据。它面向需要让 AI 直接与业务数据库交互的团队,降低把数据库接入 Agent 工作流的工程成本,适合数据分析、报表问答、智能运维等场景。项目用 Go 实现,部署轻量,可作为独立服务或嵌入应用,是 Postgres 生态里面向 AI 时代的基础设施组件。

开源 unknown 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1279
维护状态 活跃
是否开源
定价模式 unknown

项目数据

分类基础设施
开发团队pgrundev
所属国家
官网地址https://pgbot.dev
定价模式unknown
价格说明定价信息待确认
访问状态
是否开源
开源协议NOASSERTION
主要语言Go
技术栈/模型ai,data-analysis,database,postgres,postgresql,postgresql-database
GitHub 星标★ 1279
30天Star增速
HF 下载量
上线时间2026-08-11 00:00:00
最近更新2026-09-16 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-12
浏览次数0

使用教程

难度:入门 约 10 分钟 部署方式:命令行工具 8 步

环境要求

  • 一个可连接的 PostgreSQL 实例(本地、容器或 RDS/Neon/Supabase 等托管库均可)
  • 一个持有 pg_monitor 的只读登录角色(不能用超级用户)
  • 执行 pgbot init 生成的 SQL 时需要 psql 客户端
  • 使用脚本安装并强制验签时需要 PATH 中有 cosign(可选)
  • Linux/macOS/Windows 均可,官方提供多平台预编译包

安装与启动步骤

  1. 1安装 pgbot

    官方脚本方式最通用,会下载对应平台二进制并校验 SHA256 校验和;也可改用 Homebrew、go install 或 npx。

    curl -fsSL https://pgbot.dev/install | sh
  2. 2生成只读角色 SQL

    pgbot init 只输出建角色与授权 SQL,自己不执行任何写操作,需你人工审阅后通过管道交给 psql 执行。

    pgbot init "postgres://admin@host:5432/db" | psql "postgres://admin@host:5432/db"
  3. 3验证角色可用

    用刚创建的只读角色连接,确认它具有 pg_monitor 权限、能读取统计视图,避免后续报告数据不全。

    pgbot init --verify "postgres://pgbot_ro:password@host:5432/db"
  4. 4执行健康检查

    传入连接串即可读取 Postgres 自带统计视图,输出 findings 优先的健康报告以及与上次相比的变化。

    pgbot inspect "postgres://pgbot_ro:password@host:5432/db"
  5. 5用环境变量传连接串

    连接串优先取参数,其次 DATABASE_URL、PGBOT_DATABASE_URL、PGSERVICE;用环境变量可避免密码进入 ps 和历史记录。

    export DATABASE_URL="postgres://pgbot_ro:password@host:5432/db?sslmode=require"
    pgbot inspect
  6. 6用 Docker 运行

    镜像为公开多架构(amd64/arm64)且免登录;连远程库无需特殊网络,建议通过环境变量传入 DSN。

    export DATABASE_URL="postgres://pgbot_ro:password@yourdb.example.com:5432/db?sslmode=require"
    docker run --rm -e DATABASE_URL ghcr.io/pgrundev/pgbot inspect
  7. 7手动建只读角色

    若不想用 pgbot init,可自行以管理员身份执行这段 SQL 创建 pg_monitor 角色;只读边界来自这个角色而非命令行参数。

    CREATE ROLE pgbot_ro LOGIN PASSWORD 'your_password';
    GRANT pg_monitor TO pgbot_ro;
    GRANT CONNECT ON DATABASE yourdb TO pgbot_ro;
  8. 8容器互连排查

    pgbot 在主机、库在容器时用 127.0.0.1 加 docker ps 里的宿主端口;pgbot 也在容器时改用容器名加内部 5432 端口。

    docker port mypg 5432
    pgbot inspect "postgres://postgres:pw@127.0.0.1:6433/postgres?sslmode=disable"

关键配置

配置项必填说明示例
DATABASE_URL连接串,未在命令行给出参数时优先读取postgres://pgbot_ro:password@host:5432/db?sslmode=require
PGBOT_DATABASE_URLDATABASE_URL 之后读取的备用连接串postgres://pgbot_ro:password@host:5432/db
PGSERVICE使用 libpq 连接服务文件里的连接名,免写连接串mydb
PGBOT_REQUIRE_SIGNATURE设为 1 时安装脚本强制校验 cosign 软件签名,失败即中止1

如何确认成功

pgbot inspect 能输出健康报告即连接与权限正常;pgbot init --verify 无报错说明只读角色配置可用。

常见问题

Q:为什么不能用超级用户连接?

A:只读保证来自角色而非参数。pgbot 建议用持有 pg_monitor 的登录角色读统计视图,该角色没有任何写权限,把权限边界交给数据库本身。

Q:npx pgbot 报 E404 怎么办?

A:包名是 scoped 的,裸名 pgbot 因与 got 过于相似被 npm 的名称近似规则拦截,必须写成 npx @pgbot/cli。

Q:连 Docker 里的 Postgres 为什么卡住约 10 秒?

A:localhost 会先解析为 IPv6 ::1,Docker Desktop 不转发它。改用 127.0.0.1 加上 docker ps 里看到的宿主端口即可。

Q:pgbot 会不会改动我的数据库?

A:不会。它不建扩展、不建表、不建角色、不写数据,每个会话都固定为只读并设置超时,查询包在 BEGIN READ ONLY 事务里。

注意事项

  • 只读边界是数据库角色,pgbot 只是在此基础上再加 default_transaction_read_only、statement_timeout=15s、lock_timeout=2s 等纵深防御。
  • 连接串优先取命令行参数,其次 DATABASE_URL、PGBOT_DATABASE_URL,最后 PGSERVICE。
  • 托管数据库或 CI 场景建议用环境变量传 DSN,让密码不出现在 ps 输出和 shell 历史里。
  • 卸载只需删除 pgbot 可执行文件与本地基线目录 ${XDG_STATE_HOME:-$HOME/.local/state}/pgbot,没有守护进程或数据库残留。

核心亮点

  • 自动抽取表结构和元数据,Agent 无需人工提供 schema 即可理解数据库
  • 自然语言转 SQL 并执行,把数据库变成可对话的数据源
  • Go 实现、部署轻量,可直接连接现有 Postgres 无需迁移数据

不足之处

  • 项目较新,文档和社区生态仍在早期,复杂 schema 下的准确率待验证
  • 自然语言转 SQL 的权限与安全控制细节需自行评估

适用场景

  • AI Agent 需要查询业务数据库时,用自然语言直接取数
  • 数据分析师用对话方式对 Postgres 做即席查询和报表
  • 内部工具或客服系统接入数据库,自动回答数据类问题

替代项目

vanna、sqlcoder、postgres-mcp

项目介绍

pgbot 是一个基础设施领域的开源项目,官方简介:Postgres intelligence for ai agents & apps。项目使用 Go 开发,在 GitHub 上获得 1133 星标。

上一篇:superserve

下一篇:pandaprobe

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

OpenAI-compatible gateway for FreeBuff coding models. Token pool, session lifecycle,···

★ 202 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8433 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 435 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181124 2026-08-09