前言¶
在 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