news 2026/7/7 4:35:42

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再给 LLM 写 if-else 了!我用 Java 写了一个能自己规划、执行、反思的 Agent 框架

本文是「Regnexe 实战系列」开篇(共 10 篇),系列文章会把 regnexe-agent 仓库里 9 个可直接运行的示例(ExampleReadme01~09Test)逐一拆解。建议收藏,跟着代码一篇一篇撸下来。

先问自己一个问题

你现在的"Agent",是不是长这样:

Stringintent=classifyIntent(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 轮 │ ▼ AgentResult
  • Search:从插件市场里挑出跟当前目标相关的能力,不会把几十个工具全塞进 Prompt
  • Plan:决定调用哪些能力、谁先谁后、最后结果要不要综合
  • Execute:真正发起工具调用 / Skill / Sub-Agent 执行
  • Reflect:检查任务是不是真的完成了,没完成就接着来下一轮

四个字看着简单,但这四步拼起来,Agent 就从"答一次题"变成了"把活干完"。

严格来说,这不是一个 SDK,是一个 Harness

很多人把"接入大模型"等同于"调一下 SDK"——传个 Prompt,拿个回复,完事。但 Regnexe 想做的事情更重一些,业内对这类框架有个专门的叫法:Agent Harness

pom.xml里写得很直白:

Enterprise-grade Agent Harness — Search-Plan-Execute-Reflect

SDK 是"你调用它",Harness 是"它驱动你"。区别在于谁掌控执行的主导权:

  • SDK 模式:你写流程代码,需要的时候调一下模型/工具,模型只是流程里的一个函数调用
  • Harness 模式:你只描述目标和能力,整个 Search → Plan → Execute → Reflect 的执行权交给框架,框架负责把任务从开始驱动到结束,包括要不要重试、要不要继续、什么时候算完成

简单说:SDK 解决"怎么调一次模型",Harness 解决"怎么把一个任务跑完"。后面 9 篇讲的工具注册、Skill/Sub-Agent、插件市场、记忆分层、暂停恢复、可观测性,全都是这套 harness 为了"把任务跑完"而提供的能力,不是孤立的功能点。

先看一个最简例子

不啰嗦,加依赖、配 Key、写代码,三步跑起来。

<dependency><groupId>io.github.flower-trees</groupId><artifactId>regnexe-agent</artifactId><version>0.1.2</version></dependency>
# application.ymlmodels:aliyun:chat-key:${ALIYUN_KEY}
ToolweatherTool=Tool.builder().name("get_weather").description("Get today's weather for a city.").params("city: String -- city name").func(city->"Beijing: sunny, 22 C, excellent air quality.").build();AgentResultresult=regnexeAgentBuilder.withDefaultModel(Vendor.ALIYUN,"deepseek-v4-flash").withTool(weatherTool).build().execute("Check today's 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:自带模型的独立子任务自己的模型、自己的私有工具,外面看不见
04@Plugin注解打包一切一个类,嵌套注解,一次注册 2 个 tool + 1 个 skill + 1 个 subagent
05插件打包的三种姿势代码直打包、包扫描、文件系统目录,任你选
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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 4:35:19

Gerbv:5大核心功能解密,让PCB设计验证变得简单高效

Gerbv&#xff1a;5大核心功能解密&#xff0c;让PCB设计验证变得简单高效 【免费下载链接】gerbv Maintained fork of gerbv, carrying mostly bugfixes 项目地址: https://gitcode.com/gh_mirrors/ge/gerbv 在电子设计领域&#xff0c;Gerber文件是连接设计与制造的桥…

作者头像 李华
网站建设 2026/7/7 4:35:20

免费开源Gerber查看器gerbv:PCB设计验证的终极指南

免费开源Gerber查看器gerbv&#xff1a;PCB设计验证的终极指南 【免费下载链接】gerbv Maintained fork of gerbv, carrying mostly bugfixes 项目地址: https://gitcode.com/gh_mirrors/ge/gerbv Gerber文件是PCB制造的"蓝图"&#xff0c;而gerbv则是解读这些…

作者头像 李华
网站建设 2026/7/7 4:34:32

2000-2024年 各省铁路里程、公路里程、交通网密度(xlsx)

作为中国交通基础设施领域的核心面板数据&#xff0c;该资料集系统收录了2000—2024年间全国31个省级行政区&#xff08;不含港澳台&#xff09;的铁路与公路发展关键指标&#xff0c;具体包括铁路营业里程、公路通车里程以及据此计算的交通网密度。其中&#xff0c;铁路里程以…

作者头像 李华
网站建设 2026/7/3 5:57:41

MS1825 SDK 实战:从零构建跨平台视频处理应用

1. MS1825 SDK入门&#xff1a;跨平台视频处理的瑞士军刀 第一次接触MS1825 SDK时&#xff0c;我正为一个工业检测项目发愁——需要在海思3531D开发板上实现4路HDMI视频的实时拼接显示。这个看似简单的需求&#xff0c;在嵌入式平台上却遇到了性能瓶颈。直到同事扔给我一个压缩…

作者头像 李华
网站建设 2026/7/3 19:03:19

DownKyi视频下载终极指南:从零开始掌握B站视频高效下载技巧

DownKyi视频下载终极指南&#xff1a;从零开始掌握B站视频高效下载技巧 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&…

作者头像 李华
网站建设 2026/7/5 12:05:29

AMD Ryzen调试终极指南:5分钟掌握SMUDebugTool免费开源工具

AMD Ryzen调试终极指南&#xff1a;5分钟掌握SMUDebugTool免费开源工具 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https…

作者头像 李华