news 2026/4/27 19:07:43

Java 版的 AutoGPT?基于 Semantic Kernel (Java SDK) 构建全自动任务规划 Agent

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 版的 AutoGPT?基于 Semantic Kernel (Java SDK) 构建全自动任务规划 Agent

🦁 前言:Java 程序员的 AI 困境

2024 年了,AI 圈子似乎全是 Python 的天下。
你想写个 Agent,网上的教程全是pip install langchain
而在企业内部,我们的业务系统全是Spring Boot,微服务全是Java

“难道为了接个 AI,我要在生产环境引入 Python 运行时吗?”运维大哥手里的板砖已经举起来了。

别慌!微软给 Java 开发者送来了一把神兵利器——Semantic Kernel (SK)
不同于 LangChain 的野蛮生长,SK 是微软官方出品,专为企业级应用设计。它天生支持 C# 和Java,拥有强大的**Planner(规划器)**能力,能让你用 Java 写出类似AutoGPT的全自动任务智能体。

今天,我们就用 Java + Semantic Kernel,手搓一个能自动拆解任务、自动调用工具的 AI Agent!


🧠 核心原理:Planner 是如何“无中生有”的?

Semantic Kernel 的核心魔力在于Planner
普通的 AI 只能回答问题,而带 Planner 的 Agent 能办事

当你给出一个指令:“帮我查询下周三北京的天气,并给老板写一封邮件建议是否取消出差。
Planner 会自动思考并生成如下计划:

  1. 调用WeatherPlugin.getWeather(city="Beijing", date="Next Wednesday")
  2. 获取天气结果。
  3. 调用EmailPlugin.generateContent(weather=...)
  4. 调用EmailPlugin.send(...)

SK 架构流程图:

执行阶段
核心大脑
读取可用工具
生成执行计划
步骤1: 查天气
步骤2: 写邮件
步骤3: 发送
Planner 规划器
Semantic Kernel
Java Plugins 工具箱
Plan 执行链
用户指令
最终结果

🛠️ 实战开发:Java Agent 起飞

1. 引入依赖

我们需要微软官方的 SK 包。

<dependency><groupId>com.microsoft.semantic-kernel</groupId><artifactId>semantickernel-api</artifactId><version>1.0.0-beta</version></dependency><dependency><groupId>com.microsoft.semantic-kernel</groupId><artifactId>semantickernel-connectors-ai-openai</artifactId><version>1.0.0-beta</version></dependency>
2. 定义“超能力” (Native Plugins)

这是 Agent 的手脚。我们用标准的 Java 注解@DefineKernelFunction来定义工具。

publicclassSystemTools{@DefineKernelFunction(name="get_current_time",description="获取当前系统时间")publicStringgetCurrentTime(){returnLocalDateTime.now().toString();}@DefineKernelFunction(name="send_email",description="发送邮件")publicStringsendEmail(@KernelFunctionParameter(name="recipient",description="收件人")Stringrecipient,@KernelFunctionParameter(name="content",description="邮件内容")Stringcontent){// 模拟发邮件逻辑System.out.println("📧 正在发送邮件给: "+recipient);System.out.println("📄 内容: "+content);return"发送成功";}}
3. 组装 Kernel 与 Planner

这是见证奇迹的时刻。我们将 LLM、工具和规划器组装在一起。

importcom.microsoft.semantickernel.Kernel;importcom.microsoft.semantickernel.planner.actionplanner.ActionPlanner;publicclassJavaAutoGPT{publicstaticvoidmain(String[]args){// 1. 初始化 Kernel (配置 OpenAI/Azure)Kernelkernel=Kernel.builder().withAIService(getOpenAIService())// 这里配置你的 Key.build();// 2. 导入我们的工具kernel.importPluginFromObject(newSystemTools(),"SystemTools");// 3. 创建规划器 (ActionPlanner 适合单一目标,SequentialPlanner 适合多步骤)// 注意:Java SDK 的 Planner 还在快速迭代中,API 可能会变varplanner=newActionPlanner(kernel,null);// 4. 用户指令Stringgoal="既然现在是下午了,给老板(boss@company.com)发个邮件说我下班了。";// 5. 自动生成计划并执行try{varplan=planner.createPlan(goal);System.out.println("🤖 AI 生成的计划: "+plan.getDescription());varresult=plan.invokeAsync(kernel.createNewContext()).block();System.out.println("✅ 执行结果: "+result.getResult());}catch(Exceptione){e.printStackTrace();}}}
4. 运行效果

控制台输出:

🤖 AI 生成的计划: 调用 SystemTools.get_current_time 获取时间,然后调用 SystemTools.send_email 📧 正在发送邮件给: boss@company.com 📄 内容: 老板你好,现在是 2024-12-12T18:00,我下班了。 ✅ 执行结果: 发送成功

看!你甚至没有告诉 AI 要先获取时间,它自己意识到了“现在”是一个变量,需要先调用get_current_time这就是 Agent 的魅力。


🥊 为什么选 Semantic Kernel 而不是 LangChain?

  1. 原生 Java 支持:不需要通过 Jython 或 HTTP 调用 Python 服务,直接嵌入 Spring Boot。
  2. 企业级稳定性:微软出品,API 设计更严谨(虽然 Beta 阶段变动也大,但架构更清晰),更适合大中型项目。
  3. 强类型约束:Java 的强类型系统能更好地约束 AI 的输入输出,减少“幻觉”导致的参数错误。

📝 总结

AI 不仅仅属于 Python。随着Semantic Kernel的成熟,Java 开发者终于有了自己的核武器。

未来,你的 Spring Boot 应用将不再是只会 CRUD 的死程序,而是拥有感知、思考、决策能力的智能体。

种一棵树最好的时间是十年前,其次是现在。赶紧把 Semantic Kernel 加入你的 Maven 依赖吧!


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

从零开始:Docker Compose YAML 文件深度解析与最佳实践

在现代应用开发中&#xff0c;一个应用通常由多个服务组成&#xff1a;Web 服务器、数据库、缓存、消息队列等。手动启动和管理这些容器不仅繁琐&#xff0c;而且容易出错。 Docker Compose 正是解决这一痛点的利器。它允许你使用一个声明式的 YAML 文件来定义整个应用栈的结构…

作者头像 李华
网站建设 2026/4/25 19:06:06

29、Linux 系统的电源管理与进程线程模型解析

Linux 系统的电源管理与进程线程模型解析 1. CPUIdle 驱动 CPUIdle 与 CPUFreq 子系统类似,由属于板级支持包(BSP)的驱动和决定策略的调节器组成。但与 CPUFreq 不同的是,CPUIdle 的调节器在运行时不能更改,也没有用户空间调节器的接口。 CPUIdle 在 /sys/devices/syst…

作者头像 李华
网站建设 2026/4/27 17:30:01

Flutter应用嵌入鸿蒙智慧座舱数字孪生界面的实现

欢迎大家加入[开源鸿蒙跨平台开发者社区](https://openharmonycrossplatform.csdn.net)&#xff0c;一起共建开源鸿蒙跨平台生态。Flutter应用嵌入鸿蒙智慧座舱数字孪生界面的实现Flutter作为跨平台开发框架&#xff0c;结合鸿蒙系统的分布式能力&#xff0c;可以在智慧座舱场景…

作者头像 李华