# lyai
**Repository Path**: lyzyp/lyai
## Basic Information
- **Project Name**: lyai
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-07-30
- **Last Updated**: 2026-07-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 📖 项目简介
**LyAI** 是基于 **Spring AI Alibaba Graph** 打造的企业级 AI 智能体管理与数据分析平台,以 **策略模式** 为核心设计理念,支持多种 Agent 范式的统一编排与调度。
### 核心能力
- **NL2SQL 智能报表** — StateGraph 驱动的自然语言转 SQL 引擎,支持 7 种主流数据库的即开即用查询
- **多范式 Agent 框架** — React Agent / Workflow Graph / Harness(HITL)三种模式,通过 `AgentExecutor` 策略接口统一管理
- **Python 深度分析** — Docker/Local 双模式沙箱,自动生成并执行 Python 统计分析代码
- **RAG 检索增强** — 混合检索(向量 + 关键词 + RRF 融合排序),集成 pgvector / Elasticsearch
- **MCP 协议** — 原生支持 MCP Server / Client,可接入 Claude Desktop 等生态工具
- **RBAC 权限体系** — 用户-角色-部门-公司四级权限 + API Key 细粒度管控
- **三方平台集成** — 钉钉 / 飞书 / 企业微信组织同步与消息推送
### 架构亮点
- **策略模式引擎** — `AgentExecutionEngine` 替代传统 if-else 路由,新增 Agent 类型只需实现 `AgentExecutor` 接口
- **统一响应体** — `R` 统一封装所有 API 返回,自动注入 TraceId 实现全链路追踪
- **中间件链** — Agent 执行前后的日志、限流、追踪等横切关注点通过 `AgentMiddlewareChain` 统一管理
- **无环依赖** — `common ← core ← admin` 和 `common ← platform ← admin`,模块边界清晰
## ✨ 核心特性
| 特性 | 说明 |
| :--- | :--- |
| **多范式 Agent** | React Agent(推理-行动-观察循环)、Workflow Graph(有向图编排)、Harness(HITL 人工干预) |
| **NL2SQL 全链路** | 意图识别 → 证据召回 → Schema 召回 → 表关系推断 → 可行性评估 → Planner → SQL/Python 执行 → 报告生成 |
| **Python 沙箱** | Docker 容器隔离 + Local Python3,自动代码生成,支持统计分析、机器学习、ECharts 可视化 |
| **混合检索 RAG** | pgvector 向量检索 + 关键词检索 + RRF 融合排序,支持动态过滤表达式 |
| **MCP 协议** | 作为 Tool Server 对外暴露 NL2SQL 能力,可被 Claude Desktop 等 MCP 客户端调用 |
| **多模型热切换** | 运行时动态切换 LLM 和 Embedding 模型,无需重启 |
| **多数据源** | MySQL / PostgreSQL / Oracle / SQL Server / H2 / Hive / 达梦 DM |
| **Agent 记忆** | RedisSaver 短期检查点 + 用户画像 / 事实记忆 / 向量语义检索长期记忆 |
| **全链路追踪** | OpenTelemetry → Langfuse,LLM 调用 Token 用量、延迟全程可观测 |
| **HITL 人工干预** | 高风险操作暂停等人工确认,支持 RequireUserConfirm 事件 |
| **多租户** | 租户隔离 + 钉钉 / 飞书 / 企业微信三方登录 |
| **Vben5 管理后台** | Vue 3 + TypeScript + Vben Admin 5 现代化管理界面 |
## 🛠 技术栈
| 层级 | 技术 | 版本 | 说明 |
| :--- | :--- | :--- | :--- |
| **应用框架** | Spring Boot | 4.0.0 | 响应式 WebFlux |
| **AI 基础** | Spring AI | 2.0.0-M1 | ChatModel、向量存储、@Tool 注解 |
| **Agent 框架** | Spring AI Alibaba | 2.0.0-M1.1 | ReactAgent、StateGraph、RedisSaver |
| **ORM** | MyBatis Flex | 1.11.7 | 注解驱动、代码生成 |
| **权限** | Sa-Token | 1.45.0 | RBAC + Reactor 适配 |
| **数据库** | PostgreSQL + pgvector | 14+ | 业务数据 + 向量存储 |
| **缓存** | Redis + Redisson | 7.x | Session / 检查点 / 分布式锁 |
| **可观测** | OpenTelemetry | 1.32.0 | 全链路 Tracing |
| **文档** | Springdoc OpenAPI | 2.8.17 | Swagger UI |
| **构建** | JDK 21 + Maven | 3.9+ | CI-Ready 扁平化 POM |
## 🏗️ 模块架构
```
lyai/
├── pom.xml ← com.zyp:lyai (根 POM,含所有依赖管理)
│
├── lyai-common/ ← ① 公共基础(零业务依赖)
│ ├── exception/ 统一异常体系(BaseException、ErrorCode)
│ ├── response/ 统一响应体 R
│ ├── auth/ 认证共享类型(BaseEntity、PrivilegeUser)
│ ├── enm/ 全局枚举(AgentType、PlatformType 等)
│ ├── model/vo/config/ 基础模型、VO、通用配置
│ └── util/ 工具类(SqlSecurityValidator)
│
├── lyai-core/ ← ② 业务核心(占 80%+ 代码量)
│ ├── agent/ Agent 框架层
│ │ ├── api/ AgentExecutor 策略接口 + AgentMiddleware 中间件
│ │ ├── engine/ AgentExecutionEngine 策略引擎
│ │ ├── react/ ReactAgentExecutor + BPM / 制度分析助手
│ │ ├── workflow/ WorkflowAgentExecutor + Parol 工作流
│ │ └── harness/ HarnessAgentExecutor(HITL 人工干预)
│ ├── data/ NL2SQL 领域
│ │ ├── workflow/ StateGraph 节点 + Dispatcher(19 个节点 / 11 个路由)
│ │ ├── connector/ 7 种数据库连接器(MySQL、PG、Oracle、SQLServer、H2、Hive、达梦)
│ │ └── service/ 应用服务(NL2SQL / Schema / Python 沙箱 / 混合检索)
│ ├── knowledge/ RAG 知识库
│ ├── chat/ 会话管理 + 消息系统
│ ├── model/ AI 模型动态配置工厂
│ ├── controller/ REST API 接口层
│ └── infrastructure/ 基础设施(缓存 / 文件 / 事件 / AOP)
│
├── lyai-platform/ ← ③ 平台治理
│ ├── auth/ RBAC 认证授权(登录 / 用户 / 角色 / 权限 / 模块)
│ ├── org/ 组织管理 + 三方同步策略(钉钉 / 飞书 / 企微)
│ └── channel/ 消息通道 SDK
│
├── lyai-server/ ← ④ 启动入口(端口 8066)
│ └── LyAgentApplication @SpringBootApplication
│
├── lyai-web/ ← ⑤ 前端(Vue 3 + pnpm Monorepo)
├── sql/ ← 数据库脚本(DDL + 初始数据)
└── docs/ ← 项目文档
```
### 依赖关系(单向无环)
```
lyai-common (最底层)
↗ ↖
lyai-core lyai-platform
↘ ↗
lyai-server (最顶层,启动器)
```
> **铁律**:common 不依赖任何业务模块;core 与 platform 之间无循环依赖。
### lyai-core 内部详解
**Agent 框架层** (`agent/`) 采用策略模式:
```
新增 Agent 类型 = 3 步,核心引擎零改动:
1. 新建 XxxAgentExecutor implements AgentExecutor
2. 加 @Component
3. 实现 supportedSns() + stream()
```
| 范式 | 执行器 | 技术实现 |
| :--- | :--- | :--- |
| **React Agent** | `ReactAgentExecutor` | Spring AI Alibaba ReactAgent + ChatModel + RedisSaver + Hook |
| **Workflow Graph** | `WorkflowAgentExecutor` | Spring AI Alibaba StateGraph + CompiledGraph + RedisSaver |
| **Harness (HITL)** | `HarnessAgentExecutor` | AgentScope HarnessAgent + RequireUserConfirm 人工干预 |
**NL2SQL 工作流**(StateGraph 驱动,19 个节点):
```
IntentRecognition → EvidenceRecall → QueryEnhance → SchemaRecall
→ TableRelation → FeasibilityAssessment → Planner → PlanExecutor
→ [SqlGenerate → SemanticConsistency → SqlExecute] 或
[PythonGenerate → PythonExecute → PythonAnalyze] 或
[ReportGenerator] 或 [HumanFeedback]
```
## 🚀 快速开始
### 环境要求
| 组件 | 版本 | 说明 |
| :--- | :--- | :--- |
| JDK | 21+ | 必须 |
| Maven | 3.9+ | 必须,需在 PATH 中 |
| PostgreSQL | 14+ | 必须,含 pgvector 扩展 |
| Redis | 7+ | 必须 |
| Docker | — | 可选,Python 深度分析需要 |
### 启动步骤
```bash
# 1. 克隆项目
git clone https://gitee.com/lyzyp/lyai.git
cd lyai
# 2. 创建数据库并导入数据
psql -U postgres -c "CREATE DATABASE lyai;"
psql -U postgres -d lyai < sql/all_schema.sql
psql -U postgres -d lyai < sql/all_data.sql
## 注意:PostgreSQL 需安装 pgvector 向量扩展
# 3. 构建项目
mvn clean install -Dspring-javaformat.skip=true
# 4. 启动服务(端口 8066)
mvn spring-boot:run -pl lyai-server
```
### 环境变量
| 变量 | 必填 | 说明 | 默认值 |
| :--- | :--- | :--- | :--- |
| `SPRING_AI_DASHSCOPE_API_KEY` | 是 | DashScope API Key | — |
| `SPRING_DATASOURCE_URL` | 否 | PostgreSQL JDBC URL | `jdbc:postgresql://127.0.0.1:5432/lyai` |
| `SPRING_DATASOURCE_USERNAME` | 否 | 数据库用户名 | `postgres` |
| `SPRING_DATASOURCE_PASSWORD` | 否 | 数据库密码 | `123456` |
| `SPRING_DATA_REDIS_HOST` | 否 | Redis 地址 | `127.0.0.1` |
### 验证
```bash
# 健康检查
curl http://localhost:8066/echo/ok
# 流式查询示例
curl -N "http://localhost:8066/api/stream/search?agentId=1&query=上个月销售额是多少"
```
## 🗄️ 数据库支持
### 目标数据源
| 数据库 | 驱动 | 标识 |
| :--- | :--- | :--- |
| MySQL | mysql-connector-j | `mysql` |
| PostgreSQL | postgresql 42.4.1 | `postgresql` |
| Oracle | ojdbc8 | `oracle` |
| SQL Server | mssql-jdbc | `sqlserver` |
| H2 | h2 2.3.232 | `h2` |
| Hive | hive-jdbc 3.1.3 | `hive` |
| 达梦 DM | DmJdbcDriver18 | `dameng` |
### 向量存储
| 存储 | 说明 |
| :--- | :--- |
| PostgreSQL pgvector | 默认向量库(HNSW 索引,余弦距离,512 维) |
| Elasticsearch | 可选方案,支持 DenseVector / SparseVector |
### 应用存储
- **PostgreSQL** — 业务数据(智能体、会话、知识库、权限、用户)
- **Redis** — Graph 状态检查点(RedisSaver)、缓存、分布式锁、Session
## 🔧 开发命令
| 命令 | 说明 |
| :--- | :--- |
| `mvn clean compile -pl lyai-server -am` | 增量编译(推荐) |
| `mvn clean install -Dspring-javaformat.skip=true` | 全量构建(跳过格式检查) |
| `mvn spring-boot:run -pl lyai-server` | 启动应用(端口 8066) |
| `mvn compile -pl lyai-core -am -DskipTests` | 仅编译 core 模块 |
## 📚 文档导航
| 文档 | 内容 |
| :--- | :--- |
| [架构设计](docs/ARCHITECTURE.md) | 系统分层架构、StateGraph 工作流设计、核心时序图 |
| [快速启动指南](docs/快速启动指南.md) | 环境要求、数据库导入、基础配置 |
| [开发者指南](docs/DEVELOPER_GUIDE.md) | 开发环境搭建、配置手册、自定义 Agent 开发 |
| [高级功能](docs/ADVANCED_FEATURES.md) | API Key、MCP 配置、混合检索、Python 执行器、Langfuse |
| [知识配置](docs/KNOWLEDGE_USAGE.md) | 语义模型、业务知识、Agent 知识配置最佳实践 |
| [权限管理](docs/PRIVILEGE.md) | RBAC 权限体系(用户-角色-部门-公司) |
| [核心技术栈](docs/核心技术栈.md) | 依赖清单、模块说明、版本对照 |
| [代码注释指南](docs/代码注释生成提示词.md) | Javadoc 规范、注释模板 |
## 📄 许可证
本项目采用 Apache License 2.0 许可证。详见 [LICENSE](LICENSE) 文件。
---
Made with ❤️ by 张彦鹏 & LyAI Team