Skip to content

finch04/LightBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

301 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LightBot

LightBot

轻量级现代化 Java AI Agent 平台

Lightweight, Modern, Enterprise-grade Java AI Agent Platform

Stars Forks Issues

Quick Start详细启动指南FeaturesArchitectureTech StackRoadmapContributing


项目介绍

LightBot 是一个基于 Spring AI 的轻量级 Java AI Agent 平台。它为 Java 开发者提供了一套从 Agent 构建、Workflow 编排、RAG 知识库、Tool Calling、MCP 协议接入到全链路可观测的完整解决方案。

为什么选择 LightBot?

在 AI Agent 浪潮中,Python 生态(LangChain、Dify)已先行一步,但 Java 生态在企业级场景中仍具备不可替代的优势:高性能、强类型、成熟的中间件体系、庞大的开发者社区。LightBot 致力于将这些优势与 AI Agent 能力深度结合,为 Java 开发者提供一条 AI Native 的技术路径。

维度 LightBot Dify LangChain
语言 Java Python Python
框架 Spring AI Flask -
定位 Agent Framework + Platform Application Platform Framework
部署 单体 / Docker Compose Docker Compose Library
企业集成 Spring 生态无缝集成 API 为主 API 为主
工作流 可视化 DAG + 18 种节点 可视化 LangGraph
RAG 向量 + 知识图谱 + QA 对 向量检索 向量检索
评测 内置 Eval 体系

项目展示

image-20260618224412024 image-20260618234659562
Landing 首页 Agent对话
image-20260619102651488 image-20260619102737470
Agent 详情 工作流编排
image-20260619105227653 image-20260619124438102
知识库管理 RAG 检索测试
image-20260619112823386 image-20260619112906983
知识图谱可视化 全链路 Trace 追踪
image-20260619123952397 image-20260619123813254
扩展管理 Prompt 工程

功能特性

Agent 引擎

  • 基于 Spring AI 构建,支持系统提示词、变量注入、多模型切换
  • AI 一键生成系统提示词和推荐问题
  • Agent 版本管理:草稿 / 发布 / 回滚 / 历史版本对比
  • SubAgent 多 Agent 编排,支持工具和模型覆盖
  • 欢迎语、推荐问题、头像自定义

Workflow 可视化编排

  • 基于 Vue Flow 的可视化 DAG 工作流画布
  • 18 种节点类型:Start、End、LLM、Condition、Classifier、Tool、Retrieval、Loop、Batch、Variable、Knowledge、Code、MCP、Input、Output、Script、ParameterExtractor、AppComponent
  • 画布内拖拽编排、连线插入、节点配置面板
  • 工作流草稿保存 / 发布 / 版本管理 / 版本回滚
  • 单节点调试 + 全流程调试,实时查看运行日志和变量
  • 工作流合法性校验(连通性、节点配置完整性)

Tool Calling 体系

  • 标准化 Tool 协议:JSON Schema 定义输入输出
  • 3 种 Tool 类型:内置工具、自定义工具、MCP 工具
  • 系统工具自动注入所有 Agent,无需手动绑定
  • Tool 在线测试执行,查看实际输入输出
  • 工具调用记录完整追溯

MCP 协议支持

  • 内置 Model Context Protocol 支持
  • 3 种传输方式:SSE、stdio、StreamableHTTP
  • MCP Server 连接测试、工具自动发现
  • 单工具粒度启用/禁用控制
  • 与 Agent 绑定,开箱即用

Skill 技能系统

  • 可复用的 Agent 技能包,绑定 Prompt 模板 + 工具 + MCP Server
  • 全局技能 / Agent 专属技能两级作用域
  • 内置技能 + 自定义技能,支持启用/禁用
  • 通过 slug 标识符快速引用

RAG 知识库

  • 完整 RAG Pipeline:文档上传 → 分块 → 向量化 → 检索 → 生成
  • 多格式文档支持(PDF、Word、Markdown、TXT 等),支持 OCR
  • URL 内容抓取入库,批量上传
  • 可配置分块策略(策略/大小/重叠/分隔符),支持分块预览
  • 向量检索(Milvus 密集 + 稀疏混合检索)+ Rerank 重排序
  • 流式 RAG 问答(SSE),返回引用来源
  • 知识库统计(文档数/分片数/Token 数)实时更新,支持手动全量重算
  • 知识库成员权限管理(creator/manager/developer/viewer)

知识图谱

  • Neo4j 图数据库驱动,结构化知识表示
  • AI 自动从文档中提取实体和关系
  • JSONL 批量导入三元组
  • 图谱可视化(子图展示、统计信息)
  • 语义搜索图节点
  • 支持知识库级图谱 + 全局独立图谱

QA 对管理

  • 手动创建 / 批量导入 / AI 自动生成问答对
  • 问答对独立向量化,支持语义检索
  • 与文档向量互补,提升 RAG 召回率

模型管理

  • 多提供商统一接入(OpenAI / 通义千问 / DeepSeek / Ollama / 任意 OpenAI 兼容 API)
  • 动态配置字段,每个提供商独立配置表单
  • 模型自动发现:一键拉取提供商可用模型列表
  • 连接测试:保存前/后均可验证 API Key 和连通性
  • 模型分类:Chat / Embedding / TTS / Rerank 四种类型
  • 全局默认模型配置(默认对话模型、嵌入模型、TTS 模型、Rerank 模型)

Prompt 工程

  • Prompt CRUD + 版本管理(版本号、变更描述、状态)
  • 16 个内置构建模板(通用助手、代码审查、翻译、数据分析等)
  • 在线调试运行(SSE 流式输出),实时预览效果
  • 变量定义 + 模型配置 + 工具配置一体化

评测体系 (Eval)

  • 数据集管理:创建、版本管理、批量导入数据条目
  • 评估器管理:自定义评估 Prompt + 变量,内置模板(文本相似度、代码质量、情感分析)
  • 实验管理:选择数据集 + 评估器 → 运行实验 → 查看评分和推理过程
  • RAG 专项评测:Benchmark 自动生成 / 上传,检索准确率 + 回答质量双维度评分

对话系统

  • 同步对话 + 流式对话(SSE)
  • 多会话管理:创建、归档、置顶、删除
  • 消息历史分页加载
  • 图片/视频附件上传,支持预览
  • RAG 引用来源展示
  • Token 消耗统计

全链路可观测

  • LLM Trace:调用链追踪,Span 级别明细,Token 消耗 / 延迟 / 状态
  • 工具调用日志:完整记录每次 Tool 调用的输入、输出、状态
  • 实时日志流:SSE 推送后端日志,支持历史查询
  • Dashboard:Agent 数量、知识库规模、对话量、Token 消耗可视化统计
  • 异步任务中心:任务队列实时推送(SSE),支持取消、进度查看

系统管理

  • Sa-Token 权限认证,JWT 风格 Token
  • 用户注册 / 登录 / 个人信息 / 密码修改
  • 系统配置管理(默认模型、AI 提供商等)
  • Swagger API 文档自动生成

系统架构

┌─────────────────────────────────────────────────────────────────────────┐
│                        Frontend (Vue 3 + Ant Design Vue)                │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐     │
│  │  Chat    │ │ Workflow │ │ Knowledge│ │  Eval   │ │Dashboard │     │
│  │  对话    │ │  编排    │ │  知识库  │ │  评测   │ │  统计    │     │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘     │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐     │
│  │  Agent   │ │   Tool   │ │   MCP    │ │  Prompt │ │  Trace   │     │
│  │  管理    │ │   管理   │ │   管理   │ │  工程   │ │  可观测  │     │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘     │
├─────────────────────────────────────────────────────────────────────────┤
│                        Backend (Spring Boot 3 + Spring AI)              │
│  ┌────────────────────────────────────────────────────────────────┐     │
│  │                    Agent Runtime                                │     │
│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐│     │
│  │  │ Prompt  │ │ Memory  │ │ Tool    │ │ MCP     │ │SubAgent ││     │
│  │  │ Engine  │ │ Manager │ │ Calling │ │ Client  │ │ Runtime ││     │
│  │  └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘│     │
│  ├────────────────────────────────────────────────────────────────┤     │
│  │                    Workflow Engine (DAG)                        │     │
│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐│     │
│  │  │ Start   │ │  LLM    │ │Condition│ │  Tool   │ │  Loop   ││     │
│  │  │ End     │ │Classify │ │Retrieval│ │  Batch  │ │Variable ││     │
│  │  └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘│     │
│  ├────────────────────────────────────────────────────────────────┤     │
│  │                    Knowledge Layer (RAG)                        │     │
│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐│     │
│  │  │Document │ │Chunking │ │Embedding│ │Vector   │ │Knowledge││     │
│  │  │Ingest   │ │Strategy │ │Service  │ │Search   │ │ Graph   ││     │
│  │  └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘│     │
│  ├────────────────────────────────────────────────────────────────┤     │
│  │                    Eval Engine                                  │     │
│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐             │     │
│  │  │Dataset  │ │Evaluator│ │Experiment│ │RAG Eval │             │     │
│  │  │Manager  │ │Engine   │ │Runner   │ │Benchmark│             │     │
│  │  └─────────┘ └─────────┘ └─────────┘ └─────────┘             │     │
│  ├────────────────────────────────────────────────────────────────┤     │
│  │                    Model Layer                                  │     │
│  │  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐          │     │
│  │  │ OpenAI   │ │DashScope │ │ DeepSeek │ │  Ollama  │          │     │
│  │  │(GPT-4o)  │ │ (Qwen)   │ │  (V3/R1) │ │ (Local)  │          │     │
│  │  └──────────┘ └──────────┘ └──────────┘ └──────────┘          │     │
│  └────────────────────────────────────────────────────────────────┘     │
├─────────────────────────────────────────────────────────────────────────┤
│                        Storage Layer                                    │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐  │
│  │  PostgreSQL   │ │    Redis     │ │    Neo4j     │ │    MinIO     │  │
│  │  主数据存储   │ │  缓存/会话   │ │  知识图谱    │ │  文件存储    │  │
│  │  + pgvector   │ │  Sa-Token    │ │  Graph DB    │ │  文档/头像   │  │
│  └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘  │
│  ┌──────────────┐                                                     │
│  │    Milvus    │                                                     │
│  │  向量数据库   │                                                     │
│  │  混合检索     │                                                     │
│  └──────────────┘                                                     │
└─────────────────────────────────────────────────────────────────────────┘

技术栈

后端

技术 版本 说明
Java 17+ LTS 版本
Spring Boot 3.3.6 应用框架
Spring AI 1.1.2 AI 应用框架(动态模型创建)
MyBatis-Plus 3.5.9 ORM 框架
PostgreSQL 15+ 主数据库
pgvector 0.1.6 向量检索扩展(HNSW 索引)
Milvus 2.6+ 向量数据库(密集 + 稀疏混合检索)
Redis 7+ 缓存、会话管理、Sa-Token 存储
Neo4j 5.26+ 图数据库(知识图谱)
MinIO 8.5+ 对象存储(文档、头像)
Sa-Token 1.39+ 权限认证框架
SpringDoc 2.6+ OpenAPI 3 / Swagger 文档
RapidOCR 0.0.7 OCR 文字识别(可选)

前端

技术 版本 说明
Vue 3.4+ 前端框架
Ant Design Vue 4.x UI 组件库
Vue Flow 1.x 工作流可视化画布
Pinia 2.x 状态管理
Axios 1.x HTTP 客户端
Vite 5.x 构建工具
Vue Router 4.x 路由管理

模型支持

提供商 模型示例 接入方式
OpenAI GPT-4o / GPT-4o-mini API Key
DashScope Qwen-Max / Qwen-Plus DashScope API
DeepSeek DeepSeek-V3 / DeepSeek-R1 OpenAI 兼容 API
Ollama Llama / Qwen / 任意本地模型 本地部署
MiMo MiMo 系列模型 API Key
自定义 任何 OpenAI 兼容 API Base URL + API Key

数据库设计

LightBot 使用 PostgreSQL + pgvector + Milvus + Neo4j 组合,共 40 张业务表,覆盖 11 个业务域。

业务域 表数量 核心表
用户认证 1 users
模型管理 2 model_provider, model
Agent 3 agent, agent_version, subagent
对话 2 chat_session, message
知识库/RAG 10 knowledge, knowledge_member, document, document_version, chunk, embedding, qa_pair, knowledge_graph, graph_document, graph_extraction_task
工具/MCP 4 tool, skill, tool_calls, mcp_server
Prompt 3 prompt, prompt_version, prompt_build_template
评测 12 eval_dataset, eval_dataset_version, eval_dataset_item, eval_evaluator, eval_evaluator_version, eval_evaluator_template, eval_experiment, eval_experiment_result, eval_rag_benchmark, eval_rag_benchmark_item, eval_rag_result, eval_rag_result_detail
异步任务 1 task
可观测 1 llm_trace
系统配置 1 system_config

完整建表 SQL 见 sql/2026-06-18-init.sql,包含所有表结构和预制数据。


快速开始

完整启动指南请查看 QUICKSTART.md,包含中间件 Docker 配置、前后端配置详解、常见问题等。

5 分钟快速启动

# 1. 克隆项目
git clone https://github.com/finch04/LightBot.git
cd LightBot

# 2. 启动中间件(PostgreSQL + Redis + Neo4j + MinIO + Milvus)
cd docker
docker-compose -f docker-compose-middleware.yml up -d
cd ..

# 3. 初始化数据库
psql -U postgres -h localhost -f sql/2026-06-18-init.sql

# 4. 配置模型 API Key(编辑 application.yml 或设置环境变量)
export OPENAI_API_KEY=sk-xxx
export DASHSCOPE_API_KEY=sk-xxx

# 5. 启动后端
cd lightbot-server
mvn spring-boot:run &

# 6. 启动前端
cd ../lightbot-ui
pnpm install
pnpm dev

访问 http://localhost:5173 开始使用。


Docker 部署

Docker Compose 配置正在完善中,敬请期待。当前请参考 快速开始 章节手动部署。


模块结构

lightbot/
├── lightbot-server/                 # 后端服务(单体 Spring Boot 应用)
│   └── src/main/java/com/lightbot/
│       ├── controller/              # REST API(30 个 Controller)
│       ├── service/                 # 业务接口(45 个 Service)
│       │   ├── chat/                # 对话引擎
│       │   ├── eval/                # 评测引擎
│       │   └── impl/                # 业务实现
│       ├── entity/                  # 数据库实体(40 个 Entity)
│       ├── dto/                     # 数据传输对象
│       ├── mapper/                  # MyBatis-Plus Mapper
│       ├── enums/                   # 业务枚举
│       ├── config/                  # 配置类
│       ├── common/                  # 公共工具(Result、BizException)
│       ├── util/                    # 工具类(MinIO/Redis/Milvus 等中间件封装)
│       ├── workflow/                # 工作流引擎
│       │   └── processor/           # 节点处理器
│       ├── tool/                    # Tool 体系
│       │   ├── builtin/             # 内置工具
│       │   ├── systemtool/          # 系统工具
│       │   └── registrar/           # 工具注册器
│       ├── skill/                   # Skill 运行时
│       ├── subagent/                # SubAgent 运行时
│       ├── task/                    # 异步任务框架
│       ├── log/                     # 日志基础设施
│       └── validation/              # 校验逻辑
├── lightbot-ui/                     # 前端工程(Vue 3)
│   └── src/
│       ├── views/                   # 页面(30+ 页面)
│       │   └── workflow/            # 工作流编辑器组件
│       ├── components/              # 公共组件
│       ├── router/                  # 路由配置
│       ├── stores/                  # Pinia 状态管理
│       └── utils/                   # 工具函数
├── sql/                             # 数据库脚本
│   └── 2026-06-18-init.sql          # 完整建表 + 预制数据(唯一需要执行的 SQL)
└── docs/                            # 项目文档

API 概览

LightBot 提供 200+ RESTful API,30 个 Controller:

模块 路径前缀 说明
认证 /api/auth 注册、登录、用户信息
管理后台 /api/admin 用户管理、系统管理
Agent /api/agents Agent CRUD、版本管理、绑定配置
工作流 /api/agents/{agentId}/workflow 草稿保存、发布、调试、版本管理
SubAgent /api/subagents SubAgent 管理、运行时覆盖
对话 /api/chat 同步/流式对话、附件上传
会话 /api/chat/sessions 会话管理(创建、归档、置顶)
知识库 /api/knowledge 知识库 CRUD、文档管理、RAG 问答
知识库评测 /api/knowledge/{id}/eval 知识库级 RAG 评测
文档编辑 /api/documents 文档内容编辑、版本管理
知识图谱 /api/graph 图谱 CRUD、语义搜索、JSONL 导入
模型提供商 /api/model-providers 提供商管理、连接测试、模型发现
模型 /api/models 模型列表、全局默认模型配置
工具 /api/tools 工具 CRUD、测试执行
工具调用 /api/tool-calls 工具调用记录查询
MCP /api/mcp-servers MCP Server 管理、工具发现
技能 /api/skills 技能 CRUD、启用/禁用
Prompt /api/prompts Prompt 版本管理、模板、调试运行
评测 /api/eval/* 数据集、评估器、实验管理
可观测 /api/observability LLM Trace 查询、统计概览
任务 /api/tasks 异步任务列表、取消、SSE 推送
日志 /api/logs 实时日志流(SSE)、历史查询
OCR /api/ocr OCR 文字识别
枚举 /api/enums 前端枚举数据接口
Landing /api/landing Landing 页配置
系统配置 /api/system-config 系统配置管理
仪表盘 /api/dashboard 平台统计概览

完整 API 文档启动后端后访问 http://localhost:8081/swagger-ui.html


核心亮点

1. AI Native 架构

不是传统 CRUD 套壳,而是围绕 AI 能力设计的原生架构:

  • 动态模型创建:通过 ModelFactory 按需创建 ChatModel,而非静态 Bean 注入
  • Prompt 版本化:每次 Prompt 变更有迹可循,支持回滚
  • 全链路 Trace:从用户输入到模型输出的完整调用链追踪

2. 可视化 Workflow 引擎

基于 DAG 的工作流引擎,支持 18 种节点类型:

  • Start / End:流程入口和出口
  • LLM 节点:调用大模型,支持变量注入和模型选择
  • Condition 节点:条件分支,支持多条件组合
  • Classifier 节点:意图分类,自动路由到不同分支
  • Tool 节点:调用已注册的工具
  • Retrieval / Knowledge 节点:知识库检索
  • Loop / Batch 节点:循环和批量处理
  • Variable / VariableHandle 节点:变量赋值与处理
  • Code / Script 节点:自定义代码和脚本执行
  • MCP / API / Input / Output / ParameterExtractor / AppComponent 节点:扩展能力
  • 支持单节点调试和全流程调试

3. 多层次 RAG

  • 文档向量检索:Milvus 密集 + 稀疏混合检索(HNSW + BM25),支持向量、关键词、混合三种模式
  • QA 对检索:问答对独立向量化,精确匹配常见问题
  • 知识图谱检索:Neo4j 结构化知识,支持实体关系查询,图谱向量存储于 Milvus
  • Rerank 重排序:可配置 Rerank 模型对检索结果二次排序
  • RAG 评测:内置 Benchmark + 多维度评分(检索准确率、回答质量)

4. MCP 协议原生支持

  • 支持 SSE / stdio / StreamableHTTP 三种传输方式
  • 自动发现 MCP Server 暴露的工具
  • 单工具粒度的启用/禁用控制
  • 与 Agent 绑定,无需额外代码

5. 完整评测体系

  • 通用评测:数据集 + 评估器 + 实验,支持自定义评估 Prompt
  • RAG 专项评测:Benchmark 自动生成,检索 + 生成双维度评分
  • 版本管理:数据集和评估器均支持版本控制
  • 内置模板:文本相似度、代码质量、情感分析等评估模板

开发规范

Commit 规范

格式:<type>(<scope>): <subject>

type:feat | fix | docs | style | refactor | perf | test | chore
scope:agent | workflow | tool | rag | eval | chat | model | common

示例:
  feat(agent): 新增 Agent 版本发布功能
  fix(workflow): 修复并行节点执行顺序问题
  refactor(tool): 抽象 Tool 基类

代码规范

  • 后端:Java 17 + Spring Boot 3 + MyBatis-Plus,遵循项目 CLAUDE.md
  • 前端:Vue 3 Composition API + Ant Design Vue + pnpm
  • 数据库:PostgreSQL,表名不加 t_ 前缀,时间字段使用 TIMESTAMP
  • 所有 Long ID 字段使用 @JsonSerialize(using = ToStringSerializer.class) 防止前端精度丢失

Contributing

我们欢迎任何形式的贡献!

如何贡献

  1. Fork 本仓库
  2. 创建特性分支:git checkout -b feature/amazing-feature
  3. 提交更改:git commit -m 'feat: add amazing feature'
  4. 推送分支:git push origin feature/amazing-feature
  5. 提交 Pull Request

开发环境搭建

# 后端
cd lightbot-server
mvn clean install

# 前端
cd lightbot-ui
pnpm install
pnpm dev

行为准则

本项目遵循 Contributor Covenant 行为准则。


Roadmap

完整路线图请查看 docs/features.md

版本 日期 主要变更
v1.0 2026-05 基础框架:用户/模型/对话/Agent
v1.1 2026-05 RAG 知识库 + 文档管理
v1.2 2026-05 工作流引擎 + 可视化编排
v1.3 2026-05 Tool/MCP/Skill/SubAgent 体系
v1.4 2026-06 QA Pair + 知识图谱 + 评测体系
v2.0 2026-06 Phase 1 性能优化 + 对话可靠性 + 模型供应商扩展
v2.1 规划中 API 网关 + 消息队列 + 可观测性
v3.0 规划中 微服务化 + 多租户

License

本项目基于 Apache License 2.0 开源。

Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

LightBot — 让 Java 开发者拥抱 AI Agent 时代

About

面向企业的轻量级 Java AI Agent 平台。涵盖Agent、Agent工作流、知识库、工具、Skill、MCP、Subagents、Prompt工程、评测、可观测性等高级AI功能

Resources

Stars

4 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors