Skip to content

Leavesfly/EvoX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EvoX:自进化的多智能体框架

现代化的企业级 Java 智能代理框架

Java Spring Boot Maven License

快速开始核心特性架构设计示例代码文档


📖 简介

EvoX 是一个现代化的企业级智能代理(Agent)框架,基于 Java 17Spring Boot 3.2+Project Reactor 构建。它为开发者提供了一套完整的工具和抽象层,用于快速构建具有自主学习、协同决策和工作流自动化能力的 AI 应用系统。

EvoX 不仅是一个简单的 LLM 调用封装,而是一个完整的"智能体生态系统",涵盖多智能体系统、工作流编排、记忆管理、RAG 检索增强、工具集成、技能系统、弹性机制、优化评估和人机协同等核心特性。

✨ 核心优势

  • 🏢 企业级架构:基于 Spring 生态,分层清晰,依赖明确,适合大型项目
  • 🧩 模块化设计:19 个独立模块,按需引入,支持渐进式集成
  • 🤖 多模型支持:统一接口层级(ILLMSync → ILLMAsync → ILLM),支持 OpenAI、Anthropic、DeepSeek、Gemini、Ollama、阿里云通义千问、OpenRouter、SiliconFlow 等 8 大提供商
  • 响应式编程:基于 Project Reactor,支持异步、非阻塞调用
  • 🔌 可扩展性强:丰富的扩展点,支持自定义 Agent、Action、Tool、Skill、优化器
  • 🛡️ 弹性能力:内置熔断器(CircuitBreaker)与重试执行器(RetryExecutor),提升系统稳定性
  • 🎯 技能系统:支持通过 Skill 文件定义、加载和共享可复用的智能体技能,内置 SkillMarketplace
  • 🚀 生产就绪:完善的异常处理、日志记录、配置管理

🎯 适用场景

  • 智能对话:客服机器人、虚拟助手、问答系统
  • 知识管理:企业知识库、文档问答、智能搜索
  • 流程自动化:业务流程编排、任务调度、审批流
  • 多智能体协同:团队协作、辩论系统、共识决策
  • 代码辅助:Claude Code 风格代码助手、代码生成与重构
  • 智能优化:提示词优化、工作流优化、超参调优
  • 工具集成:API 调用、文件操作、Shell 脚本、邮件、Git 等 20+ 工具类型

🚀 快速开始

📋 前置要求

  • ✅ JDK 17+
  • ✅ Maven 3.8+
  • ✅ OpenAI API Key(或其他 LLM 提供商的 Key)

🔧 安装

# 克隆项目
git clone https://github.com/your-org/evox.git
cd evox

# 编译安装
mvn clean install -DskipTests

⚙️ 配置 API Key

# 方式一:环境变量(推荐)
export OPENAI_API_KEY="sk-your-actual-api-key-here"

# 方式二:配置文件(application.yml)
# 在 evox-application/evox-examples/src/main/resources/application.yml 中配置

🎉 第一个示例

创建一个简单的聊天机器人:

import io.leavesfly.evox.agents.specialized.ChatBotAgent;
import io.leavesfly.evox.core.message.Message;
import io.leavesfly.evox.core.message.MessageType;
import io.leavesfly.evox.models.provider.openai.OpenAILLM;
import io.leavesfly.evox.models.provider.openai.OpenAILLMConfig;

import java.util.Collections;

public class QuickStart {
    public static void main(String[] args) {
        // 1. 配置 OpenAI(也可换成 Ollama / DeepSeek / Gemini 等其他提供商)
        OpenAILLMConfig config = new OpenAILLMConfig();
        // config.setApiKey(System.getenv("OPENAI_API_KEY"));
        // config.setModel("gpt-4o-mini");

        // 2. 创建聊天机器人
        ChatBotAgent agent = new ChatBotAgent(new OpenAILLM(config));
        agent.setName("QuickBot");
        agent.initModule();

        // 3. 发送消息
        Message userMsg = Message.builder()
            .content("你好!请用一句话介绍你自己。")
            .messageType(MessageType.INPUT)
            .build();

        Message response = agent.execute("chat", Collections.singletonList(userMsg));

        // 4. 获取回复
        System.out.println("AI: " + response.getContent());
    }
}

▶️ 运行示例

# 运行快速开始示例
cd evox-application/evox-examples
mvn exec:java -Dexec.mainClass="io.leavesfly.evox.examples.QuickStart"

输出

AI: 你好!我是一个基于 EvoX 框架的智能助手,可以帮助你解答问题、处理任务。

🌟 核心特性

1️⃣ 智能体系统

EvoX 提供多种类型的智能体,满足不同场景需求:

Agent 类型 实现类 说明 适用场景
聊天机器人 ChatBotAgent 多轮对话智能体 对话交互、问答系统
工具感知智能体 ToolAwareAgent 具备工具调用能力的智能体 工具调用、API 集成、ReAct 推理
任务规划智能体 TaskPlannerAgent 自动分解任务并规划步骤 任务分解、计划制定
自定义智能体 CustomizeAgent 灵活扩展的基础智能体 特殊需求、业务定制

示例:带记忆的对话

// 创建短期记忆
ShortTermMemory memory = new ShortTermMemory(100);

// 创建带记忆的聊天机器人
ChatBotAgent agent = new ChatBotAgent(llm, memory);

// 持续对话,机器人能记住之前的内容
agent.execute("chat", List.of(Message.of("我叫张三")));
agent.execute("chat", List.of(Message.of("我叫什么名字?"))); // AI 回复:你叫张三

IAgent 接口核心方法

// 同步执行
Message result = agent.execute(actionName, messages);
// 使用默认动作的简便方式
Message result = agent.execute(messages);
// 异步执行(返回 Reactor Mono)
Mono<Message> resultMono = agent.callAsync("你好");

2️⃣ 多智能体协作框架

支持多种协作模式,构建复杂的智能体系统:

  • 辩论框架(DebateFramework):多个智能体辩论达成结论
  • 共识框架(ConsensusFramework):通过投票、加权等策略达成共识
  • 团队协作框架(TeamFramework):分工协作完成复杂任务
  • 分层决策框架(HierarchicalFramework):层级化决策与执行
  • 拍卖框架(AuctionFramework):通过竞价分配任务

示例:辩论框架

DebateFramework framework = new DebateFramework();
framework.addAgent(agent1); // 正方
framework.addAgent(agent2); // 反方

// 辩论主题
Message result = framework.debate("人工智能是否会取代人类工作?", 3); // 3轮辩论

3️⃣ 工作流编排引擎

强大的 DAG 工作流引擎,支持复杂业务流程自动化:

// 顺序工作流
Workflow workflow = WorkflowBuilder.sequential()
    .name("用户注册流程")
    .goal("完成新用户注册")
    .step("验证信息", validationAgent)
    .step("创建账户", createAccountAgent)
    .step("发送欢迎邮件", emailAgent)
    .maxSteps(100)
    .build();

// 执行工作流
WorkflowResult result = workflow.execute(initialInput);

支持特性

  • ✅ 顺序执行
  • ✅ 条件分支(if-else)
  • ✅ 并行执行
  • ✅ 循环控制
  • ✅ 错误处理与重试
  • ✅ 状态持久化
  • ✅ 可视化监控

4️⃣ RAG 检索增强生成

完整的 RAG 管道,提升 AI 回答的准确性和可靠性:

// 构建 RAG 配置
RAGConfig config = RAGConfig.builder()
    .embedding(RAGConfig.EmbeddingConfig.builder()
        .dimension(1536)
        .build())
    .chunker(RAGConfig.ChunkerConfig.builder()
        .strategy("fixed")
        .chunkSize(500)
        .chunkOverlap(50)
        .build())
    .retriever(RAGConfig.RetrieverConfig.builder()
        .topK(3)
        .similarityThreshold(0.7)
        .build())
    .build();

// 创建 RAG 引擎
RAGEngine ragEngine = new RAGEngine(config, embeddingService, vectorStore);

// 索引文档
ragEngine.indexDocuments(documents);

// 检索相关文档
RetrievalResult result = ragEngine.retrieve("如何使用 EvoX 创建工作流?");

功能覆盖

  • 📄 文档加载与解析
  • ✂️ 智能分块(Fixed、Semantic、Recursive)
  • 🔢 向量嵌入与存储
  • 🔍 相似度检索与重排序
  • 📊 上下文优化与合并

5️⃣ 记忆管理系统

双层记忆架构,让智能体具备长期记忆能力:

// 短期记忆(滑动窗口)
ShortTermMemory shortTerm = new ShortTermMemory(100);

// 长期记忆(向量检索)
InMemoryLongTermMemory longTerm = new InMemoryLongTermMemory();

// 记忆管理器(自动协调)
MemoryManager memoryManager = new MemoryManager(shortTerm, longTerm);

// 存储记忆
memoryManager.addMessage(message);

// 检索相关记忆
List<Message> relevantMemories = memoryManager.retrieve("上次讨论的话题");

6️⃣ 多模型支持(LLM Providers)

EvoX 采用层级接口设计(ILLMSync → ILLMAsync → ILLM),统一适配 8 大主流 LLM 提供商:

提供商 实现类 说明
OpenAI OpenAILLM GPT-3.5、GPT-4、GPT-4o
Anthropic AnthropicLLM Claude 3 系列
DeepSeek DeepSeekLLM DeepSeek-V2、DeepSeek-R1
Google Gemini GeminiLLM Gemini 1.5 Pro/Flash
Ollama OllamaLLM 本地部署任意开源模型
阿里云通义千问 AliyunLLM Qwen 系列
OpenRouter OpenRouterLLM 统一网关,支持 100+ 模型
SiliconFlow SiliconFlowLLM 硅基流动平台
// 切换模型提供商只需替换 LLM 实现类
ILLM llm = new DeepSeekLLM(new DeepSeekLLMConfig());
// 或
ILLM llm = new AnthropicLLM(new AnthropicLLMConfig());
// 或本地 Ollama
ILLM llm = new OllamaLLM(new OllamaLLMConfig());

// 智能体调用方式完全相同
ChatBotAgent agent = new ChatBotAgent(llm);

7️⃣ 工具系统

丰富的内置工具(20+ 类型),轻松集成外部能力:

工具类型 说明
FileSystemTool 文件读写、目录遍历
HttpTool HTTP GET/POST/PUT/DELETE
DatabaseTool SQL 查询、CRUD
CalculatorTool 数学运算、表达式求值
SearchTool 网页搜索、信息检索
BrowserTool 浏览器自动化、网页抓取
ShellTool Shell 命令执行
EmailTool 邮件发送与接收
GitTool Git 仓库操作
GrepTool 代码/文本正则检索
ImageTool 图像生成与处理
CodeInterpreterTool 代码解释与执行
CalendarTool 日历与日程管理
ClipboardTool 系统剪贴板读写
DocumentTool 文档解析与生成
JsonTool JSON 数据处理
SystemTool 系统信息与进程管理
TaskTool 任务创建与跟踪
ProjectTool 项目结构分析
AgentTool 子智能体作为工具调用

示例:工具集成

List<BaseTool> tools = List.of(
    new FileSystemTool(),
    new HttpTool(),
    new ShellTool(),
    new CalculatorTool()
);

ToolAwareAgent agent = new ToolAwareAgent(llm, tools);
agent.execute(List.of(Message.builder()
    .content("帮我读取 data.txt 并计算文件中所有数字的总和")
    .messageType(MessageType.INPUT)
    .build()));

8️⃣ 优化与评估系统

内置多种优化算法,持续提升系统性能:

  • TextGrad:基于梯度的提示词优化
  • MIPRO:多指标联合优化
  • AFlow:自动化工作流优化
  • PromptOptimizer:通用提示词优化器
  • MemoryOptimizer:记忆管理优化

示例:提示词优化

PromptOptimizer optimizer = new PromptOptimizer(llm, evaluator);
String optimizedPrompt = optimizer.optimize(originalPrompt, trainingData);

9️⃣ 人机协同(HITL)

灵活的人工介入机制,确保关键决策的准确性:

HITLManager hitlManager = new HITLManager();

// 注册审批介入点
hitlManager.registerInterceptor("approval", (context) -> {
    // 展示待审批内容
    System.out.println("待审批: " + context.getData());
    
    // 等待人工审批
    return getUserApproval();
});

// 在工作流中触发人工介入
workflow.addHITLPoint("approval");

介入模式

  • 🔒 前置介入:执行前审批
  • ✅ 后置介入:执行后审查
  • ⚠️ 异常介入:错误时人工修正
  • 🔄 持续介入:全程监控与指导

🔟 MCP 协议支持

完整支持 Model Context Protocol(MCP),实现标准化的工具集成:

// MCP 服务器
MCPServer server = new MCPServer();
server.registerTool(new FileSystemTool());
server.start();

// MCP 客户端
MCPClient client = new MCPClient("http://localhost:8080");
client.callTool("readFile", Map.of("path", "data.txt"));

1️⃣1️⃣ 技能系统(Skill System)

EvoX 内置完整的技能系统,支持通过结构化文件定义可复用的智能体技能,并提供技能市场:

// 加载技能定义文件
SkillLoader loader = new SkillLoader();
BaseSkill skill = loader.load("skills/code-review.yaml");

// 注册到技能注册表
SkillRegistry registry = new SkillRegistry();
registry.register(skill);

// 作为工具挂载到智能体
ToolAwareAgent agent = new ToolAwareAgent(llm, List.of(new SkillTool(registry)));

核心组件

  • BaseSkill - 技能基础抽象,定义技能输入/输出/提示词
  • SkillDefinitionFile - YAML/JSON 技能定义文件格式
  • SkillLoader - 从文件或 classpath 加载技能
  • SkillRegistry - 技能注册与查询
  • SkillMarketplace - 技能市场,支持技能发现与共享
  • SkillTool - 将技能包装为标准工具,挂载给智能体

1️⃣2️⃣ 弹性系统(Resilience System)

内置熔断器与重试机制,保障智能体在网络抖动或 LLM 限流时的稳定运行:

// 配置重试策略
RetryPolicy policy = RetryPolicy.builder()
    .maxAttempts(3)
    .initialDelay(Duration.ofSeconds(1))
    .maxDelay(Duration.ofSeconds(10))
    .build();

// 配置熔断器
CircuitBreaker breaker = new CircuitBreaker("llm-breaker");

// 通过重试执行器执行智能体调用
RetryExecutor executor = new RetryExecutor(policy, breaker);
Message result = executor.execute(() -> agent.execute(messages));

弹性组件

  • CircuitBreaker - 熔断器,自动检测失败率并熔断请求
  • RetryExecutor - 带退避策略的重试执行器
  • RetryPolicy - 重试策略配置(最大次数、延迟、退避类型)

🏗️ 架构设计

EvoX 采用清晰的分层架构,模块间依赖明确,遵循"向下依赖、禁止跨层"原则:

┌─────────────────────────────────────────────────┐
│          应用层 (Application Layer)              │
│  evox-examples, evox-cowork, evox-claudecode     │
│  evox-benchmark, evox-spring-boot-starter        │
└─────────────────────────────────────────────────┘
                        ↓
┌─────────────────────────────────────────────────┐
│          扩展层 (Extensions Layer)               │
│  evox-optimizers, evox-hitl, evox-evaluation    │
│  evox-channels                                  │
└─────────────────────────────────────────────────┘
                        ↓
┌─────────────────────────────────────────────────┐
│          运行时层 (Runtime Layer)                │
│  evox-agents (含 Skill/Resilience/Frameworks)   │
│  evox-workflow, evox-rag, evox-memory           │
│  evox-tools, evox-storage, evox-mcp-runtime     │
└─────────────────────────────────────────────────┘
                        ↓
┌─────────────────────────────────────────────────┐
│          核心层 (Core Layer)                     │
│  evox-core (含 Actions), evox-models, evox-mcp  │
└─────────────────────────────────────────────────┘
                        ↓
┌─────────────────────────────────────────────────┐
│      基础设施层 (Infrastructure Layer)           │
│  Spring Boot 3.2+, Project Reactor, Jackson     │
└─────────────────────────────────────────────────┘

📦 模块概览

核心层(Core Layer)

模块 说明
evox-core 核心抽象、消息系统、配置管理、动作系统(Actions 已内置)
evox-models LLM 多模型适配器(8 大提供商)及接口层级(ILLMSync/ILLMAsync/ILLM)
evox-mcp MCP 协议核心定义

运行时层(Runtime Layer)

模块 说明
evox-agents 智能体(ChatBotAgent、ToolAwareAgent、TaskPlannerAgent)、多智能体协作框架(5 种)、技能系统、弹性系统
evox-workflow 工作流编排引擎(DAG、分支、循环、并行、可视化)
evox-rag RAG 检索增强生成
evox-memory 记忆管理(短期/长期记忆、Session 持久化)
evox-tools 工具集成(20+ 种工具)
evox-storage 存储抽象(内存、向量、图、关系数据库)
evox-mcp-runtime MCP 协议运行时(Server/Client)

扩展层(Extensions Layer)

模块 说明
evox-optimizers 优化器(TextGrad、MIPRO、AFlow)
evox-hitl 人机协同(HITL)
evox-evaluation 评估系统
evox-channels 多渠道通信

应用层(Application Layer)

模块 说明
evox-examples 示例应用(15+ 完整示例)
evox-cowork 多智能体协作应用(含 UI、插件、权限、连接器)
evox-claudecode Claude Code 风格代码助手(CLI、MCP 集成、权限管理)
evox-benchmark 性能基准测试
evox-spring-boot-starter Spring Boot 自动配置

💡 示例代码

EvoX 提供 15+ 完整示例,涵盖各种应用场景:

基础示例

多模型与构建

工具与集成

工作流与编排

专业智能体

多智能体协作

RAG、记忆与技能

高级应用

运行所有示例

cd evox-application/evox-examples

# 使用脚本运行
./run-examples.sh

# 或使用 Maven 单独运行
mvn exec:java -Dexec.mainClass="io.leavesfly.evox.examples.QuickStart"
mvn exec:java -Dexec.mainClass="io.leavesfly.evox.examples.LLMFactoryExample"
mvn exec:java -Dexec.mainClass="io.leavesfly.evox.examples.SpecializedAgentsExample"

📚 文档

快速导航

模块文档


🛠️ 技术栈

类型 技术 版本
语言 Java 17+
框架 Spring Boot 3.2.5
响应式 Project Reactor -
JSON Jackson 2.15.4
构建工具 Maven 3.8+
工具库 Lombok 1.18.30
工具库 Guava 32.1.3-jre
工具库 MapStruct 1.5.5.Final
数据库 H2 2.2.224
数据库 HSQLDB 2.7.2
脚本引擎 Groovy 4.0.18
测试 JUnit 5 5.10.2
测试 Mockito 5.8.0

⚙️ 配置说明

基础配置(application.yml)

evox:
  # LLM 配置
  llm:
    provider: openai  # openai, dashscope, litellm
    temperature: 0.7
    max-tokens: 2000
    timeout: 30000
    retry:
      max-attempts: 3
      initial-delay: 1000
      max-delay: 10000
  
  # Agent 配置
  agents:
    default-timeout: 60000
    max-concurrent: 10
  
  # Memory 配置
  memory:
    short-term:
      capacity: 100
      window-size: 10
    long-term:
      enabled: true
      storage-type: in-memory  # in-memory, redis, database
  
  # Workflow 配置
  workflow:
    max-depth: 10
    timeout: 300000
    enable-parallel: true
  
  # Tools 配置
  tools:
    enabled: true
    timeout: 30000
    max-retries: 3

环境变量配置

# LLM Provider
export LLM_PROVIDER=openai
export OPENAI_API_KEY=sk-your-key-here

# 阿里云通义千问
export DASHSCOPE_API_KEY=your-dashscope-key

# 数据库(可选)
export DB_URL=jdbc:postgresql://localhost:5432/evox
export DB_USERNAME=evox
export DB_PASSWORD=password

# 向量存储(可选)
export VECTOR_PROVIDER=qdrant
export VECTOR_HOST=localhost
export VECTOR_PORT=6333

🔍 故障排查

Q: 编译失败?

A: 检查 Java 和 Maven 版本:

java -version  # 应为 17+
mvn -version   # 应为 3.8+

# 清理并重新编译
mvn clean install -U -DskipTests

Q: API Key 错误?

A: 确认环境变量设置:

echo $OPENAI_API_KEY  # 检查是否正确设置

# 测试 API Key 有效性
curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"

Q: 依赖下载慢?

A: 配置国内 Maven 镜像(~/.m2/settings.xml):

<mirrors>
  <mirror>
    <id>aliyun</id>
    <mirrorOf>central</mirrorOf>
    <url>https://maven.aliyun.com/repository/public</url>
  </mirror>
</mirrors>

Q: 运行时出现 OutOfMemoryError?

A: 增加 JVM 堆内存:

export MAVEN_OPTS="-Xmx2048m -Xms512m"
mvn exec:java -Dexec.mainClass="..."

🤝 贡献指南

欢迎贡献代码、报告问题或提出建议!

开发流程

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

代码规范

  • 遵循 Java 代码规范
  • 所有 public 方法必须有 Javadoc
  • 单元测试覆盖率 > 30%
  • 提交信息遵循 Conventional Commits

📄 许可证

本项目采用 Apache License 2.0 许可证。


🙏 致谢

感谢以下开源项目的启发和支持:


📞 联系我们


⭐ 如果 EvoX 对你有帮助,请给我们一个 Star!

Made with ❤️ by EvoX Team

About

EvoX:一个强大的多智能体协同框架,用于构建可演化、可优化的多Agent系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages