# agent-flex
**Repository Path**: atp2p/agent-flex
## Basic Information
- **Project Name**: agent-flex
- **Description**: 开启思考模式参数,适用于 Qwen3 模型,一个基于大模型 的 LLM 应用开发框架
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 1
- **Created**: 2024-03-17
- **Last Updated**: 2025-07-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Agents-Flex
Agents-Flex 是一个基于 Java 的 LLM(大语言模型)应用开发框架,类似于 LangChain。它提供了丰富的功能和模块,帮助开发者快速构建和部署基于大语言模型的应用。
## 特性
- **简单对话**:支持与大语言模型的基础交互。
- **历史对话**:维护对话历史,实现上下文感知的对话。
- **函数调用**:允许调用外部函数扩展模型能力。
- **多模态支持**:支持文本、图像等多种输入输出形式。
- **向量存储**:集成多种向量数据库,便于进行高效检索。
## 模块构成
- **Core**:核心模块,包含框架的基础组件和接口。
- **LLM**:集成多种大语言模型,如 ChatGLM、Qwen 等。
- **Image**:支持图像生成和处理的大模型。
- **Store**:提供多种向量数据库的集成和支持。
- **Document**:文档处理模块,包括加载、解析和分割。
- **Chain**:执行链模块,支持顺序、异步和循环执行链。
## 生态支持
- **大语言模型**:支持多种主流的大语言模型,如 OpenAI、DeepSeek、Tencent 等。
- **图片生成模型**:集成多个图片生成模型,如 Gitee、OpenAI、Stability 等。
- **向量数据库**:支持 Milvus、Elasticsearch、Redis 等多种向量数据库。
- **文档解析器**:提供 PDF、Word 等文档格式的解析支持。
---
## 基本能力
- LLM 的访问能力
- Prompt、Prompt Template 定义加载的能力
- Function Calling 定义、调用和执行等能力
- 记忆的能力(Memory)
- Embedding
- Vector Store
- 文档处理
- 加载器(Loader)
- Http
- FileSystem
- 分割器(Splitter)
- 解析器(Parser)
- PoiParser
- PdfBoxParser
- Chain 执行链
- SequentialChain 顺序执行链
- ParallelChain 并发(并行)执行链
- LoopChain 循环执行连
- ChainNode
- AgentNode Agent 执行节点
- EndNode 终点节点
## 简单对话
使用 OpenAI 大语言模型:
```java
@Test
public void testChat() {
OpenAILlmConfig config = new OpenAILlmConfig();
config.setApiKey("sk-rts5NF6n*******");
Llm llm = new OpenAILlm(config);
String response = llm.chat("请问你叫什么名字");
System.out.println(response);
}
```
使用 “通义千问” 大语言模型:
```java
@Test
public void testChat() {
QwenLlmConfig config = new QwenLlmConfig();
config.setApiKey("sk-28a6be3236****");
config.setModel("qwen-turbo");
Llm llm = new QwenLlm(config);
String response = llm.chat("请问你叫什么名字");
System.out.println(response);
}
```
使用 “讯飞星火” 大语言模型:
```java
@Test
public void testChat() {
SparkLlmConfig config = new SparkLlmConfig();
config.setAppId("****");
config.setApiKey("****");
config.setApiSecret("****");
Llm llm = new SparkLlm(config);
String response = llm.chat("请问你叫什么名字");
System.out.println(response);
}
```
## 历史对话示例
```java
public static void main(String[] args) {
SparkLlmConfig config = new SparkLlmConfig();
config.setAppId("****");
config.setApiKey("****");
config.setApiSecret("****");
Llm llm = new SparkLlm(config);
HistoriesPrompt prompt = new HistoriesPrompt();
System.out.println("您想问什么?");
Scanner scanner = new Scanner(System.in);
String userInput = scanner.nextLine();
while (userInput != null) {
prompt.addMessage(new HumanMessage(userInput));
llm.chatStream(prompt, (context, response) -> {
System.out.println(">>>> " + response.getMessage().getContent());
});
userInput = scanner.nextLine();
}
}
```
## Function Calling
- 第一步: 通过注解定义本地方法
```java
public class WeatherUtil {
@FunctionDef(name = "get_the_weather_info", description = "get the weather info")
public static String getWeatherInfo(
@FunctionParam(name = "city", description = "the city name") String name
) {
//在这里,我们应该通过第三方接口调用 api 信息
return name + "的天气是阴转多云。 ";
}
}
```
- 第二步: 通过 Prompt、Functions 传入给大模型,然后得到结果
```java
public static void main(String[] args) {
OpenAILlmConfig config = new OpenAILlmConfig();
config.setApiKey("sk-rts5NF6n*******");
OpenAILlm llm = new OpenAILlm(config);
FunctionPrompt prompt = new FunctionPrompt("今天北京的天气怎么样", WeatherUtil.class);
FunctionResultResponse response = llm.chat(prompt);
Object result = response.getFunctionResult();
System.out.println(result);
//"北京的天气是阴转多云。 "
}
```
## 生态支持
### 大语言模型
| 大语言模型名称 | 支持情况 | 描述 |
|-------------------------------|--------|-------|
| ChatGPT | ✅ 已支持 | - |
| Ollama 部署模型 | ✅ 已支持 | - |
| 星火大模型 | ✅ 已支持 | - |
| 通义千问 | ✅ 已支持 | - |
| 智普 ChatGLM | ✅ 已支持 | - |
| 月之暗面 Moonshot | ✅ 已支持 | - |
| 扣子 Coze | ✅ 已支持 | - |
| GiteeAI - Qwen2-7B-Instruct | ✅ 已支持 | - |
| GiteeAI - Qwen2-72B-Instruct | ✅ 已支持 | - |
| GiteeAI - Yi-1.5-34B-Chat | ✅ 已支持 | - |
| GiteeAI - glm-4-9b-chat | ✅ 已支持 | - |
| 文心一言 | 计划中... | 期待 PR |
### 图片生成模型
| 大语言模型名称 | 支持情况 | 描述 |
|---------------------------------------------|--------|-------|
| Openai | ✅ 已支持 | - |
| Stability | ✅ 已支持 | - |
| GiteeAI - stable-diffusion-3-medium | ✅ 已支持 | - |
| GiteeAI - FLUX.1-schnell | ✅ 已支持 | - |
| GiteeAI - stable-diffusion-xl-base-1.0 | ✅ 已支持 | - |
| GiteeAI - Kolors | ✅ 已支持 | - |
| SiliconFlow - Flux.1-schnell | ✅ 已支持 | - |
| SiliconFlow - Stable Diffusion 3 | ✅ 已支持 | - |
| SiliconFlow - Stable Diffusion XL | ✅ 已支持 | - |
| SiliconFlow - Stable Diffusion 2.1 | ✅ 已支持 | - |
| SiliconFlow - Stable Diffusion Turbo | ✅ 已支持 | - |
| SiliconFlow - Stable Diffusion XL Turbo | ✅ 已支持 | - |
| SiliconFlow - Stable Diffusion XL Lighting | ✅ 已支持 | - |
| 更多 |计划中... | 期待 PR |
### Function Calling 方法调用
| 大语言模型名称 | 支持情况 | 描述 |
|-----------------------------|--------|-------|
| Openai | ✅ 已支持 | - |
| 星火大模型 | ✅ 已支持 | - |
| 智普 ChatGLM | ✅ 已支持 | - |
| Ollama | ✅ 已支持 | - |
| 通义千问 | ✅ 已支持 | - |
| 更多 |计划中... | 期待 PR |
### 多模态
| 大语言模型名称 | 支持情况 | 描述 |
|-----------------------------|--------|-------|
| Openai | ✅ 已支持 | - |
| Ollama | ✅ 已支持 | - |
| 更多 |计划中... | 期待 PR |
### 向量化模型
| 大语言模型名称 | 支持情况 | 描述 |
|-----------------------------|--------|-------|
| Openai | ✅ 已支持 | - |
| 星火大模型 | ✅ 已支持 | - |
| 智普 ChatGLM | ✅ 已支持 | - |
| Ollama | ✅ 已支持 | - |
| 通义千问 | ✅ 已支持 | - |
| GiteeAI - bge-small-zh-v1.5 | ✅ 已支持 | - |
| GiteeAI - bge-large-zh-v1.5 | ✅ 已支持 | - |
| GiteeAI - bge-m3 | ✅ 已支持 | - |
| 更多 |计划中... | 期待 PR |
### 向量存储(向量数据库)
| 向量数据库名称 | 支持情况 | 描述 |
|---------------|--------|----|
| Milvus | ✅ 已支持 | - |
| 阿里云向量数据存储服务 | ✅ 已支持 | - |
| 腾讯云向量数据存储服务 | ✅ 已支持 | - |
| OpenSearch | ✅ 已支持 | - |
| ElasticSearch | ✅ 已支持 | - |
| Redis | ✅ 已支持 | - |
| Chroma | 计划中... | 期待 PR |
| Cassandra | 计划中... | 期待 PR |
| Gemfire | 计划中... | 期待 PR |
| Weaviate | 计划中... | 期待 PR |
### 文档解析器
| 向量数据库名称 | 支持情况 | 描述 |
|---------------|--------|--------------|
| PDFBox | ✅ 已支持 | 用于解析 PDF 文档 |
| POI | ✅ 已支持 | 用于解析 Word 文档 |
| OmniParse | ✅ 已支持 | 更丰富的解析能力 |
| 更多 |计划中... | 期待 PR |
## Star 用户专属交流群

## 模块构成

## 近期开发计划
1. 支持微信和小程序聊天
2. RAG知识库集成
3. MCP集成
4. 集成爬虫功能
5. pdf及图片扫描识别、多格式文档处理功能