别再给 LLM 写 if-else 了!我用 Java 写了一个能自己规划、执行、反思的 Agent 框架

📅 2026/6/30 11:57:36
别再给 LLM 写 if-else 了!我用 Java 写了一个能自己规划、执行、反思的 Agent 框架
本文是「Regnexe 实战系列」开篇共 10 篇系列文章会把 regnexe-agent 仓库里 9 个可直接运行的示例ExampleReadme01~09Test逐一拆解。建议收藏跟着代码一篇一篇撸下来。先问自己一个问题你现在的Agent是不是长这样StringintentclassifyIntent(userInput);if(weather.equals(intent)){returncallWeatherApi(userInput);}elseif(order.equals(intent)){returncallOrderApi(userInput);}else{returnllm.chat(userInput);}一个意图分类 一堆 if-else 模型兜底。能跑但只能跑最简单的场景。用户一旦问出帮我查一下成都天气再看看报销条款有没有坑最后把三天行程排一下——三个系统、三个能力、还要把结果拼起来——这套 if-else 直接崩。这不是你写得不好是单次工具调用这个模型本身就扛不住复杂任务。真正的企业级 Agent需要的是一个能自己找能力、自己排计划、自己执行、自己检查结果的闭环而不是你在外面手写流程图。这就是我写 Regnexe 的原因。Regnexe 是什么一句话基于 Spring Boot 的 Java Agent 框架核心是 Search → Plan → Execute → Reflect 四步闭环。用户目标 │ ▼ [Search 找能力 → Plan 排计划 → Execute 真执行 → Reflect 查结果] × N 轮 │ ▼ AgentResultSearch从插件市场里挑出跟当前目标相关的能力不会把几十个工具全塞进 PromptPlan决定调用哪些能力、谁先谁后、最后结果要不要综合Execute真正发起工具调用 / Skill / Sub-Agent 执行Reflect检查任务是不是真的完成了没完成就接着来下一轮四个字看着简单但这四步拼起来Agent 就从答一次题变成了把活干完。严格来说这不是一个 SDK是一个 Harness很多人把接入大模型等同于调一下 SDK——传个 Prompt拿个回复完事。但 Regnexe 想做的事情更重一些业内对这类框架有个专门的叫法Agent Harness。pom.xml里写得很直白Enterprise-grade Agent Harness — Search-Plan-Execute-ReflectSDK 是你调用它Harness 是它驱动你。区别在于谁掌控执行的主导权SDK 模式你写流程代码需要的时候调一下模型/工具模型只是流程里的一个函数调用Harness 模式你只描述目标和能力整个 Search → Plan → Execute → Reflect 的执行权交给框架框架负责把任务从开始驱动到结束包括要不要重试、要不要继续、什么时候算完成简单说SDK 解决怎么调一次模型Harness 解决怎么把一个任务跑完。后面 9 篇讲的工具注册、Skill/Sub-Agent、插件市场、记忆分层、暂停恢复、可观测性全都是这套 harness 为了把任务跑完而提供的能力不是孤立的功能点。先看一个最简例子不啰嗦加依赖、配 Key、写代码三步跑起来。dependencygroupIdio.github.flower-trees/groupIdartifactIdregnexe-agent/artifactIdversion0.1.2/version/dependency# application.ymlmodels:aliyun:chat-key:${ALIYUN_KEY}ToolweatherToolTool.builder().name(get_weather).description(Get todays weather for a city.).params(city: String -- city name).func(city-Beijing: sunny, 22 C, excellent air quality.).build();AgentResultresultregnexeAgentBuilder.withDefaultModel(Vendor.ALIYUN,deepseek-v4-flash).withTool(weatherTool).build().execute(Check todays weather in Beijing. Is it good for running?);System.out.println(result.getFinalText());// FINISHED北京今天晴22℃适合跑步剩下的事——Search 找能力、Plan 排计划、Execute 调工具、Reflect 查结果——全部由这套 harness 自动完成不需要你写一行流程代码。多工具协作、控制台日志怎么看下一篇逐行拆给你看。这套框架到底有什么能力接下来 9 篇文章会按这个顺序把仓库里src/test/java/.../example/readme/ExampleReadme01~09Test.java这 9 个真实可跑的示例逐一讲透#主题一句话01withTool多工具入门不写注解、不建类几行代码注册多个工具直接跑02Skill共享模型的子工作流永远继承主 Agent 的模型只能借工具不能占03Sub-Agent自带模型的独立子任务自己的模型、自己的私有工具外面看不见04Plugin注解打包一切一个类嵌套注解一次注册 2 个 tool 1 个 skill 1 个 subagent05插件打包的三种姿势代码直打包、包扫描、文件系统目录任你选06Marketplace能力市场可以换成数据库接口而已换成 DB/ES/向量库都行07三层记忆模型Session 记忆、Task 账本、Agent 上下文互不打扰08说停就停说续就续任意线程pause()带着新上下文resume()09可观测性别让 Agent 是个黑盒Console 调试SLF4J 生产一行代码切换每一篇都不是空对空讲概念——文中的代码块都能在仓库里原文找到真的跑得通不是 PPT 代码。为什么不是又一个 Agent Demo市面上很多 Agent 教程本质是调一次工具 模型润色一下换个场景就要重写。Regnexe 想解决的是另一个问题能力会越来越多——今天 5 个工具明天 50 个靠 Search 先收窄候选集而不是全部塞给模型任务会越来越复杂——靠 Plan 把目标拆成有序步骤而不是硬编码调用顺序结果必须可信——靠 Reflect 检查是不是真的做完了而不是模型说完就算完团队要看得懂——靠事件流把每一轮 Search/Plan/Execute/Reflect 都暴露出来不是黑盒说白了Demo 看模型会不会调工具生产看任务能不能稳定跑完。Regnexe 就是为后者写的——这也是为什么它不叫Agent SDK而是定位成 Agent Harness。 项目地址https://github.com/flower-trees/regnexe-agent 顺手点个 ⭐ 不迷路 下一篇01.withTool三行代码接入一个 Java Agent