开源智能体搭建平台MaxKB4j 技术文档

开源智能体搭建平台MaxKB4j 技术文档

MaxKB4j 技术文档

项目概述

MaxKB4j (Max Knowledge Base for Java) 是一个基于 Java/Spring BootLangChain4j 构建的开源的 RAG(检索增强生成)知识库和 LLM 工作流平台,支持多模型集成、可视化工作流编排、知识库问答和多模态能力,专为构建企业级智能问答系统而设计。

核心特性

  • 开箱即用的知识库问答: 支持上传本地文档或自动抓取网页内容,自动完成文本分块 → 向量化 → 向量数据库存储 → RAG 流程构建
  • 模型无关的灵活集成: 支持多种主流大语言模型(OpenAI、Claude、Gemini、DeepSeek、Qwen、Ollama 等)
  • 可视化工作流编排: 内置低代码 AI 工作流引擎,支持条件分支、函数调用、多轮对话记忆
  • MCP 协议支持: 实现 Model Context Protocol,使 AI 能够理解代码上下文和项目结构
  • 多模态能力: 支持语音识别(ASR)、语音合成(TTS)、OCR、图像生成

技术栈

类别技术
后端框架Java 21, Spring Boot 3.5.1
AI 框架LangChain4j 1.12.1
数据库PostgreSQL 15+ (pgvector 扩展)
全文搜索MongoDB 6.0+
缓存Caffeine
认证授权Sa-Token 1.39.0
ORMMyBatis-Plus 3.5.9
API 文档Knife4j (OpenAPI 3)
前端Vue 3.5, TypeScript, Element Plus, LogicFlow
构建工具Maven, Vite

项目结构

MaxKB4j/ ├── maxkb4j-common/ # 公共模块 - 通用工具、常量、异常处理 ├── maxkb4j-core/ # 核心模块 - AI助手、事件处理、LangChain4j集成 ├── maxkb4j-service-api/ # 服务API定义层 - 实体、DTO、Mapper接口 │ ├── maxkb4j-application-api/ # 应用相关API │ ├── maxkb4j-knowledge-api/ # 知识库相关API │ ├── maxkb4j-model-api/ # 模型相关API │ ├── maxkb4j-user-api/ # 用户相关API │ ├── maxkb4j-workflow-api/ # 工作流相关API │ ├── maxkb4j-tool-api/ # 工具相关API │ ├── maxkb4j-chat-api/ # 聊天相关API │ ├── maxkb4j-folder-api/ # 文件夹相关API │ ├── maxkb4j-oss-api/ # 对象存储相关API │ ├── maxkb4j-system-api/ # 系统相关API │ └── maxkb4j-trigger-api/ # 触发器相关API ├── maxkb4j-service/ # 服务实现层 - 业务逻辑实现 │ ├── maxkb4j-application/ # 应用服务实现 │ ├── maxkb4j-knowledge/ # 知识库服务实现 │ ├── maxkb4j-model/ # 模型服务实现 │ ├── maxkb4j-workflow/ # 工作流服务实现 │ ├── maxkb4j-tool/ # 工具服务实现 │ ├── maxkb4j-chat/ # 聊天服务实现 │ ├── maxkb4j-oss/ # 对象存储服务实现 │ ├── maxkb4j-system/ # 系统服务实现 │ └── maxkb4j-trigger/ # 触发器服务实现 ├── maxkb4j-start/ # 启动模块 - 配置、监听器、入口 └── ui/ # 前端项目 - Vue 3 应用 

核心模块详解

1. maxkb4j-common (公共模块)

路径: maxkb4j-common/src/main/java/com/maxkb4j/common/

提供项目通用的基础设施:

包名功能
annotation自定义注解(如权限检查 @SaCheckPerm
api统一响应封装(R, ResultCode, IResultCode
aspectAOP 切面(权限检查切面)
cache缓存实现(认证码缓存、聊天缓存、系统缓存)
constant常量定义(应用常量、登录类型、权限、角色类型)
domain领域对象(DTO、VO、表单对象)
enums枚举类型
exception自定义异常
handler全局处理器(异常处理、字段填充)
mpMyBatis-Plus 配置(实体基类、设置实体)
props配置属性类
typehandler自定义类型处理器(JSONB、List、Set 等)
util工具类集合

关键类:

  • R.java - 统一 API 响应封装
  • GlobalExceptionHandler.java - 全局异常处理
  • StpKit.java - Sa-Token 权限工具

2. maxkb4j-core (核心模块)

路径: maxkb4j-core/src/main/java/com/maxkb4j/core/

核心 AI 能力实现:

Assistant (AI 助手接口)
类名功能
Assistant基础聊天助手接口
CompressingQueryAssistant压缩查询助手
ExpandingQueryAssistant扩展查询助手
IntentClassifyAssistant意图分类助手
NL2SqlAssistant自然语言转 SQL 助手
ParameterExtractionAssistant参数提取助手
ProblemGenerateAssistant问题生成助手
RouterAssistant路由助手
Event (事件系统)
事件触发时机
DocumentIndexEvent文档索引事件
GenerateProblemEvent问题生成事件
ParagraphIndexEvent段落索引事件
LangChain4j 集成
  • AppChatMemory - 应用聊天记忆管理
  • AssistantServices - 助手服务工厂

3. maxkb4j-service-api (服务 API 层)

路径: maxkb4j-service-api/

定义服务接口、实体、DTO、VO 和 Mapper:

主要实体
实体所属模块描述
ApplicationEntityapplication-api应用配置
ApplicationChatEntityapplication-api聊天会话
ApplicationChatRecordEntityapplication-api聊天记录
KnowledgeEntityknowledge-api知识库
DocumentEntityknowledge-api文档
ParagraphEntityknowledge-api段落
ProblemEntityknowledge-api问题
EmbeddingEntityknowledge-api向量嵌入
FolderEntityfolder-api文件夹
数据库表结构

主要数据表:

-- 用户表user(id, email, phone, nickname, username, password, role, is_active)-- 知识库表 knowledge (id, name,type, source_type, embedding_model_id,...)-- 文档表 document (id, knowledge_id, name,type, content,...)-- 段落表 paragraph (id, document_id, content, title,...)-- 向量嵌入表 embedding (id, paragraph_id, embedding vector(1536),...)-- 应用表 application (id, name,type, model_id, workflow,...)-- 聊天记录表 application_chat_record (id, application_id, chat_id, problem_text, answer_text,...)

4. maxkb4j-service (服务实现层)

路径: maxkb4j-service/

4.1 maxkb4j-application (应用服务)

核心功能:

  • 应用管理(创建、更新、删除、查询)
  • 聊天服务(简单聊天、工作流聊天)
  • 访问令牌管理
  • API Key 管理
  • 聊天记录管理

关键类:

  • ApplicationService - 应用管理服务
  • ChatSimpleServiceImpl - 简单聊天实现
  • ChatFlowServiceImpl - 工作流聊天实现
  • ChatServiceBuilder - 聊天服务构建器

Pipeline 架构:

PipelineManage ├── GenerateHumanMessageStep # 生成用户消息 ├── ResetProblemStep # 重置问题 ├── SearchDatasetStep # 搜索知识库 └── ChatStep # 聊天步骤 
4.2 maxkb4j-knowledge (知识库服务)

核心功能:

  • 知识库管理
  • 文档解析(PDF、Word、TXT、Markdown、HTML、URL 等)
  • 文档分块
  • 向量索引
  • 检索服务

文档解析器:

解析器支持格式
PdfParserPDF
DocParserWord (doc/docx)
TxtParser纯文本
MDParserMarkdown
HtmlParserHTML
ExcelParserExcel
PptParserPowerPoint
CsvParserCSV
UrlParser网页 URL

检索策略:

  • FullTextRetriever - 全文检索
  • HybridRetriever - 混合检索(向量 + 全文)
  • PgVectorIndexService - PostgreSQL 向量索引
4.3 maxkb4j-model (模型服务)

核心功能:

  • 模型提供商管理
  • 模型实例构建
  • 多种模型类型支持

支持的模型提供商:

提供商类名支持模型
OpenAIOpenAiModelProviderGPT 系列
AnthropicAnthropicProviderClaude 系列
GoogleGeminiModelProviderGemini 系列
DeepSeekDeepSeekModelProviderDeepSeek 系列
阿里云百炼AliYunBaiLianModelProvider通义千问
腾讯TencentModelProvider混元
字节跳动VolcanicEngineModelProvider豆包
百度WenXinModelProvider文心一言
智谱ZhiPuModelProviderGLM 系列
KimiKimiModelProviderMoonshot
OllamaOLlamaModelProvider本地模型
AzureAzureModelProviderAzure OpenAI
SiliconFlowSiliconFlowModelProviderSiliconFlow
XinferenceXInferenceModelProviderXinference

模型类型:

  • ChatModel - 对话模型
  • StreamingChatModel - 流式对话模型
  • EmbeddingModel - 嵌入模型
  • ImageModel - 图像生成模型
  • ScoringModel - 重排序模型
  • STTModel - 语音转文字
  • TTSModel - 文字转语音
4.4 maxkb4j-workflow (工作流服务)

核心架构:

WorkFlowActuator (工作流执行器) ├── ChatWorkflowHandler (聊天工作流处理器) └── KnowledgeWorkflowHandler (知识库工作流处理器) 

节点类型 (NodeType 枚举):

节点类型描述处理器
START开始节点StartNodeHandler
AI_CHATAI 聊天节点LLMNodeHandler
SEARCH_KNOWLEDGE知识库搜索SearchKnowledgeNodeHandler
CONDITION条件节点ConditionNodeHandler
HTTP_CLIENTHTTP 请求HttpNodeHandler
TOOL工具节点ToolNodeHandler
MCPMCP 节点McpNodeHandler
FORM表单节点FormNodeHandler
QUESTION问题节点QuestionNodeHandler
REPLY回复节点DirectReplyNodeHandler
RERANKER重排序节点RerankerNodeHandler
INTENT_CLASSIFY意图分类IntentClassifyNodeHandler
PARAMETER_EXTRACTION参数提取ParameterExtractionNodeHandler
NL2SQL自然语言转SQLNL2SqlNodeHandler
IMAGE_GENERATE图像生成ImageGenerateNodeHandler
IMAGE_UNDERSTAND图像理解-
TEXT_TO_SPEECH文字转语音TextToSpeechNodeHandler
SPEECH_TO_TEXT语音转文字SpeechToTextNodeHandler
DOCUMENT_EXTRACT文档提取DocumentExtractNodeHandler
DOCUMENT_SPLIT文档分块DocumentSpiltHandler
VARIABLE_ASSIGN变量赋值VariableAssignNodeHandler
VARIABLE_AGGREGATE变量聚合VariableAggregationNodeHandler
APPLICATION应用节点ApplicationNodeHandler
LOOP循环节点LoopNodeHandler
LOOP_START循环开始LoopStartNodeHandler
LOOP_BREAK循环跳出LoopBreakNodeHandler
LOOP_CONTINUE循环继续LoopContinueNodeHandler
KNOWLEDGE_WRITE知识库写入KnowledgeWriteHandler
DATA_SOURCE_LOCAL本地数据源DataSourceLocalHandler
DATA_SOURCE_WEBWeb数据源DataSourceWebHandler
USER_SELECT用户选择UserSelectNodeHandler

条件比较器:

  • EqualCompare - 等于
  • ContainCompare - 包含
  • GTCompare/GECompare - 大于/大于等于
  • LTCompare/LECompare - 小于/小于等于
  • IsNullCompare/IsNotNullCompare - 空值判断
  • IsTrueCompare/IsNotTrueCompare - 布尔判断
  • LengthEqualCompare 等 - 长度比较
4.5 maxkb4j-tool (工具服务)

核心功能:

  • 工具管理
  • 工具连接验证
  • 工具导入导出

关键类:

  • ToolService - 工具服务
  • ToolProviderService - 工具提供者服务
  • McpToolUtil - MCP 工具工具类
  • SkillsToolUtil - 技能工具工具类

5. maxkb4j-start (启动模块)

路径: maxkb4j-start/src/main/java/com/maxkb4j/start/

配置类
配置类功能
MybatisPlusConfigMyBatis-Plus 配置
SaTokenConfigureSa-Token 认证配置
WebConfigWeb MVC 配置
MongoConfigMongoDB 配置
ThreadPoolConfig线程池配置
Knife4jConfigurationAPI 文档配置
ThymeleafConfig模板引擎配置
监听器
监听器功能
StartedListener应用启动监听器
DataIndexListener数据索引监听器
GenerateProblemListener问题生成监听器
数据库迁移
  • V1__init_tables.sql - 初始化表结构
  • V2__add_table.sql - 新增表
  • V3__add_trigger.sql - 触发器表

6. ui (前端项目)

路径: ui/

技术栈
  • 框架: Vue 3.5 + TypeScript
  • UI 组件: Element Plus 2.12
  • 状态管理: Pinia 3.0
  • 路由: Vue Router 4.5
  • 工作流编辑器: LogicFlow 1.2
  • 图表: ECharts 5.6
  • Markdown: md-editor-v3
  • 构建工具: Vite 6.2
目录结构
ui/src/ ├── App.vue # 根组件 ├── main.ts # 入口文件 ├── components/ # 公共组件 │ ├── ai-chat/ # AI 聊天组件 │ ├── dynamics-form/ # 动态表单组件 │ ├── markdown/ # Markdown 组件 │ └── ... ├── layout/ # 布局组件 ├── views/ # 页面视图 │ ├── application/ # 应用管理 │ ├── application-overview/ # 应用概览 │ ├── chat/ # 聊天页面 │ ├── chat-log/ # 聊天日志 │ ├── chat-user/ # 聊天用户 │ ├── document/ # 文档管理 │ ├── knowledge/ # 知识库管理 │ ├── login/ # 登录页面 │ ├── model/ # 模型管理 │ ├── paragraph/ # 段落管理 │ ├── problem/ # 问题管理 │ ├── system/ # 系统管理 │ ├── system-chat-user/ # 系统聊天用户 │ ├── system-setting/ # 系统设置 │ ├── tool/ # 工具管理 │ └── workflow/ # 工作流编辑 └── workflow/ # 工作流相关 ├── nodes/ # 节点组件 ├── icons/ # 节点图标 └── common/ # 公共组件 
主要页面
页面路径功能
登录/login用户登录
应用概览/application应用列表和管理
聊天/chat智能问答
知识库/knowledge知识库管理
文档/document文档管理
模型/model模型配置
工具/tool工具管理
系统设置/system系统配置

API 接口

认证接口

POST /api/user/login # 用户登录 POST /api/user/logout # 用户登出 GET /api/user/info # 获取用户信息 

应用接口

GET /api/application # 获取应用列表 POST /api/application # 创建应用 PUT /api/application/{id} # 更新应用 DELETE /api/application/{id} # 删除应用 GET /api/application/{id} # 获取应用详情 POST /api/application/chat # 聊天接口 

知识库接口

GET /api/knowledge # 获取知识库列表 POST /api/knowledge # 创建知识库 PUT /api/knowledge/{id} # 更新知识库 DELETE /api/knowledge/{id} # 删除知识库 GET /api/knowledge/{id} # 获取知识库详情 

文档接口

GET /api/document # 获取文档列表 POST /api/document # 上传文档 DELETE /api/document/{id} # 删除文档 POST /api/document/split # 文档分块 POST /api/document/index # 文档索引 

模型接口

GET /api/model # 获取模型列表 POST /api/model # 创建模型 PUT /api/model/{id} # 更新模型 DELETE /api/model/{id} # 删除模型 GET /api/provider # 获取提供商列表 

部署指南

系统要求

  • Java 21+
  • Maven 3.8+
  • PostgreSQL 12+ (启用 pgvector 扩展)
  • MongoDB 6.0+ (可选,用于全文搜索)
  • Node.js 20+ (前端构建)

Docker 部署

docker run --name maxkb4j -d--restart always -p8080:8080 \-eSPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/MaxKB4j \-eSPRING_DATASOURCE_USERNAME=postgres \-eSPRING_DATASOURCE_PASSWORD=123456\-eSPRING_DATA_MONGODB_URI=mongodb://admin:123456@localhost:27017/MaxKB4j?authSource=admin \ registry.cn-hangzhou.aliyuncs.com/tarzanx/maxkb4j 

Docker Compose 部署

version:'3'services:maxkb4j:image: registry.cn-hangzhou.aliyuncs.com/tarzanx/maxkb4j ports:-"8080:8080"environment:- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/MaxKB4j - SPRING_DATASOURCE_USERNAME=postgres - SPRING_DATASOURCE_PASSWORD=123456 - SPRING_DATA_MONGODB_URI=mongodb://admin:123456@mongo:27017/MaxKB4j?authSource=admin depends_on:- postgres - mongo postgres:image: pgvector/pgvector:pg15 environment:POSTGRES_DB: MaxKB4j POSTGRES_USER: postgres POSTGRES_PASSWORD:123456volumes:- postgres_data:/var/lib/postgresql/data mongo:image: mongo:6.0environment:MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD:123456volumes:- mongo_data:/data/db volumes:postgres_data:mongo_data:

本地开发

# 后端cd MaxKB4j mvn spring-boot:run -pl maxkb4j-start # 前端cd ui npminstallnpm run dev 

配置说明

application.yml 主要配置

spring:datasource:url: jdbc:postgresql://localhost:5432/MaxKB4j username: postgres password:123456data:mongodb:uri: mongodb://admin:123456@localhost:27017/MaxKB4j?authSource=admin # Sa-Token 配置sa-token:token-name: Authorization timeout:2592000active-timeout:-1is-concurrent:trueis-share:truetoken-style: uuid is-log:false

扩展开发

添加新的模型提供商

  1. 继承 AbsModelProvider
  2. 实现必要的方法:
    • getModelList() - 返回支持的模型列表
    • buildChatModel() - 构建对话模型
    • buildEmbeddingModel() - 构建嵌入模型
  3. 注册为 Spring Bean

添加新的工作流节点

  1. NodeType 枚举中添加节点类型
  2. 创建节点数据类(继承 AbsNode
  3. 创建节点处理器(实现 INodeHandler
  4. 添加 @NodeHandlerType 注解

添加新的文档解析器

  1. 实现 DocumentParser 接口
  2. 注册为 Spring Bean

许可证

GNU General Public License v3.0 (GPLv3)


相关资源

Read more

从DeepSeek-R1爆火看开源大模型推理优化:我在脉脉找到的实战方案

从DeepSeek-R1爆火看开源大模型推理优化:我在脉脉找到的实战方案

🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:AI 文章目录: * 【前言】 * 一、场景痛点直击:两个行业的共性困境与差异化难题 * 1. 电商智能客服场景(日均请求10万+) * 2. 金融智能咨询场景(日均请求3万+) * 二、实战突破:分场景落地优化方案(附完整代码+流程图) * 1. 核心优化架构总览(流程图) * 2. 分场景核心代码实现(新增4个关键代码片段) * (1)量化分级实现(适配金融场景精度需求) * (2)多租户隔离与共享实例实现(适配电商、金融双场景) * (3)边缘节点轻量化部署代码(适配电商峰值卸载) * (4)动态批处理与负载调度优化(核心优化代码) * 3. 优化效果对比表(分场景) * 三、脉向AI核心价值:技术人破圈的“

By Ne0inhk
Flutter 三方库 git_hooks 鸿蒙强干预研发质量审核截断防线设防适配解析:依托钩子拦截引擎封锁全域代码递交链路建立极强合规化审计审查防火墙斩断-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 git_hooks 鸿蒙强干预研发质量审核截断防线设防适配解析:依托钩子拦截引擎封锁全域代码递交链路建立极强合规化审计审查防火墙斩断-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 git_hooks 鸿蒙强干预研发质量审核截断防线设防适配解析:依托钩子拦截引擎封锁全域代码递交链路建立极强合规化审计审查防火墙斩断技术债堆砌 前言 在 OpenHarmony 的大规模团队协作中,代码质量是团队的生命线。如果没有有效的约束,不符合规范的代码(甚至是无法通过静态分析的代码)会轻易地通过 git commit 进入代码库,导致 CI 构建频繁失败。git_hooks 库为 Flutter 开发者提供了一种轻量级的脚本化方案,可以在 Git 的关键生命周期(如提交前、推送前)自动运行检查。本文将带大家在鸿蒙端实战适配该库,夯实自动化工程的地基。 一、原直线性 / 概念介绍 1.1 基础原理/概念介绍 git_hooks 的核心逻辑是基于 Git

By Ne0inhk
降本 100%!告别无限的 token 消耗 !OpenClaw (龙虾) 本地推理方案:基于 Ollama 部署开源模型替代云端 Token 消耗

降本 100%!告别无限的 token 消耗 !OpenClaw (龙虾) 本地推理方案:基于 Ollama 部署开源模型替代云端 Token 消耗

摘要 OpenClaw(社区昵称 “大龙虾”)作为 2026 年最火的 AI Agent 框架,凭借强大的自动化执行能力成为开发者标配。但随着使用频次提升,云端大模型 Token 消耗成本居高不下,成为个人开发者与中小企业的核心痛点。本文针对最新版 OpenClaw 2026.2.26,提供一套零成本、可复现的本地化解决方案:通过 Ollama 部署开源大模型,彻底摆脱云端依赖,解决命令行参数失效、认证配置错误等核心问题,实现 “本地推理 + 本地执行” 的全闭环,兼顾成本、隐私与性能。 关键词:OpenClaw;Ollama;本地部署;开源模型;Token 降本;AI Agent;2026.2.26 一、痛点直击:为什么你的

By Ne0inhk