让你的代理查询数据库,
在你松口之前一直是只读
AgentsRoom 管理你的 MySQL、PostgreSQL、SQL Server、MongoDB、SQLite 和 Google BigQuery 连接,并给你的 AI 编程代理一条对它们执行查询的通道。默认只读,一次一条语句,密码始终够不着。
能读到真实数据行的代理,不必再对你的数据靠猜。写不了这些数据的代理,也不必再让你逐行盯着防风险。
AgentsRoom 如何访问私有子网里的数据库,并回应 AI 代理的只读查询。
看不到你数据的 AI 编程代理,只能照着自己想象的表结构写代码。它会凭空造一个字段,以为某个枚举有三个值而其实有七个,还会用一套理论而不是一行真实数据来解释 bug。给它一个数据库连接就能解决这些,而这同样是把一个得力代理变成一场事故的最快途径。AgentsRoom 正是围绕这组张力设计的。
你像在任何数据库客户端里那样,把连接保存到应用里:引擎、主机、端口、用户、数据库,服务器需要时再加上 TLS。如果这个数据库从公网访问不到,连接会走 SSH 隧道或 AWS SSM 端口转发会话,用的是你早已保存在 AgentsRoom 里的 SSH 和 SSM 连接。位于私有子网里的数据库就这样变成了你能查询的对象,而不必把它敞开给全世界。
每个连接一开始都是只读的。SELECT 能跑。会修改数据的语句跑不了,除非你先把那个连接改成可写并确认这次操作。每次调用只接受一条语句,所以分号后面藏不下别的东西;结果集也设有上限,一条范围过宽的查询淹不了代理,也淹不了窗口。连接还可以标记为生产环境,这会让确认没那么容易被误点。
读只是其中一半。在一台机器上保存的连接会出现在你的其他机器上,所以一个数据库只需配置一次,而不是每台电脑配一次。数据库还能导出成文件、从文件还原,或者走同样的隧道直接复制到另一台服务器上:这些正是你过去要离开这个应用才能做的事。
一个默认有代理在驾驶的数据库客户端
MySQL、PostgreSQL、SQL Server、MongoDB、SQLite 和 Google BigQuery,服务器引擎在私有网络里也够得着,护栏默认打开。
MySQL、PostgreSQL、SQL Server 和 MongoDB 连接
每个数据库存一份连接:主机、端口、用户、要打开的数据库,以及服务器要求时的 TLS。你的本地数据库、预发布数据库和生产环境只读副本都在同一个列表里,选一下就好,不用重输。
够得着私有数据库
私有子网里的数据库不是什么特例。让连接走 SSH 隧道或 AWS SSM 端口转发会话,AgentsRoom 会替你打开它,复用你早已保存在应用里的 SSH 和 SSM 连接。Google Cloud SQL 实例通过其连接名称访问,经由 Cloud SQL Auth Proxy,使用你自己的 gcloud 登录,不存储任何内容。
默认只读
新建的连接只能读,别的都不行。查询会返回数据行,会改动数据的语句会被拒绝。没人需要记着去打开安全模式,因为每个连接本来就从安全模式开始。
写入之前两道锁
写入需要两次刻意的动作,不是一次。连接必须先被改成可写,操作本身还得明确确认一次。一次不小心的点击,不会顺势连出一条没有 WHERE 子句的 UPDATE。
每次调用一条语句
每次调用只带一条语句。分号后面堆着的任何东西都会被拒绝而不是执行,所以一条看起来像读的查询,没法顺手夹带第二条语句。在这之上,结果集还设有上限。
生产环境会被标记
把一个连接标记为生产环境,确认就会变严。要紧的那个数据库不再和本地副本长得一模一样,无论是对忙了一天的你,还是对正在逐条推进任务清单的代理。
你的连接,在每台机器上
在办公室机器上保存的连接,笔记本上也在:名称、主机、端口、用户、默认数据库,以及它所经过的隧道。唯一留在原地的是密码,它加密保存在你输入它的那台机器上,所以每台机器只会问你一次。
导出、导入、复制
把一个数据库导出成 .sql 文件,把这样一个文件回灌进某个数据库,或者把一个数据库直接复制到另一个上面。目标库在被覆盖之前会先备份,而彻底替换掉它是另一个需要单独确认的决定。
代理查询数据库,却从不掌握密码
你的数据库凭据由 AgentsRoom 保管,不会往外发。代理按名称请求对某个连接执行一条查询,应用打开连接、执行语句、返回数据行。密码从不属于代理收到的内容,从不出现在它写的查询里,也从不留在它保存的对话中。
只读规则是这件事的另一半,而且对代理来说,这不是它能靠嘴皮子绕过去的东西。代理用来查询的那个工具只接受读,别的一律拒绝,除非两件事同时成立:连接是可写的,并且你为这个连接打开了“允许智能体写入”。这个选项默认关闭,检查在桌面应用里进行,而不是在代理的进程里。你自己在控制台里的写入仍然需要一次明确确认,而当连接被标记为生产环境时,这次确认会被刻意做得更难给出。一旦某个连接对代理写入开放,这些写入就会跳过这次确认直接执行,所以只为你愿意托付给代理的数据库开启这个选项。在其他所有地方,一条糟糕查询最坏的结果仍然是一个错误答案,而不是一张丢掉的表。
单语句规则堵住了那个经典的口子。一次只带一条语句的调用,没法用一个分号再接上第二条,所以一条在评审里读起来人畜无害的查询,执行时也做不出别的事。SQL Server 不需要那个分号,所以在那里,一次读取就是一条通篇不含任何写入或事务关键字的 SELECT 或 WITH,并且它在一个始终会回滚的事务里运行。再加上有上限的结果集,一次失误就还是一次失误,不会变成一次数据导出。
六个引擎,缺的那些我们也点名
MySQL 和 MariaDB、PostgreSQL、SQL Server(包括 Azure SQL 和 Amazon RDS for SQL Server)、MongoDB、SQLite,以及 Google BigQuery。每一个都用自己的驱动,而不是套一层转换,因为它们是真的不一样:PostgreSQL 或 SQL Server 的会话只绑定一个数据库,MongoDB 接受的是查询而不是 SQL,T-SQL 的两条语句之间不需要分号,每一次导出都交给对应引擎自带的工具,SQLite 就是你电脑上的一个文件,没有主机、用户和密码,而一个 BigQuery 连接则是一个 Google Cloud 项目加一个默认数据集,用你自己的 Google 账号登录(gcloud auth application-default login),不存储任何密钥。这四个服务器引擎都能直连;当服务器不对公网暴露时,也能走 SSH 隧道或 AWS SSM 端口转发会话。
Oracle、Redis 以及其他引擎都不支持。在 SQL Server 上,你用 SQL 登录名登录(不提供 Windows、Active Directory 和 Entra ID 身份验证),也没有导出、导入和复制。在 BigQuery 上,Google 按每条查询读取的字节数计费,所以每个连接都有单次查询计费上限(默认 1 GiB,可调整):超过上限的查询会被拒绝,而不是被计费。打开一张表免费且只读,你的代理使用同样的 db_list、db_schema 和 db_query 工具,护栏也一样,还能看到每条查询读取了多少字节;这里同样没有导出、导入和复制。这件事你应该在下载之前就知道,而不是下载之后。下一个支持哪个引擎由大家提的需求决定,所以如果少了你要的那个,在公开待办清单上说一声,它就会被计进去。
申请你要的数据库引擎不只是读数据库,还能搬动它
把数据库导出成一个文件。把文件导入某个数据库。或者把一个数据库直接复制到另一个上面,走你早已保存的 SSH 隧道或 AWS SSM 会话也一样。每个引擎都用自己的官方工具,以流式写入磁盘,所以几个 GB 的数据库对应的是一根进度条,而不是一次崩溃。
这些工具随数据库提供,不随 AgentsRoom 提供:mysqldump 和 mysql、pg_dump 和 psql、mongodump 和 mongorestore。SQL Server 没有能以流的方式导出整个数据库的同类工具,所以它的连接没有导出、导入和复制。这些工具不在这台机器上时,应用会明确说出缺的是哪几个,并让你指出存放它们的文件夹,一个数据库客户端本该如此:从 Dock 或开始菜单启动的应用只看得到一个最小的 PATH,否则就会在明明装了工具的机器上一口咬定它们不存在。
点错一下就要赔上一天的地方是复制,所以它是围着这一点设计的,而不是围着一切顺利的情形。
- 只读连接会当场拒绝导入,在任何东西被打开之前。
- 在第一条语句被执行之前,目标库会先导出到你指定的文件里。
- 确认框会写出连接和数据库的名字,连接被标记为生产环境时说得更重。
- 删掉目标库再重建是一个单独的选项,在生产环境的连接上,你还得亲手把数据库名字打出来。
从一个私有数据库到一个答案
保存连接,配好路由,然后自己查,或者让代理去查。
保存连接
把数据库加进来:主机、端口、用户、数据库名,服务器需要时加上 TLS。起一个你日后认得出的名字,如果它就是生产环境,就把它标记出来。
如果是私有的,就配好路由
如果数据库无法直连,就让连接指向一条 SSH 隧道,或一个用你已保存在 AgentsRoom 里的连接搭起来的 AWS SSM 端口转发会话。私有子网里的数据库就此变得可达,而不必把它对外暴露。在 Google Cloud 上,请改为选择 Cloud SQL 实例:AgentsRoom 会替你启动 Cloud SQL Auth Proxy。
自己查,或者让代理去查
在应用里执行你的语句,或者让代理经由 MCP 执行一条。在你改动之前一直是只读,每次调用一条语句,结果集有上限,任何写入和你的数据之间都还隔着一次明确确认。
当代理需要真实数据行时
读一眼生产数据反而是离修复最近的那些时刻。
对着真实数据调试
这个 bug 只在少数几个账户上出现。让代理去读那几行数据,它就能找出让逻辑崩掉的那个值,而不是抛出三种关于数据可能长什么样的猜想。
一个不对外的数据库
数据库待在私有子网里,没有公网入口。让连接走一条 SSH 隧道,或一个基于你已保存连接搭起来的 AWS SSM 会话,不用对互联网开端口就能查询它。
让代理去核实,而不是猜
在写迁移或写查询之前,代理可以先看看实际存的是什么。它读,它汇报,而只要你没有把这个连接开放给代理写入,它在此期间就没有任何办法改动任何东西。
碰生产环境,但没有写入风险
读生产环境常常是必要的,任务进行到一半时写生产环境几乎从来不是。把连接标记为生产环境,让它保持只读,排查和搞砸之间的分界就不再取决于谁有没有走神。
用真实数据刷新预发布环境
这个 bug 只在真实数据行上复现。走你早已保存的隧道,把数据库复制到预发布服务器上,原来那份会先被导出备份。
打开笔记本,一切都在
你的连接跟着账户走:同样的主机、同样的隧道、同样的只读和生产环境标记。开启同步密码后,密码也会以端到端加密的方式跟过来,什么都不用重输;不开启的话,每台机器会问一次密码。
我的代理怎么查询数据库?
经由 AgentsRoom MCP,一共四个工具。db_list 返回你保存的连接及其元数据,db_schema 不用写一行 SQL 就能逐层遍历 schema、表和列,db_query 执行一条语句并返回数据行,db_connection_new 提议一个你还没保存的数据库。AgentsRoom 负责打开连接,包括挡在前面的 SSH 隧道或 AWS SSM 会话(如果有的话)。回到代理那里的是一个结果集,绝不会是凭据。
只有当你在一个同样可写的连接上开启“允许智能体写入”时,代理才能写入。这个需要主动开启的选项默认关闭,并随连接在你的账户内同步。一旦开启,写入会立即执行,所以只有在你放心把这个数据库交给代理时才使用它。桌面应用在自己的主进程里检查这项权限,而且 db_query 每次调用仍然只接受一条语句。
登记一个数据库也可以完全交给代理。db_connection_new 保留经过审核的路径:它打开创建表单,用主机、用户,以及它该经由哪个 SSH 或 AWS SSM 连接抵达预先填好,由你审核、输入密码并保存,在你动手之前什么都不会被存下来。除非你关闭“代理可以管理连接”(设置,默认开启),db_connection_save 会把连接直接写入,而密码依然不经过对话:它从密钥库机密复制而来,代理只说出名称。代理拿到了推理你数据所需的一切,而这种访问通常演变成事故的那些路径,它一条都用不上。
代理执行的每条查询同样看得见。db_query 和 db_schema 的调用会出现在右侧面板的“活动”标签页中,附带 SQL 和返回的前几行数据,每个数据库一份日志;代理的头像会显示在“数据库”按钮上,并带着“代理工作中”徽章显示在你的数据库列表中。你也可以在手机上跟进,就在移动应用的代理卡片里。这份日志只在你的电脑和手机之间传输,端到端加密,机密信息会被遮蔽:任何结果集都不会保存在服务器上。
了解 AgentsRoom MCP就是那个列出你 db_query 和 db_schema 调用的“活动”标签页,这里实拍的是一台已保存的 SSH 服务器:代理执行三条命令,每条都连同输出、退出码和耗时落在列表里,随后这个连接的日志完整展开。日志留在你的电脑上。
常见问题
问我们其他问题支持哪些数据库?
AI 代理能往我的数据库里写吗?
我怎么访问私有子网里的数据库?
我的代理会看到数据库密码吗?
代理能一次执行多条语句吗?
把连接标记为生产环境会带来什么变化?
如果一条查询返回很多行会怎样?
代理能添加一个数据库连接吗?
代理怎么了解我的数据库结构?
我的数据库连接会在多台机器之间同步吗?
我可以把一个数据库导出来,再导入到别处吗?
保存我连接信息的账户是如何受保护的?
截图
应用的真实截图,随此功能的演进不断添加。
你可能还喜欢
经由 AWS SSM 访问 RDS
从你自己的机器出发,经由 aws ssm start-session 和 AWS-StartPortForwardingSessionToRemoteHost 文档,访问一个没有公网端点的 Amazon RDS 实例。没有堡垒机要维护,不用 VPN,也不用开放入站 SSH 规则。AgentsRoom 在一个回环端口上打开会话,并让数据库客户端从中穿过。支持 MySQL、PostgreSQL、SQL Server 和 MongoDB,也就是 RDS MySQL、RDS PostgreSQL、RDS for SQL Server、Aurora 以及 DocumentDB。
Cloud SQL Auth Proxy
从你自己的机器出发,访问 Cloud SQL for MySQL 或 PostgreSQL 实例,私有 IP 也不例外,无需堡垒机 VM。AgentsRoom 用你的 gcloud Application Default Credentials(应用默认凭据),在一个回环端口上启动 Cloud SQL Auth Proxy,支持 IAM 数据库身份验证,并让 AI 智能体以只读方式查询它。
SSH 连接
保存你的 SSH 连接,通过 SSH 打开内置终端,直接在远程服务器或 VPS 上运行 Claude Code、Codex 或 Antigravity CLI。支持 SSH 密钥或密码认证,按项目管理连接配置,无需额外的 SSH 客户端。
密钥管理器
把 API 密钥、令牌和密码存进操作系统钥匙串,在开发命令和代理环境里用 {{secret:NAME}} 引用,交给 AgentsRoom 在启动时解析。代理只看得到名称,看不到值,任何内容都不会同步到服务器。
开发终端
按项目管理的终端管理器和进程启动器。一键启动后端、前端和工作进程,本地或远程服务器上都行。
AgentsRoom MCP
让你的代理驾驶 AgentsRoom 本身的 MCP 服务器:项目、终端、任务待办和连接,附带随之而来的护栏。
把数据给代理,把密钥留给自己
下载 AgentsRoom,保存你的 MySQL、PostgreSQL、SQL Server、MongoDB、SQLite 和 Google BigQuery 连接,通过 SSH 隧道或 AWS SSM 会话访问其中的服务器连接,让你的代理查询它们,只要你不对某个连接开放代理写入,就一直是只读。
配套应用:随时随地监控你的 Agent
使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。
把 Bug 和需求直接发送到您的公开待办清单。



