Để agent của bạn truy vấn cơ sở dữ liệu,
Chỉ đọc cho tới khi bạn nói khác đi
AgentsRoom quản lý các kết nối MySQL, PostgreSQL, SQL Server, MongoDB, SQLite và Google BigQuery của bạn và cho các agent AI lập trình một cách để chạy truy vấn trên đó. Chỉ đọc theo mặc định, mỗi lần một câu lệnh, và mật khẩu luôn nằm ngoài tầm với.
Một agent đọc được những hàng dữ liệu thật sẽ thôi đoán mò về dữ liệu của bạn. Một agent không ghi được vào đó sẽ thôi là rủi ro mà bạn phải giám sát từng dòng một.
Cách AgentsRoom chạm tới một cơ sở dữ liệu trong mạng con riêng và trả lời một truy vấn chỉ đọc từ agent AI.
Một agent AI lập trình không nhìn thấy dữ liệu của bạn sẽ viết code dựa trên lược đồ mà nó tự tưởng tượng ra. Nó bịa ra một cột, cho rằng một enum có ba giá trị trong khi thực tế có bảy, và giải thích một lỗi bằng một giả thuyết thay vì bằng một hàng dữ liệu. Đưa cho nó một kết nối cơ sở dữ liệu sẽ sửa được chuyện đó, và đó cũng là cách nhanh nhất biến một agent hữu ích thành một sự cố. AgentsRoom được dựng quanh đúng sự căng thẳng ấy.
Bạn lưu các kết nối trong ứng dụng như vẫn làm với bất kỳ trình khách cơ sở dữ liệu nào : engine, host, port, user, cơ sở dữ liệu, và TLS khi máy chủ yêu cầu. Nếu cơ sở dữ liệu không chạm tới được từ internet mở, kết nối được định tuyến qua một đường hầm SSH hoặc một phiên chuyển tiếp cổng AWS SSM, dùng chính các kết nối SSH và SSM bạn đã lưu trong AgentsRoom. Đó là cách một cơ sở dữ liệu nằm trong mạng con riêng trở thành thứ bạn truy vấn được mà không phải mở nó ra cho cả thế giới.
Mọi kết nối đều bắt đầu ở chế độ chỉ đọc. Một câu SELECT thì chạy. Một câu lệnh làm thay đổi dữ liệu thì không, cho tới khi bạn đã cho phép ghi trên đúng kết nối đó và xác nhận thao tác. Mỗi lần gọi chỉ nhận một câu lệnh, nên không có gì nấp thêm sau dấu chấm phẩy, và tập kết quả bị giới hạn để một truy vấn rộng không làm ngập một agent hay một cửa sổ. Một kết nối còn có thể được đánh dấu là sản xuất, khiến việc xác nhận khó đưa ra một cách vô ý hơn.
Đọc chưa phải là toàn bộ công việc. Một kết nối lưu trên máy này sẽ hiện ra trên những máy còn lại của bạn, nên bạn chỉ phải thiết lập một cơ sở dữ liệu một lần thay vì mỗi máy một lần. Và một cơ sở dữ liệu có thể được xuất ra tệp, phục hồi lại từ tệp, hoặc chép thẳng sang một máy chủ khác, qua chính những đường hầm đó : đúng những việc mà trước đây bạn phải rời khỏi ứng dụng mới làm được.
Trình khách cơ sở dữ liệu mặc định rằng có một agent đang cầm lái
MySQL, PostgreSQL, SQL Server, MongoDB, SQLite và Google BigQuery, các engine máy chủ chạm tới được trong mạng riêng, với rào chắn bật sẵn.
Kết nối MySQL, PostgreSQL, SQL Server và MongoDB
Lưu một kết nối cho mỗi cơ sở dữ liệu : host, port, user, cơ sở dữ liệu cần mở và TLS khi máy chủ yêu cầu. Cơ sở dữ liệu cục bộ, bản staging và bản sao sản xuất đều nằm trong cùng một danh sách, sẵn sàng để chọn thay vì gõ lại.
Chạm tới một cơ sở dữ liệu riêng
Một cơ sở dữ liệu trong mạng con riêng không phải trường hợp đặc biệt. Định tuyến kết nối qua một đường hầm SSH hoặc một phiên chuyển tiếp cổng AWS SSM và AgentsRoom mở nó cho bạn, dùng lại các kết nối SSH và SSM bạn đã lưu trong ứng dụng. Một instance Google Cloud SQL được tiếp cận bằng tên kết nối qua Cloud SQL Auth Proxy, với chính phiên đăng nhập gcloud của bạn và không lưu gì cả.
Chỉ đọc theo mặc định
Một kết nối mới chỉ đọc được, không làm gì khác. Truy vấn trả về các hàng, còn câu lệnh làm thay đổi dữ liệu thì bị từ chối. Không ai phải nhớ bật chế độ an toàn, vì chế độ an toàn chính là nơi mọi kết nối bắt đầu.
Hai lớp khóa trước một lần ghi
Ghi đòi hai hành động có chủ ý, không phải một. Kết nối phải được cho phép ghi, và bản thân thao tác phải được xác nhận rõ ràng. Một cú nhấp bất cẩn không thể kéo theo một câu UPDATE thiếu mệnh đề WHERE.
Mỗi lần gọi một câu lệnh
Mỗi lần gọi mang đúng một câu lệnh. Bất cứ thứ gì xếp sau dấu chấm phẩy đều bị từ chối chứ không được thực thi, nên một lần đọc trông như một lần đọc không thể lén mang theo câu lệnh thứ hai. Thêm vào đó, tập kết quả còn bị giới hạn.
Sản xuất được đánh dấu rõ
Đánh dấu một kết nối là sản xuất và việc xác nhận trở nên khó hơn. Cơ sở dữ liệu quan trọng thôi trông giống hệt bản sao cục bộ, cả với bạn vào cuối một ngày dài lẫn với một agent đang chạy hết một danh sách việc.
Kết nối của bạn, trên mọi máy
Một kết nối lưu ở máy văn phòng có mặt luôn trên laptop : tên, host, port, user, cơ sở dữ liệu mặc định và đường hầm mà nó đi qua. Thứ duy nhất ở lại là mật khẩu, được mã hoá ngay trên chiếc máy bạn đã gõ nó, nên mỗi máy chỉ hỏi bạn một lần.
Xuất, nhập, sao chép
Đổ một cơ sở dữ liệu ra tệp .sql, nạp một tệp như vậy vào một cơ sở dữ liệu, hoặc chép thẳng cơ sở dữ liệu này đè lên cơ sở dữ liệu kia. Đích đến được sao lưu trước khi bị ghi đè, còn thay hẳn nó là một quyết định riêng, được xác nhận riêng.
Agent truy vấn cơ sở dữ liệu, chúng không bao giờ cầm mật khẩu
Thông tin đăng nhập cơ sở dữ liệu của bạn do AgentsRoom giữ, chứ không được phát ra ngoài. Một agent xin chạy một truy vấn trên một kết nối mà nó biết theo tên, ứng dụng mở kết nối, chạy câu lệnh và trả về các hàng. Mật khẩu không bao giờ nằm trong thứ agent nhận được, không bao giờ nằm trong truy vấn nó viết, và không bao giờ nằm trong cuộc trò chuyện nó lưu.
Quy tắc chỉ đọc là nửa còn lại, và với một agent thì đó không phải thứ mà nó nói vài câu là thoát ra được. Công cụ mà agent dùng để truy vấn từ chối mọi thứ ngoài một lần đọc, trừ khi cả hai điều sau cùng đúng: kết nối được cho phép ghi, và bạn đã bật “Cho phép tác tử ghi dữ liệu” cho kết nối đó. Tùy chọn này mặc định tắt, và việc kiểm tra chạy trong ứng dụng desktop chứ không phải trong tiến trình của agent. Các thao tác ghi của chính bạn trong bảng điều khiển vẫn đòi một xác nhận rõ ràng, và xác nhận đó cố ý khó đưa ra hơn khi kết nối được đánh dấu là sản xuất. Một khi kết nối đã mở cho agent ghi, các thao tác ghi đó chạy mà không cần xác nhận ấy, nên hãy dành tùy chọn này cho cơ sở dữ liệu mà bạn tin tưởng giao cho agent. Ở mọi nơi khác, hậu quả tệ nhất của một truy vấn dở vẫn là một câu trả lời sai chứ không phải một bảng bị mất.
Quy tắc một câu lệnh khép lại lỗ hổng kinh điển. Một lần gọi mang một câu lệnh thì không thể nối thêm dấu chấm phẩy và một câu thứ hai, nên một truy vấn đọc lên có vẻ vô hại lúc review không thể làm chuyện khác lúc thực thi. SQL Server không cần dấu chấm phẩy đó, nên ở đó một lần đọc là một câu SELECT hoặc WITH không chứa bất kỳ từ khóa ghi hay giao dịch nào, và nó chạy bên trong một giao dịch luôn được rollback. Kết hợp với tập kết quả có giới hạn, một sai lầm vẫn chỉ là sai lầm chứ không trở thành một lần xuất dữ liệu.
Sáu engine, và chúng tôi gọi tên cả những cái còn thiếu
MySQL và MariaDB, PostgreSQL, SQL Server (bao gồm cả Azure SQL và Amazon RDS for SQL Server), MongoDB, SQLite và Google BigQuery. Mỗi cái có driver riêng thay vì một lớp chuyển đổi dùng chung, vì chúng khác nhau thật sự : một phiên PostgreSQL hoặc SQL Server gắn với đúng một cơ sở dữ liệu, MongoDB nhận một truy vấn chứ không phải SQL, T-SQL không cần dấu chấm phẩy giữa hai câu lệnh, mỗi lần xuất đều chạy bằng chính bộ công cụ đi kèm engine đó, SQLite đơn giản là một tệp trên máy tính của bạn, không có máy chủ, người dùng hay mật khẩu, còn một kết nối BigQuery là một dự án Google Cloud cùng một tập dữ liệu (dataset) mặc định, đăng nhập bằng chính tài khoản Google của bạn (gcloud auth application-default login), không lưu khoá nào. Bốn engine máy chủ được chạm tới trực tiếp, hoặc qua một đường hầm SSH hay một phiên chuyển tiếp cổng AWS SSM khi chúng không phơi ra internet mở.
Oracle, Redis và những cái còn lại thì không được hỗ trợ. Với SQL Server, bạn đăng nhập bằng một tài khoản đăng nhập SQL (không hỗ trợ xác thực Windows, Active Directory và Entra ID), và không có xuất, nhập hay sao chép. Với BigQuery, Google tính phí mỗi truy vấn theo số byte mà truy vấn đó đọc, nên mỗi kết nối có một mức trần chi phí cho mỗi truy vấn (mặc định 1 GiB, có thể điều chỉnh) : truy vấn nào vượt mức đó sẽ bị từ chối thay vì bị tính tiền. Mở một bảng thì miễn phí và chỉ đọc, các agent của bạn dùng đúng các công cụ db_list, db_schema và db_query với cùng những rào chắn và thấy được số byte mà mỗi truy vấn đã đọc, và ở đó cũng không có xuất, nhập hay sao chép. Bạn xứng đáng biết điều đó trước khi tải chứ không phải sau khi tải. Engine nào tới lượt tiếp theo là do những gì mọi người yêu cầu quyết định, nên nếu thiếu cái của bạn, hãy nói rõ đó là cái nào trên backlog công khai và nó sẽ được tính.
Yêu cầu engine cơ sở dữ liệu của bạnDi chuyển cả một cơ sở dữ liệu, không chỉ đọc nó
Xuất một cơ sở dữ liệu ra một tệp. Nhập một tệp vào một cơ sở dữ liệu. Hoặc chép thẳng cơ sở dữ liệu này đè lên cơ sở dữ liệu kia, kể cả qua đường hầm SSH hay phiên AWS SSM bạn đã lưu sẵn. Mỗi engine chạy bằng bộ công cụ chính thức của riêng nó, ghi theo luồng xuống đĩa, nên một cơ sở dữ liệu nặng vài gigabyte chỉ là một thanh tiến trình chứ không phải một lần treo máy.
Những công cụ đó đi kèm cơ sở dữ liệu, không đi kèm AgentsRoom : mysqldump và mysql, pg_dump và psql, mongodump và mongorestore. SQL Server không có công cụ tương đương nào truyền trọn một cơ sở dữ liệu, nên các kết nối SQL Server không có xuất, nhập hay sao chép. Khi các công cụ đó không có trên máy, ứng dụng nói rõ thiếu đúng những cái nào và để bạn chỉ ra thư mục chứa chúng, đúng như một trình khách cơ sở dữ liệu nên làm : mở từ Dock hay từ menu Start, một ứng dụng chỉ thấy một PATH tối thiểu, nếu không nó sẽ báo là thiếu chúng ngay trên chiếc máy đã cài sẵn.
Chính ở khâu sao chép, một cú nhấp sai làm mất cả ngày, nên nó được dựng quanh đúng rủi ro đó chứ không quanh kịch bản suôn sẻ.
- Một kết nối chỉ đọc từ chối việc nhập ngay từ đầu, trước khi có gì được mở ra.
- Cơ sở dữ liệu đích được sao lưu ra một tệp do bạn chọn, trước khi có dù chỉ một câu lệnh được áp dụng.
- Phần xác nhận nêu rõ tên kết nối và tên cơ sở dữ liệu, và nói to hơn khi kết nối được đánh dấu là sản xuất.
- Xoá rồi tạo lại cơ sở dữ liệu đích là một tuỳ chọn riêng, và trên một kết nối sản xuất bạn phải gõ lại tên cơ sở dữ liệu.
Từ một cơ sở dữ liệu riêng đến một câu trả lời
Lưu kết nối, định tuyến nó, rồi truy vấn hoặc để một agent làm việc đó.
Lưu kết nối
Thêm cơ sở dữ liệu : host, port, user, tên cơ sở dữ liệu, và TLS nếu máy chủ yêu cầu. Đặt cho nó một cái tên mà sau này bạn nhận ra, và đánh dấu là sản xuất nếu đúng là như vậy.
Định tuyến nếu nó nằm trong mạng riêng
Nếu cơ sở dữ liệu không chạm tới được trực tiếp, trỏ kết nối vào một đường hầm SSH hoặc một phiên chuyển tiếp cổng AWS SSM dựng từ các kết nối đã lưu sẵn trong AgentsRoom. Một cơ sở dữ liệu trong mạng con riêng trở nên chạm tới được mà không cần phơi nó ra công khai. Trên Google Cloud, hãy chọn instance Cloud SQL: AgentsRoom khởi động Cloud SQL Auth Proxy cho bạn.
Truy vấn nó, hoặc để một agent truy vấn
Chạy câu lệnh của bạn từ ứng dụng, hoặc để một agent chạy một câu qua MCP. Chỉ đọc cho tới khi bạn đổi, mỗi lần gọi một câu lệnh, tập kết quả có giới hạn, và một xác nhận rõ ràng đứng giữa mọi lần ghi và dữ liệu của bạn.
Khi một agent cần đúng những hàng dữ liệu thật
Những lúc mà đọc dữ liệu sản xuất là con đường ngắn nhất tới bản sửa.
Gỡ lỗi trên dữ liệu thật
Lỗi chỉ xuất hiện với vài tài khoản. Cho agent đọc đúng những hàng đó và nó tìm ra giá trị làm hỏng logic, thay vì đưa ra ba giả thuyết về việc dữ liệu có thể trông như thế nào.
Một cơ sở dữ liệu không công khai
Cơ sở dữ liệu nằm trong mạng con riêng, không có điểm truy cập công khai. Định tuyến kết nối qua một đường hầm SSH hoặc một phiên AWS SSM dựng trên các kết nối đã lưu của bạn, và truy vấn nó mà không mở một cổng nào ra internet.
Để agent kiểm chứng, đừng để nó đoán
Trước khi viết một bản migration hay một truy vấn, agent nhìn được thứ thực sự đang nằm trong cơ sở dữ liệu. Nó đọc, nó báo cáo, và trừ khi bạn đã mở kết nối đó cho agent ghi, nó không có cách nào thay đổi bất cứ thứ gì trong lúc đó.
Sản xuất, không kèm rủi ro ghi
Đọc dữ liệu sản xuất thường là cần thiết, còn ghi vào đó thì gần như không bao giờ cần giữa một nhiệm vụ. Đánh dấu kết nối là sản xuất, giữ nó ở chế độ chỉ đọc, và khác biệt giữa điều tra và làm hỏng thôi phụ thuộc vào việc có ai đó đang để ý hay không.
Làm mới staging bằng dữ liệu thật
Lỗi chỉ tái hiện trên những hàng dữ liệu thật. Hãy chép cơ sở dữ liệu sang máy chủ staging của bạn, qua đường hầm đã lưu sẵn, còn những gì đang nằm ở đó thì được sao lưu ra tệp trước.
Mở laptop ra, mọi thứ đã sẵn ở đó
Các kết nối đi theo tài khoản của bạn: cùng host, cùng đường hầm, cùng những dấu chỉ đọc và sản xuất. Khi bật mật khẩu đồng bộ, mật khẩu cũng đi theo, được mã hóa đầu cuối, nên không phải gõ lại gì; nếu không bật, mỗi máy hỏi mật khẩu đúng một lần.
Các agent của tôi truy vấn cơ sở dữ liệu bằng cách nào?
Qua AgentsRoom MCP, với bốn công cụ. db_list trả về các kết nối bạn đã lưu cùng siêu dữ liệu của chúng, db_schema đi qua các lược đồ, các bảng và các cột mà không cần một dòng SQL, db_query chạy một câu lệnh và trả về các hàng, còn db_connection_new đề xuất một cơ sở dữ liệu bạn chưa lưu. AgentsRoom mở kết nối, kể cả đường hầm SSH hay phiên AWS SSM đứng phía trước nếu có. Thứ đi ngược về phía agent là một tập kết quả, không bao giờ là một thông tin đăng nhập.
Agent chỉ ghi được khi bạn bật “Cho phép tác tử ghi dữ liệu” trên một kết nối cũng đã được cho phép ghi. Tùy chọn phải tự bật này mặc định tắt và được đồng bộ cùng kết nối trên toàn bộ tài khoản của bạn. Khi đã bật, các thao tác ghi chạy ngay lập tức, nên chỉ dùng nó khi bạn tin tưởng giao cơ sở dữ liệu đó cho agent. Ứng dụng desktop kiểm tra quyền này trong tiến trình chính của nó, và db_query vẫn chỉ nhận một câu lệnh cho mỗi lần gọi.
Đăng ký một cơ sở dữ liệu cũng có thể hoàn toàn là việc của agent. db_connection_new giữ con đường có xem lại: nó mở biểu mẫu tạo mới đã điền sẵn host, người dùng và kết nối SSH hay AWS SSM cần dùng để chạm tới nó, rồi bạn xem lại, gõ mật khẩu và lưu, không có gì được lưu trước khi bạn làm việc đó. Trừ khi bạn tắt "Agent có thể quản lý kết nối" (Cài đặt, bật theo mặc định), db_connection_save ghi thẳng kết nối đó, và mật khẩu vẫn không bao giờ đi qua cuộc trò chuyện: nó được sao chép từ một bí mật trong kho mà agent chỉ nêu tên. Agent nhận được thứ nó cần để suy luận về dữ liệu của bạn, còn những con đường thường biến quyền truy cập đó thành sự cố thì nó không có lấy một con đường nào.
Mọi truy vấn mà agent chạy cũng đều hiện rõ. Các lệnh gọi db_query và db_schema xuất hiện trong tab "Hoạt động" của bảng bên phải, kèm câu SQL và những hàng đầu tiên trả về, với một nhật ký riêng cho mỗi cơ sở dữ liệu; ảnh đại diện của agent hiện trên nút "Cơ sở dữ liệu" và, kèm huy hiệu "Agent đang làm việc", trong danh sách cơ sở dữ liệu của bạn. Bạn cũng có thể theo dõi từ điện thoại, trong thẻ agent của ứng dụng di động. Nhật ký này chỉ đi giữa máy tính và điện thoại của bạn, được mã hóa đầu cuối và che các thông tin bí mật: không tập kết quả nào được lưu trên máy chủ.
Khám phá AgentsRoom MCPVẫn là tab "Hoạt động" liệt kê các lệnh gọi db_query và db_schema của bạn, ở đây được quay trên một máy chủ SSH đã lưu : một agent chạy ba lệnh, mỗi lệnh hiện lên kèm kết quả, mã thoát và thời lượng, rồi nhật ký của kết nối đó mở ra đầy đủ. Nhật ký này nằm lại trên máy tính của bạn.
Câu hỏi thường gặp
Hỏi chúng tôi điều khácNhững cơ sở dữ liệu nào được hỗ trợ?
Agent AI có ghi được vào cơ sở dữ liệu của tôi không?
Làm sao tôi chạm tới một cơ sở dữ liệu trong mạng con riêng?
Các agent của tôi có thấy mật khẩu cơ sở dữ liệu không?
Một agent có chạy được nhiều câu lệnh cùng lúc không?
Đánh dấu một kết nối là sản xuất thì thay đổi điều gì?
Chuyện gì xảy ra với một truy vấn trả về rất nhiều hàng?
Một agent có thêm được kết nối cơ sở dữ liệu không?
Một agent tìm hiểu lược đồ của tôi bằng cách nào?
Các kết nối cơ sở dữ liệu của tôi có được đồng bộ giữa các máy không?
Tôi có thể xuất một cơ sở dữ liệu rồi nhập nó ở nơi khác không?
Tài khoản lưu giữ các kết nối của tôi được bảo vệ thế nào?
Ảnh chụp màn hình
Ảnh chụp thật từ ứng dụng, được bổ sung khi tính năng này phát triển.
Có thể bạn cũng thích
RDS qua AWS SSM
Chạm tới một instance Amazon RDS không có endpoint công khai, ngay từ máy của bạn, thông qua aws ssm start-session và tài liệu AWS-StartPortForwardingSessionToRemoteHost. Không có bastion nào phải bảo trì, không VPN, không quy tắc SSH đi vào. AgentsRoom mở phiên trên một cổng loopback rồi nối trình khách cơ sở dữ liệu qua đó. MySQL, PostgreSQL, SQL Server và MongoDB, tức là RDS MySQL, RDS PostgreSQL, RDS for SQL Server, Aurora và DocumentDB.
Cloud SQL Auth Proxy
Chạm tới một instance Cloud SQL for MySQL hoặc PostgreSQL ngay từ máy của bạn, kể cả khi chỉ có IP riêng, mà không cần VM bastion. AgentsRoom chạy Cloud SQL Auth Proxy trên một cổng loopback bằng Application Default Credentials của gcloud, hỗ trợ xác thực cơ sở dữ liệu bằng IAM và cho phép agent AI truy vấn ở chế độ chỉ đọc.
Kết nối SSH
Lưu các kết nối SSH của bạn, mở terminal tích hợp qua SSH và chạy Claude Code, Codex hoặc Antigravity CLI trực tiếp trên máy chủ từ xa hay VPS của bạn. Xác thực bằng khóa SSH hoặc mật khẩu, hồ sơ kết nối theo từng dự án, không cần ứng dụng SSH riêng.
Trình quản lý bí mật
Lưu khóa API, token và mật khẩu trong keychain của hệ điều hành, tham chiếu chúng bằng {{secret:NAME}} trong lệnh dev và trong môi trường của agent, rồi để AgentsRoom phân giải lúc khởi chạy. Agent chỉ thấy tên, không bao giờ thấy giá trị, và không có gì được đồng bộ lên máy chủ.
Dev Terminals
Trình quản lý terminal và khởi chạy tiến trình theo từng dự án. Khởi động backend, frontend và worker chỉ một cú nhấp, cục bộ hoặc trên một máy chủ từ xa.
AgentsRoom MCP
Server MCP cho phép các agent của bạn lái chính AgentsRoom : dự án, terminal, backlog và kết nối, cùng những rào chắn đi kèm.
Cho agent của bạn dữ liệu, đừng cho khóa
Tải AgentsRoom, lưu các kết nối MySQL, PostgreSQL, SQL Server, MongoDB, SQLite và Google BigQuery của bạn, chạm tới những kết nối máy chủ qua một đường hầm SSH hay một phiên AWS SSM, và để các agent truy vấn chúng, ở chế độ chỉ đọc trừ khi bạn mở một kết nối cho chúng ghi.
Ứng dụng đồng hành: theo dõi agent khi đi đường
Sử dụng Claude, Codex, Antigravity CLI hoặc nhà cung cấp AI khác.
Gửi lỗi và yêu cầu thẳng vào backlog công khai của bạn.
Đọc agent như một cuộc trò chuyện
Mỗi agent có vai trò, khuôn mặt và một luồng tin nhắn bạn đọc như ứng dụng nhắn tin.




