莫疏

导航

Java 生态 Plan-Execute 项目推荐

Java 生态 Plan-Execute 项目推荐

特殊说明,因为我有个java 8 Spring boot 2.3的项目,想搞一些AI方面的工作。

1. LangChain4j(最推荐)

GitHub : https://github.com/langchain4j/langchain4j

Plan-Execute 实现方式 :

LangChain4j 通过两种方式支持 Plan-Execute:
方式 A: AiServices + 自定义 Planner 方式 B:使用 Agent 抽象(新版本 1.0+)
优点 :

  • 版本兼容:支持 Java 8+,可与 Spring Boot 2.3 配合
  • 生态完善:工具、记忆、RAG、MCP 一应俱全
  • 社区活跃:持续更新,文档丰富
  • 可扩展性:可以自定义 Plan-Execute 的各个阶段
    适合改造 :⭐⭐⭐⭐⭐

2. Spring AI Alibaba(Spring Boot 3.x 必选)

GitHub : https://github.com/alibaba/spring-ai-alibaba

Plan-Execute 实现 :

基于状态机(StateGraph)实现 Plan-Execute:

优点 :

  • 阿里云官方出品,对接百炼无缝
  • 状态机实现,可视化流程,调试方便
  • 支持可观测性(ARMS、Langfuse)
  • 内置 Plan-Act-Reflect 模式
    注意 :需要 Spring Boot 3.x + JDK 17+

适合改造 :⭐⭐⭐⭐⭐(如果能升级 Spring Boot)

3. AgentScope Java(阿里通义实验室)

GitHub : https://github.com/modelscope/agentscope-java

Plan-Execute 实现 :

采用 ReAct + Planner 分层架构:

项目结构 :

优点 :

  • 专为企业级设计
  • Plan-Execute 是 核心设计模式 ,不是附加功能
  • 内置安全沙箱
  • 实时介入机制(可打断、恢复)
    注意 :需要 JDK 17+

适合改造 :⭐⭐⭐⭐

4. hello-agents(轻量级参考)

GitHub : https://github.com/kylin-syh/hello-agents

Plan-Execute 实现 :

从 0 到 1 原生实现,代码可读性好:

项目结构 :

优点 :

  • 代码最简洁 ,适合学习和改造
  • 多层级记忆系统设计出色
  • 详细的设计文档和注释
    缺点 :社区较小,依赖较少

适合改造 :⭐⭐⭐⭐⭐(作为学习和起点)

对比总结

image

我的建议

根据你的情况( Spring Boot 2.3 + Java 8 + 需要 Plan-Execute ):

方案 A:LangChain4j + 自定义 Plan-Execute

方案 B:以 hello-agents 为起点

✅ 代码简洁,容易理解
✅ 原生实现 Plan-Execute
✅ 多层级记忆系统可直接复用
❌ 需要适配到你的 Spring Boot 项目

方案 C:升级 Spring Boot + Spring AI Alibaba

✅ 最完整的解决方案
✅ 状态机实现,可视化调试
❌ 需要升级 Spring Boot 和 JDK

如果不想升级 Spring Boot,我推荐方案 B(hello-agents)作为学习参考,然后结合 LangChain4j 的生态在你的项目中实现 Plan-Execute。

StateGraph vs 真正的动态规划

image

StateGraph 示例(固定)

// 必须预先写死所有节点和路径
graph.addNode("analyze");
graph.addNode("design");
graph.addNode("implement");
graph.addNode("test");
graph.addEdge("analyze", "design");
graph.addEdge("design", "implement");
graph.addEdge("implement", "test");
// LLM 只能在这些预定义路径中选择

真正动态规划示例

// LLM 运行时生成计划
String plan = llm.plan("帮我实现一个用户登录功能");
// plan = "1. 查看现有项目结构\n2. 设计数据库表\n3. 创建实体类\n4. 实现Repository\n5. 实现Service\n6. 实现Controller\n7. 编写单元测试"
// 没有任何预先定义的节点或路径

真正支持动态规划的 Java 项目

1. AgentScope Java(最符合Plan需求)

GitHub : https://github.com/modelscope/agentscope-java

核心设计 :

Plan-Execute 循环 :

优点 :

  • ✅ 完全动态 :没有任何预定义的节点或路径
  • ✅ LLM 自主决定 :规划、重规划全由 LLM 完成
  • ✅ 代码量少 :框架处理循环,只需实现 Planner 接口
  • ✅ 可扩展性强 :可以插入反思、验证等环节

2. hello-agents(轻量级,可参考)

GitHub : https://github.com/kylin-syh/hello-agents

核心实现 :

优点 :

  • ✅ 代码最简洁 :核心逻辑几百行
  • ✅ 可读性好 :没有复杂的抽象
  • ✅ 易于改造 :直接复制到你的项目中

3. 自建轻量 Plan-Execute 层

如果不想引入完整框架,可以基于 LangChain4j 自建一个轻量 Plan-Execute 层:

// 核心接口
public interface DynamicPlanner {
    List<PlannedStep> plan(String task, List<PlannedStep> completed);
    List<PlannedStep> replan(List<PlannedStep> currentPlan, PlannedStep 
    failedStep, String error);
}

public interface DynamicExecutor {
    ExecutionResult execute(PlannedStep step);
}

// 计划步骤
public class PlannedStep {
    private String id;           // 动态生成
    private String description;  // "创建 UserController"
    private String tool;         // "write_file"
    private Map<String, String> args;  // LLM 决定的参数
    private StepStatus status;
}

// Plan-Execute 引擎
public class PlanExecuteEngine {
    private DynamicPlanner planner;
    private DynamicExecutor executor;
    private ChatModel chatModel;
    
    public String run(String task) {
        // Phase 1: 规划
        List<PlannedStep> plan = planner.plan(task, List.of());
        
        // Phase 2: 执行
        for (int i = 0; i < plan.size(); i++) {
            PlannedStep step = plan.get(i);
            ExecutionResult result = executor.execute(step);
            
            // Phase 3: 反思/重规划
            if (result.hasError()) {
                List<PlannedStep> completed = plan.subList(0, i);
                plan = planner.replan(plan, step, result.getError());
                i = -1;  // 重新开始遍历新计划
            }
        }
        
        return summarize(plan);
    }
}

使用示例 :

// 动态规划器实现
public class LlmdynamicPlanner implements DynamicPlanner {
    private ChatModel chatModel;
    
    @Override
    public List<PlannedStep> plan(String task, List<PlannedStep> completed) {
        String prompt = buildPlanPrompt(task, completed);
        String response = chatModel.call(prompt);
        return parsePlanResponse(response);  // 解析 LLM 输出为结构化步骤
    }
}

对比总结

image

如果能升级到JAVA17,AgentScope JAVA应该是最佳选择。

posted on 2026-08-06 16:00  莫疏  阅读(2)  评论(0)    收藏  举报