前言¶
在 DSH 中讓智能體操作 MySQL 時,常見的問題是連接配置分散、不同會話誤選數據庫、工具權限邊界不夠清晰。dsh-mysql 把 MySQL 連接配置、會話選擇和數據庫工具放在同一個 Web profile 插件裏:先在設置頁維護連接,再按會話選擇連接,最後讓 Agent 用受控工具查表或執行查詢。
這是什麼¶
dsh-mysql 是一個面向 DeepSeek Harness(DSH)的插件,倉庫名爲 1321928757/dsh-mysql,採用 MIT 許可證。
它爲 DSH 的 Web profile 提供三件事:
- 多套 MySQL 連接的設置頁;
- 輸入框旁邊的按會話數據庫選擇器;
- 面向所有 Agent 預設可用的
mysql_tables、mysql_query和mysql_execute工具。
插件不需要修改 Agent 預設。工具由 profile bundle 全局註冊,註冊後對所有 Agent 預設可用。
核心功能¶
連接管理¶
插件提供設置頁,用於管理多套 MySQL 連接。可執行的操作包括添加、編輯、刪除和測試連接。
每條連接可配置:
hostportuserpassworddefault databasetable scopewrite permission
連接表單當前不暴露 SSL/TLS、Unix socket/named-pipe 或 charset 選項。
會話選擇¶
輸入框旁邊提供數據庫選擇器。當前會話選擇的連接會顯示在輸入框附近,並可以隨時更改。
一個會話中切換連接,不會隱式改變另一個會話的連接選擇。
受控數據庫工具¶
插件向所有 Agent 預設提供三個工具:
mysql_tables¶
用於發現默認數據庫中的表。插件在 DATABASE() 中發現表;如果希望進行 schema discovery,需要爲該連接配置 default database。未配置默認數據庫的連接可能返回空表列表。
mysql_query¶
用於執行查詢並返回結果。結果最多返回 2,000 行,並帶有 truncated 標誌。
涉及 MAX_EXECUTION_TIME 的優化提示面向 MySQL 5.7.8+ 等支持該提示的版本;MariaDB 可能對該提示的處理不同。
mysql_execute¶
用於執行寫操作,要求連接配置中啓用 allowWrite: true。
mysql_execute 會拒絕 DDL、事務控制語句、多語句 SQL 以及其他不允許的語句類型。
默認只讀與本地配置¶
插件默認只讀。寫權限是每條連接的顯式配置,並且默認關閉。
配置採用 local-first 方式:瀏覽器收到的是安全的連接視圖,包含 hasPassword,不會收到已存儲的密碼。連接設置和密碼保留在本地 DSH 存儲中。
數據邊界需要注意:當 Agent 使用數據庫工具時,數據庫 schema 和查詢結果會作爲普通工具輸出發送給 LLM provider。
安裝與啓用¶
使用前需要滿足:
- 已安裝帶 Web profile 的 DSH;
- Node.js 20 或更高版本。
從 GitHub 安裝 v0.1.10:
dsh plugin --profile web add github:1321928757/dsh-mysql#v0.1.10
安裝完成後,重啓 dsh web。
可以用下面的命令確認該 bundle 是否出現在 web profile 配置中:
dsh --profile web --dump-config | findstr dsh-mysql
如果不再需要,可以移除:
dsh plugin --profile web remove dsh-mysql
典型用法¶
下面介紹一個常見的只讀查詢流程。
1、打開 Settings → MySQL 數據庫,添加一條連接並測試連接。
連接信息至少包括 host、port、user、password 和 default database。如果只想允許 Agent 讀取特定範圍,可以配置 table scope。寫權限默認不要開啓。
2、回到會話頁面,點擊輸入框旁邊的數據庫按鈕,選擇當前會話要使用的連接。
3、讓 Agent 先查 schema,再執行查詢。可以這樣描述:
Use mysql_tables to inspect the available schema first, then use mysql_query to answer my question. Do not modify data.
經過上面的步驟後,Agent 會在當前會話選擇的連接上工作。默認情況下只能讀,不能寫。
適用場景與注意¶
適合在 DSH Web 中接入 MySQL、希望按會話選擇數據庫,並讓 Agent 使用受控工具處理表結構和查詢結果的場景。
使用前需要確認以下幾點:
- 插件以當前
dsh進程權限運行;安裝前應檢查源碼和許可證。 - 許可證爲 MIT。
- 連接密碼保留在本地 DSH 存儲中,但 Agent 使用工具時,schema 和查詢結果會作爲工具輸出發送給 LLM provider。
mysql_execute只有在allowWrite: true時纔可用,並且會拒絕 DDL、事務控制語句、多語句 SQL 和其他不被允許的語句類型。mysql_query最多返回2,000行,並帶有truncated標誌。- 連接表單不暴露 SSL/TLS、Unix socket/named-pipe 或 charset 選項。
MAX_EXECUTION_TIME優化提示面向 MySQL 5.7.8+ 等支持該提示的版本;MariaDB 可能處理不同。
鏈接¶
- 目錄頁:在 DSH 插件目錄中檢索
dsh-mysql條目;具體 URL 以當前目錄檢索結果爲準。 - GitHub:
https://github.com/1321928757/dsh-mysql