From d3c482d6bfaaeb400334e2407ffc8f9e0067bac8 Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Sat, 24 Jan 2026 12:22:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B3=A8=E5=85=A5=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=8F=8F=E8=BF=B0=E5=88=B0=E5=B7=A5=E5=85=B7=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/agents/common/toolkits/mysql/tools.py | 32 ++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/agents/common/toolkits/mysql/tools.py b/src/agents/common/toolkits/mysql/tools.py index 69af8238..fcdc4204 100644 --- a/src/agents/common/toolkits/mysql/tools.py +++ b/src/agents/common/toolkits/mysql/tools.py @@ -309,6 +309,36 @@ def mysql_query( return error_msg +def _get_db_description() -> str: + """获取数据库描述""" + import os + return os.getenv("MYSQL_DATABASE_DESCRIPTION") or "" + + +# 用于跟踪是否已注入描述,避免重复 +_db_description_injected: bool = False + + +def _inject_db_description(tools: list[Any]) -> None: + """将数据库描述注入到工具描述中""" + global _db_description_injected + if _db_description_injected: + return + + db_desc = _get_db_description() + if not db_desc: + return + + for tool in tools: + if hasattr(tool, 'description'): + # 在描述末尾添加数据库说明 + tool.description = f"{tool.description}\n\n当前数据库说明: {db_desc}" + + _db_description_injected = True + + def get_mysql_tools() -> list[Any]: """获取MySQL工具列表""" - return [mysql_list_tables, mysql_describe_table, mysql_query] + tools = [mysql_list_tables, mysql_describe_table, mysql_query] + _inject_db_description(tools) + return tools