Skip to content

Commit 6eaeb14

Browse files
committed
Merge branch 'main' of https://github.com/xerrors/Yuxi-Know
2 parents 5542495 + a1150b9 commit 6eaeb14

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

docs/advanced/agents-config.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff 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

6969
MCP(Model Context Protocol)可接入外部可视化或其他工具能力:
@@ -85,6 +85,7 @@ MYSQL_HOST=192.168.1.100
8585
MYSQL_USER=username
8686
MYSQL_PASSWORD=your_secure_password
8787
MYSQL_DATABASE=database_name
88+
MYSQL_DATABASE_DESCRIPTION=业务主库(可选,用于工具提示)
8889
MYSQL_PORT=3306
8990
MYSQL_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

src/agents/common/toolkits/mysql/tools.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff 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)
5354
def 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

0 commit comments

Comments
 (0)