File tree Expand file tree Collapse file tree 2 files changed +12
-6
lines changed
src/agents/common/toolkits/mysql Expand file tree Collapse file tree 2 files changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -63,7 +63,7 @@ agent_manager.init_all_agents()
6363 - 工具名称形如 ` query_<db_id前缀> ` ;描述来自知识库名称与说明
6464 - 在工具选择阶段,用描述帮助模型做针对性检索
6565- MySQL 工具包:只读查询
66- - ` mysql_list_tables ` 、` mysql_describe_table ` 、` mysql_query `
66+ - ` mysql_list_tables ` (对话侧名称:查询表名及说明) 、` mysql_describe_table ` 、` mysql_query `
6767 - 环境变量见下,具备超时/行数限制与注入防护
6868
6969MCP(Model Context Protocol)可接入外部可视化或其他工具能力:
@@ -85,6 +85,7 @@ MYSQL_HOST=192.168.1.100
8585MYSQL_USER=username
8686MYSQL_PASSWORD=your_secure_password
8787MYSQL_DATABASE=database_name
88+ MYSQL_DATABASE_DESCRIPTION=业务主库(可选,用于工具提示)
8889MYSQL_PORT=3306
8990MYSQL_CHARSET=utf8mb4
9091```
@@ -93,9 +94,11 @@ MYSQL_CHARSET=utf8mb4
9394
9495| 工具名称 | 功能描述 |
9596| ----------| ----------|
96- | ` mysql_list_tables ` | 获取数据库中的所有表名 |
97- | ` mysql_describe_table ` | 获取指定表的详细结构信息 |
98- | ` mysql_query ` | 执行只读的 SQL 查询语句 |
97+ | ` mysql_list_tables ` (查询表名及说明) | 获取数据库中的所有表名,并在有配置时附带数据库说明 |
98+ | ` mysql_describe_table ` (描述表) | 获取指定表的详细结构信息 |
99+ | ` mysql_query ` (执行 SQL 查询)| 执行只读的 SQL 查询语句 |
100+
101+ 配置 ` MYSQL_DATABASE_DESCRIPTION ` 后,智能体在列出数据库表时会优先展示这段说明,帮助模型在使用工具时理解库的用途,从而匹配更精确的查询策略。
99102
100103### 安全特性
101104
Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ def get_connection_manager() -> MySQLConnectionManager:
3232 "database" : os .getenv ("MYSQL_DATABASE" ),
3333 "port" : int (os .getenv ("MYSQL_PORT" , "3306" )),
3434 "charset" : "utf8mb4" ,
35+ "description" : os .getenv ("MYSQL_DATABASE_DESCRIPTION" , "默认 MySQL 数据库" ),
3536 }
3637 # 验证配置完整性
3738 required_keys = ["host" , "user" , "password" , "database" ]
@@ -49,7 +50,7 @@ class TableListModel(BaseModel):
4950 pass
5051
5152
52- @tool (name_or_callable = "查询表名 " , args_schema = TableListModel )
53+ @tool (name_or_callable = "查询表名及说明 " , args_schema = TableListModel )
5354def mysql_list_tables () -> str :
5455 """获取数据库中的所有表名
5556
@@ -85,7 +86,9 @@ def mysql_list_tables() -> str:
8586 # except Exception:
8687 # table_info.append(f"- {table_name} (无法获取行数)")
8788
88- result = "数据库中的表:\n " + "\n " .join (table_names )
89+ result = f"数据库中的表:\n { '\n ' .join (table_names )} "
90+ if db_note := conn_manager .config .get ('description' ):
91+ result = f"数据库说明: { db_note } \n \n " + result
8992 logger .info (f"Retrieved { len (table_names )} tables from database" )
9093 return result
9194
You can’t perform that action at this time.
0 commit comments