新增功能 v2.1: 内置Web前端(Markdown渲染,长时记忆实时加载)、REST API、启动脚本等。
基于LangGraph,实现了一主两从多代理架构,以实现智能数据库查询和分析功能,支持长短期记忆。 https://github.com/user-attachments/assets/3b1b1513-3c92-4952-b8e1-7e62e77630c9
主智能体 (MasterAgent)
├── 意图识别:判断用户问题类型(结合用户偏好)
├── 任务路由:选择合适的处理路径
├── 短期记忆:智能压缩对话历史(LLM总结)
├── 长期记忆:跨会话用户偏好和知识
└── 结果汇总:整合子智能体输出
子智能体1 (SQLQueryAgent)
└── NL2SQL转换、执行查询
子智能体2 (DataAnalysisAgent)
└── 数据分析、生成洞察
1. 意图识别 - 自动识别4种类型的问题
simple_answer: 简单问候sql_only: 数据查询analysis_only: 分析历史数据sql_and_analysis: 查询+分析2. 智能路由 - 根据意图调用不同的代理
3. 双层记忆系统 ⭐ 新增
4. 用户会话管理 ⭐ 新增
new(新对话)info(查看信息)5. MCP集成 - 通过MCP协议执行SQL
pip install -r requirements.txt
# Windows
set DASHSCOPE_API_KEY=your_api_key
# Linux/Mac
export DASHSCOPE_API_KEY=your_api_key
cd intelligent_data_query/data
python init_db.py # 初始化业务数据库
python init_memory_db.py # 初始化长期记忆数据库
cd intelligent_data_query
python agent.py
系统会提示您输入用户ID,输入后即可开始使用。同一user_id可以在不同会话中保留个人偏好。
# Windows
cd intelligent_data_query
start_web.bat
# Linux/Mac
cd intelligent_data_query
chmod +x start_web.sh
./start_web.sh
浏览器访问:http://localhost:5000
前端特性(v2.1):
long_term_memory.db读取并显示用户信息(无对话摘要)/api/login、/api/query、/api/new_session、/api/user_info、/api/health特殊命令:
new - 开始新对话(清除短期记忆,保留长期记忆)info - 查看当前用户信息和偏好exit/quit - 退出系统系统示例测试问题覆盖所有意图类型:
简单问候
数据查询
仅分析
查询+分析
intelligent_data_query/
├── agents/ # 智能体模块
│ ├── master_agent.py # 主智能体(含记忆管理)
│ ├── sql_agent.py # SQL查询子智能体
│ └── analysis_agent.py # 数据分析子智能体
├── memory/ # 记忆模块 ⭐新增
│ ├── long_term_memory.py # 长期记忆管理器
│ └── memory_extractor.py # 记忆提取器
├── agent.py # 主入口(含用户登录)
├── prompts.py # 提示词定义
├── test_questions.py # 测试问题集
├── config/
│ └── config.yaml # 配置文件(含记忆配置)
├── data/
│ ├── company.db # 业务数据库
│ ├── long_term_memory.db # 长期记忆数据库 ⭐新增
│ ├── init_db.py # 业务数据库初始化
│ └── init_memory_db.py # 记忆数据库初始化 ⭐新增
├── static/ # Web 前端(v2.1)
│ ├── index.html # 主页面(聊天界面)
│ ├── style.css # 样式(含滚动条/Markdown适配)
│ └── app.js # 前端逻辑(Markdown、用户信息、API)
├── start_web.bat # Windows 启动脚本
├── start_web.sh # Linux/Mac 启动脚本
├── video/
│ └── demo.mp4 # 演示视频
└── mcp_sql_server.py # MCP SQL服务器
编辑 config/config.yaml:
llm:
provider: "dashscope"
model: "qwen-turbo"
temperature: 0.1
max_tokens: 2048
database:
path: "./data/company.db"
nl2sql:
num_examples: 3
# 记忆配置 ⭐新增
memory:
long_term_db: "./data/long_term_memory.db" # 长期记忆数据库路径
short_term_max_tokens: 1000 # 短期记忆最大token数
compression_threshold: 10 # 超过N条消息开始压缩
auto_extract_knowledge: true # 自动提取长期记忆
DASHSCOPE_API_KEY 环境变量user_id 可在不同会话中保留个人偏好static/),支持Markdown渲染和代码高亮/api/login、/api/query、/api/new_session、/api/user_info、/api/health)long_term_memory.db实时显示用户偏好/知识start_web.bat / start_web.shvideo/demo.mp4