Java AI 智能体开发框架全面对比
<h1 id="java-ai-spring-ailangchain4jagentscope-javaspring-ai-alibabasemantic-kernel">引言:Java 正式进入 AI 智能体时代</h1><p>过去几年,Python 凭借 LangChain、LlamaIndex 等框架在 AI 应用开发领域占据绝对主导地位。然而,随着企业级 AI 应用需求的爆发式增长,Java 开发者迫切需要能够在现有企业架构中无缝集成 AI 能力的解决方案。</p>
<p><strong>2024-2026 年,Java AI 生态迎来爆发</strong>:</p>
<ul>
<li><strong>Spring AI</strong> 正式发布 GA 版本,成为企业级 AI 应用的首选</li>
<li><strong>LangChain4j</strong> 快速迭代,成为 Java 版 LangChain 的事实标准</li>
<li><strong>Semantic Kernel</strong> Java SDK 成熟,微软生态深度整合</li>
<li><strong>Spring AI Alibaba</strong> 发布,专为中国开发者优化</li>
<li><strong>AgentScope-Java</strong> 问世,多智能体协作能力突出</li>
</ul>
<p>这些框架的出现,标志着 <strong>Java 正式进入 AI 智能体开发的主流舞台</strong>。</p>
<p>本文将对这 5 大框架进行深入对比分析,帮助开发者根据项目需求做出明智选择。</p>
<hr>
<h2 id="spring-ai">一、Spring AI</h2>
<h3 id="11">1.1 简介</h3>
<p><strong>Spring AI</strong> 是由 VMware(原 Pivotal)官方推出的 AI 应用框架,于 2024 年发布 1.0 GA 版本,2025 年发布 2.0 版本(基于 Spring Boot 4 和 Java 21)。作为 Spring 生态的官方扩展,Spring AI 将生成式 AI 能力无缝融入熟悉的 Spring 编程模型。</p>
<p>Spring AI 的核心理念是:<strong>让 Spring 开发者无需学习新范式,即可构建 AI 应用</strong>。</p>
<h3 id="12">1.2 核心功能</h3>
<table>
<thead>
<tr><th>功能模块</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Chat Client</strong></td>
<td>统一的 LLM 对话 API,支持流式响应</td>
</tr>
<tr>
<td><strong>Prompt Engineering</strong></td>
<td>模板化提示词管理,支持变量替换</td>
</tr>
<tr>
<td><strong>Function Calling</strong></td>
<td>声明式工具调用,自动参数绑定</td>
</tr>
<tr>
<td><strong>Vector Store</strong></td>
<td>集成多种向量数据库(Redis、PGVector、Milvus 等)</td>
</tr>
<tr>
<td><strong>RAG 支持</strong></td>
<td>内置检索增强生成管道</td>
</tr>
<tr>
<td><strong>Model Providers</strong></td>
<td>支持 OpenAI、Azure OpenAI、Gemini、Ollama 等 20+ 提供商</td>
</tr>
<tr>
<td><strong>Spring Boot 集成</strong></td>
<td>自动配置、健康检查、指标监控</td>
</tr>
</tbody>
</table>
<h3 id="13">1.3 代码示例</h3>
<div class="codehilite">
<pre><code><span class="kn">import</span><span class="nn">org.springframework.ai.chat.client.ChatClient</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">org.springframework.ai.chat.model.ChatModel</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">org.springframework.boot.CommandLineRunner</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">org.springframework.boot.SpringApplication</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">org.springframework.boot.autoconfigure.SpringBootApplication</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">org.springframework.context.annotation.Bean</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">org.springframework.stereotype.Service</span><span class="p">;</span>
<span class="nd">@SpringBootApplication</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">SpringAiDemoApplication</span><span class="p">{</span>
<span class="kd">public</span><span class="kd">static</span><span class="kt">void</span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="n">args</span><span class="p">)</span><span class="p">{</span>
<span class="n">SpringApplication</span><span class="p">.</span><span class="na">run</span><span class="p">(</span><span class="n">SpringAiDemoApplication</span><span class="p">.</span><span class="na">class</span><span class="p">,</span><span class="n">args</span><span class="p">);</span>
<span class="p">}</span>
<span class="nd">@Bean</span>
<span class="kd">public</span><span class="n">CommandLineRunner</span><span class="nf">runner</span><span class="p">(</span><span class="n">ChatClient</span><span class="n">chatClient</span><span class="p">)</span><span class="p">{</span>
<span class="k">return</span><span class="n">args</span><span class="o">-></span><span class="p">{</span>
<span class="n">String</span><span class="n">response</span><span class="o">=</span><span class="n">chatClient</span><span class="p">.</span><span class="na">prompt</span><span class="p">()</span>
<span class="p">.</span><span class="na">user</span><span class="p">(</span><span class="s">"请用一句话解释什么是 AI 智能体"</span><span class="p">)</span>
<span class="p">.</span><span class="na">call</span><span class="p">()</span>
<span class="p">.</span><span class="na">content</span><span class="p">();</span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">response</span><span class="p">);</span>
<span class="p">};</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="c1">// 函数调用示例</span>
<span class="nd">@Service</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">WeatherService</span><span class="p">{</span>
<span class="nd">@Tool</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="s">"获取指定城市的天气信息"</span><span class="p">)</span>
<span class="kd">public</span><span class="n">String</span><span class="nf">getWeather</span><span class="p">(</span><span class="nd">@ToolParam</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="s">"城市名称"</span><span class="p">)</span><span class="n">String</span><span class="n">city</span><span class="p">)</span><span class="p">{</span>
<span class="c1">// 调用天气 API</span>
<span class="k">return</span><span class="s">"北京:晴,25°C"</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="c1">// 在 ChatClient 中使用工具</span>
<span class="nd">@Configuration</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">AiConfig</span><span class="p">{</span>
<span class="nd">@Bean</span>
<span class="kd">public</span><span class="n">ChatClient</span><span class="nf">chatClient</span><span class="p">(</span><span class="n">ChatModel</span><span class="n">chatModel</span><span class="p">,</span><span class="n">WeatherService</span><span class="n">weatherService</span><span class="p">)</span><span class="p">{</span>
<span class="k">return</span><span class="n">ChatClient</span><span class="p">.</span><span class="na">builder</span><span class="p">(</span><span class="n">chatModel</span><span class="p">)</span>
<span class="p">.</span><span class="na">defaultTools</span><span class="p">(</span><span class="n">weatherService</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre>
</div>
<h3 id="14">1.4 优势</h3>
<table>
<thead>
<tr><th>优势</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring 生态原生</strong></td>
<td>与 Spring Boot、Spring Cloud 无缝集成</td>
</tr>
<tr>
<td><strong>学习曲线低</strong></td>
<td>Spring 开发者零学习成本上手</td>
</tr>
<tr>
<td><strong>企业级特性</strong></td>
<td>支持事务、安全、监控、日志等企业需求</td>
</tr>
<tr>
<td><strong>官方维护</strong></td>
<td>VMware 官方团队维护,长期支持有保障</td>
</tr>
<tr>
<td><strong>生产就绪</strong></td>
<td>完善的配置管理、健康检查、指标暴露</td>
</tr>
<tr>
<td><strong>多云支持</strong></td>
<td>支持 AWS、Azure、GCP 等主流云平台</td>
</tr>
</tbody>
</table>
<h3 id="15">1.5 适用场景</h3>
<ul>
<li>现有 Spring Boot 项目需要集成 AI 能力</li>
<li>企业级 AI 应用,需要完善的运维支持</li>
<li>团队熟悉 Spring 技术栈</li>
<li>需要长期维护的生产系统</li>
</ul>
<h3 id="16">1.6 版本信息</h3>
<ul>
<li><strong>最新版本</strong>:Spring AI 2.0(2025 年 12 月发布)</li>
<li><strong>Java 要求</strong>:Java 21+</li>
<li><strong>Spring Boot</strong>:4.x</li>
<li><strong>开源许可</strong>:Apache 2.0</li>
</ul>
<hr>
<h2 id="langchain4j">二、LangChain4j</h2>
<h3 id="21">2.1 简介</h3>
<p><strong>LangChain4j</strong> 是 LangChain 的 Java 实现,由开源社区维护,是目前 Java 生态中最活跃的 AI 框架之一。LangChain4j 完整复现了 LangChain 的核心概念,包括 Chains、Agents、Memory、Tools 等,并针对 JVM 进行了优化。</p>
<p>LangChain4j 的核心理念是:<strong>为 Java 开发者提供与 Python LangChain 同等的能力</strong>。</p>
<h3 id="22">2.2 核心功能</h3>
<table>
<thead>
<tr><th>功能模块</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>LLM 集成</strong></td>
<td>支持 50+ 模型提供商(OpenAI、Anthropic、Google、本地模型等)</td>
</tr>
<tr>
<td><strong>Embedding</strong></td>
<td>统一的嵌入模型 API,支持多种向量模型</td>
</tr>
<tr>
<td><strong>Vector Store</strong></td>
<td>集成 20+ 向量数据库(Pinecone、Weaviate、Milvus、Chroma 等)</td>
</tr>
<tr>
<td><strong>Agents</strong></td>
<td>完整的智能体框架,支持 ReAct、Plan-and-Execute 等模式</td>
</tr>
<tr>
<td><strong>Tools</strong></td>
<td>声明式工具定义,支持 MCP(Model Context Protocol)</td>
</tr>
<tr>
<td><strong>Memory</strong></td>
<td>对话记忆管理,支持多种存储后端</td>
</tr>
<tr>
<td><strong>RAG</strong></td>
<td>内置检索增强生成,支持多种文档加载器</td>
</tr>
<tr>
<td><strong>Streaming</strong></td>
<td>原生支持流式响应</td>
</tr>
<tr>
<td><strong>Quarkus/Spring 集成</strong></td>
<td>提供主流框架的扩展模块</td>
</tr>
</tbody>
</table>
<h3 id="23">2.3 代码示例</h3>
<div class="codehilite">
<pre><code><span class="kn">import</span><span class="nn">dev.langchain4j.agent.tool.Tool</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.agent.tool.ToolExecutionRequest</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.data.message.AiMessage</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.memory.ChatMemory</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.memory.chat.MessageWindowChatMemory</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.model.chat.ChatLanguageModel</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.model.openai.OpenAiChatModel</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.service.AiServices</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.service.SystemMessage</span><span class="p">;</span>
<span class="c1">// 定义助手接口</span>
<span class="kd">interface</span> <span class="nc">Assistant</span><span class="p">{</span>
<span class="nd">@SystemMessage</span><span class="p">(</span><span class="s">"你是一个有帮助的 AI 助手"</span><span class="p">)</span>
<span class="n">String</span><span class="nf">chat</span><span class="p">(</span><span class="n">String</span><span class="n">userMessage</span><span class="p">);</span>
<span class="p">}</span>
<span class="c1">// 定义工具</span>
<span class="kd">class</span> <span class="nc">Calculator</span><span class="p">{</span>
<span class="nd">@Tool</span><span class="p">(</span><span class="s">"计算两个数的和"</span><span class="p">)</span>
<span class="kt">double</span><span class="nf">add</span><span class="p">(</span><span class="kt">double</span><span class="n">a</span><span class="p">,</span><span class="kt">double</span><span class="n">b</span><span class="p">)</span><span class="p">{</span>
<span class="k">return</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="p">;</span>
<span class="p">}</span>
<span class="nd">@Tool</span><span class="p">(</span><span class="s">"计算两个数的乘积"</span><span class="p">)</span>
<span class="kt">double</span><span class="nf">multiply</span><span class="p">(</span><span class="kt">double</span><span class="n">a</span><span class="p">,</span><span class="kt">double</span><span class="n">b</span><span class="p">)</span><span class="p">{</span>
<span class="k">return</span><span class="n">a</span><span class="o">*</span><span class="n">b</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">LangChain4jDemo</span><span class="p">{</span>
<span class="kd">public</span><span class="kd">static</span><span class="kt">void</span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="n">args</span><span class="p">)</span><span class="p">{</span>
<span class="c1">// 创建模型</span>
<span class="n">ChatLanguageModel</span><span class="n">model</span><span class="o">=</span><span class="n">OpenAiChatModel</span><span class="p">.</span><span class="na">builder</span><span class="p">()</span>
<span class="p">.</span><span class="na">apiKey</span><span class="p">(</span><span class="n">System</span><span class="p">.</span><span class="na">getenv</span><span class="p">(</span><span class="s">"OPENAI_API_KEY"</span><span class="p">))</span>
<span class="p">.</span><span class="na">modelName</span><span class="p">(</span><span class="s">"gpt-4o"</span><span class="p">)</span>
<span class="p">.</span><span class="na">temperature</span><span class="p">(</span><span class="mf">0.7</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="c1">// 创建记忆</span>
<span class="n">ChatMemory</span><span class="n">memory</span><span class="o">=</span><span class="n">MessageWindowChatMemory</span><span class="p">.</span><span class="na">withMaxMessages</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span>
<span class="c1">// 创建助手(带工具)</span>
<span class="n">Assistant</span><span class="n">assistant</span><span class="o">=</span><span class="n">AiServices</span><span class="p">.</span><span class="na">builder</span><span class="p">(</span><span class="n">Assistant</span><span class="p">.</span><span class="na">class</span><span class="p">)</span>
<span class="p">.</span><span class="na">chatLanguageModel</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
<span class="p">.</span><span class="na">chatMemory</span><span class="p">(</span><span class="n">memory</span><span class="p">)</span>
<span class="p">.</span><span class="na">tools</span><span class="p">(</span><span class="k">new</span><span class="n">Calculator</span><span class="p">())</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="c1">// 对话</span>
<span class="n">String</span><span class="n">response</span><span class="o">=</span><span class="n">assistant</span><span class="p">.</span><span class="na">chat</span><span class="p">(</span><span class="s">"35 乘以 89 等于多少?"</span><span class="p">);</span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">response</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="c1">// 智能体示例(使用 langchain4j-agentic)</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.agentic.AgenticServices</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">dev.langchain4j.agentic.agent.Agent</span><span class="p">;</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">AgentDemo</span><span class="p">{</span>
<span class="kd">public</span><span class="kd">static</span><span class="kt">void</span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="n">args</span><span class="p">)</span><span class="p">{</span>
<span class="c1">// 创建智能体</span>
<span class="n">Agent</span><span class="n">agent</span><span class="o">=</span><span class="n">AgenticServices</span><span class="p">.</span><span class="na">createAgent</span><span class="p">()</span>
<span class="p">.</span><span class="na">withModel</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
<span class="p">.</span><span class="na">withTools</span><span class="p">(</span><span class="k">new</span><span class="n">Calculator</span><span class="p">())</span>
<span class="p">.</span><span class="na">withMemory</span><span class="p">(</span><span class="n">memory</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="c1">// 执行任务</span>
<span class="n">String</span><span class="n">result</span><span class="o">=</span><span class="n">agent</span><span class="p">.</span><span class="na">execute</span><span class="p">(</span><span class="s">"帮我计算 (35 + 89) * 2"</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre>
</div>
<h3 id="24">2.4 优势</h3>
<table>
<thead>
<tr><th>优势</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>功能最完整</strong></td>
<td>覆盖 LangChain 全部核心功能</td>
</tr>
<tr>
<td><strong>模型支持广</strong></td>
<td>50+ 模型提供商,持续增加</td>
</tr>
<tr>
<td><strong>智能体能力强</strong></td>
<td>完整的 Agentic AI 支持</td>
</tr>
<tr>
<td><strong>社区活跃</strong></td>
<td>GitHub 13k+ stars,迭代迅速</td>
</tr>
<tr>
<td><strong>灵活性强</strong></td>
<td>不绑定特定框架,可自由组合</td>
</tr>
<tr>
<td><strong>MCP 支持</strong></td>
<td>支持 Model Context Protocol 标准</td>
</tr>
</tbody>
</table>
<h3 id="25">2.5 适用场景</h3>
<ul>
<li>需要完整的 LangChain 功能</li>
<li>多模型、多向量库的复杂场景</li>
<li>智能体应用开发</li>
<li>需要灵活架构的项目</li>
</ul>
<h3 id="26">2.6 版本信息</h3>
<ul>
<li><strong>最新版本</strong>:1.0.x(2026 年持续更新)</li>
<li><strong>Java 要求</strong>:Java 17+</li>
<li><strong>核心模块</strong>:langchain4j、langchain4j-agentic</li>
<li><strong>开源许可</strong>:Apache 2.0</li>
</ul>
<hr>
<h2 id="semantic-kerneljava-sdk">三、Semantic Kernel(Java SDK)</h2>
<h3 id="31">3.1 简介</h3>
<p><strong>Semantic Kernel (SK)</strong> 是微软官方推出的 AI 应用开发 SDK,支持 C#、Python、Java 三种语言。Java SDK 于 2024 年正式发布,2025 年随 Microsoft Agent Framework 的发布进行了重大升级。</p>
<p>Semantic Kernel 的核心理念是:<strong>将 AI 能力以插件化方式融入应用程序</strong>。</p>
<h3 id="32">3.2 核心功能</h3>
<table>
<thead>
<tr><th>功能模块</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Plugins</strong></td>
<td>插件化架构,支持原生函数和语义函数</td>
</tr>
<tr>
<td><strong>Functions</strong></td>
<td>统一的函数抽象,支持组合和编排</td>
</tr>
<tr>
<td><strong>Planner</strong></td>
<td>自动规划器,支持任务分解和执行</td>
</tr>
<tr>
<td><strong>Memory</strong></td>
<td>语义记忆系统,支持向量检索</td>
</tr>
<tr>
<td><strong>Filters</strong></td>
<td>函数执行过滤器,支持拦截和修改</td>
</tr>
<tr>
<td><strong>Model Support</strong></td>
<td>支持 OpenAI、Azure OpenAI、Hugging Face 等</td>
</tr>
<tr>
<td><strong>Microsoft 生态</strong></td>
<td>深度集成 Azure AI、Microsoft 365</td>
</tr>
<tr>
<td><strong>Agent Framework</strong></td>
<td>2025 年新增多智能体协作支持</td>
</tr>
</tbody>
</table>
<h3 id="33">3.3 代码示例</h3>
<div class="codehilite">
<pre><code><span class="kn">import</span><span class="nn">com.microsoft.semantickernel.Kernel</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">com.microsoft.semantickernel.connectors.openai.OpenAIChatCompletion</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">com.microsoft.semantickernel.functions.KernelFunction</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">com.microsoft.semantickernel.functions.KernelParameterMetadata</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">com.microsoft.semantickernel.prompttemplates.PromptTemplateConfig</span><span class="p">;</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">SemanticKernelDemo</span><span class="p">{</span>
<span class="kd">public</span><span class="kd">static</span><span class="kt">void</span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="n">args</span><span class="p">)</span><span class="p">{</span>
<span class="c1">// 创建 Kernel</span>
<span class="n">Kernel</span><span class="n">kernel</span><span class="o">=</span><span class="n">Kernel</span><span class="p">.</span><span class="na">builder</span><span class="p">()</span>
<span class="p">.</span><span class="na">addOpenAIChatCompletion</span><span class="p">(</span>
<span class="s">"gpt-4o"</span><span class="p">,</span>
<span class="n">System</span><span class="p">.</span><span class="na">getenv</span><span class="p">(</span><span class="s">"OPENAI_API_KEY"</span><span class="p">)</span>
<span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="c1">// 定义原生插件</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">TimePlugin</span><span class="p">{</span>
<span class="nd">@KernelFunction</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"getCurrentTime"</span><span class="p">,</span><span class="n">description</span><span class="o">=</span><span class="s">"获取当前时间"</span><span class="p">)</span>
<span class="kd">public</span><span class="n">String</span><span class="nf">getCurrentTime</span><span class="p">()</span><span class="p">{</span>
<span class="k">return</span><span class="n">java</span><span class="p">.</span><span class="na">time</span><span class="p">.</span><span class="na">LocalDateTime</span><span class="p">.</span><span class="na">now</span><span class="p">().</span><span class="na">toString</span><span class="p">();</span>
<span class="p">}</span>
<span class="nd">@KernelFunction</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"calculateAge"</span><span class="p">,</span><span class="n">description</span><span class="o">=</span><span class="s">"计算年龄"</span><span class="p">)</span>
<span class="kd">public</span><span class="kt">int</span><span class="nf">calculateAge</span><span class="p">(</span>
<span class="nd">@KernelParameterMetadata</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"birthYear"</span><span class="p">,</span><span class="n">description</span><span class="o">=</span><span class="s">"出生年份"</span><span class="p">)</span><span class="kt">int</span><span class="n">birthYear</span>
<span class="p">)</span><span class="p">{</span>
<span class="k">return</span><span class="n">java</span><span class="p">.</span><span class="na">time</span><span class="p">.</span><span class="na">Year</span><span class="p">.</span><span class="na">now</span><span class="p">().</span><span class="na">getValue</span><span class="p">()</span><span class="o">-</span><span class="n">birthYear</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="c1">// 导入插件</span>
<span class="n">kernel</span><span class="p">.</span><span class="na">importPluginFromObject</span><span class="p">(</span><span class="k">new</span><span class="n">TimePlugin</span><span class="p">(),</span><span class="s">"TimePlugin"</span><span class="p">);</span>
<span class="c1">// 定义语义函数</span>
<span class="n">String</span><span class="n">prompt</span><span class="o">=</span><span class="s">"""</span>
<span class="s"> 今天是 {{TimePlugin.getCurrentTime}}</span>
<span class="s"> 用户出生于 {{$birthYear}} 年</span>
<span class="s"> 请计算用户的年龄并给出友好的生日祝福</span>
<span class="s"> """</span><span class="p">;</span>
<span class="n">KernelFunction</span><span class="o"><?></span><span class="n">func</span><span class="o">=</span><span class="n">kernel</span><span class="p">.</span><span class="na">createFunctionFromPrompt</span><span class="p">(</span>
<span class="n">prompt</span><span class="p">,</span>
<span class="n">PromptTemplateConfig</span><span class="p">.</span><span class="na">builder</span><span class="p">().</span><span class="na">build</span><span class="p">()</span>
<span class="p">);</span>
<span class="c1">// 执行</span>
<span class="n">String</span><span class="n">result</span><span class="o">=</span><span class="n">kernel</span><span class="p">.</span><span class="na">invoke</span><span class="p">(</span><span class="n">func</span><span class="p">,</span>
<span class="n">kernel</span><span class="p">.</span><span class="na">createArgumentsBuilder</span><span class="p">()</span>
<span class="p">.</span><span class="na">with</span><span class="p">(</span><span class="s">"birthYear"</span><span class="p">,</span><span class="mi">1990</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">()</span>
<span class="p">).</span><span class="na">getResult</span><span class="p">();</span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">result</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="c1">// 智能体示例(Microsoft Agent Framework)</span>
<span class="kn">import</span><span class="nn">com.microsoft.agentframework.Agent</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">com.microsoft.agentframework.AgentGroup</span><span class="p">;</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">AgentExample</span><span class="p">{</span>
<span class="kd">public</span><span class="kd">static</span><span class="kt">void</span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="n">args</span><span class="p">)</span><span class="p">{</span>
<span class="c1">// 创建多个智能体</span>
<span class="n">Agent</span><span class="n">researcher</span><span class="o">=</span><span class="n">Agent</span><span class="p">.</span><span class="na">builder</span><span class="p">()</span>
<span class="p">.</span><span class="na">withName</span><span class="p">(</span><span class="s">"Researcher"</span><span class="p">)</span>
<span class="p">.</span><span class="na">withInstructions</span><span class="p">(</span><span class="s">"你是一名研究专家,负责收集和分析信息"</span><span class="p">)</span>
<span class="p">.</span><span class="na">withModel</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="n">Agent</span><span class="n">writer</span><span class="o">=</span><span class="n">Agent</span><span class="p">.</span><span class="na">builder</span><span class="p">()</span>
<span class="p">.</span><span class="na">withName</span><span class="p">(</span><span class="s">"Writer"</span><span class="p">)</span>
<span class="p">.</span><span class="na">withInstructions</span><span class="p">(</span><span class="s">"你是一名专业写作者,负责撰写报告"</span><span class="p">)</span>
<span class="p">.</span><span class="na">withModel</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="c1">// 创建智能体组</span>
<span class="n">AgentGroup</span><span class="n">group</span><span class="o">=</span><span class="n">AgentGroup</span><span class="p">.</span><span class="na">builder</span><span class="p">()</span>
<span class="p">.</span><span class="na">addAgent</span><span class="p">(</span><span class="n">researcher</span><span class="p">)</span>
<span class="p">.</span><span class="na">addAgent</span><span class="p">(</span><span class="n">writer</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="c1">// 执行协作任务</span>
<span class="n">String</span><span class="n">result</span><span class="o">=</span><span class="n">group</span><span class="p">.</span><span class="na">execute</span><span class="p">(</span><span class="s">"研究 AI 发展趋势并撰写报告"</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre>
</div>
<h3 id="34">3.4 优势</h3>
<table>
<thead>
<tr><th>优势</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>微软官方支持</strong></td>
<td>微软团队维护,与 Azure 深度整合</td>
</tr>
<tr>
<td><strong>插件化架构</strong></td>
<td>清晰的插件边界,易于扩展</td>
</tr>
<tr>
<td><strong>多语言一致</strong></td>
<td>C#/Python/Java API 设计一致</td>
</tr>
<tr>
<td><strong>Microsoft 365 集成</strong></td>
<td>可直接调用 M365 服务</td>
</tr>
<tr>
<td><strong>Agent Framework</strong></td>
<td>2025 年新增多智能体协作能力</td>
</tr>
<tr>
<td><strong>企业安全</strong></td>
<td>符合微软企业安全标准</td>
</tr>
</tbody>
</table>
<h3 id="35">3.5 适用场景</h3>
<ul>
<li>微软/Azure 生态用户</li>
<li>需要与 Microsoft 365 集成</li>
<li>偏好插件化架构</li>
<li>企业级安全要求高</li>
</ul>
<h3 id="36">3.6 版本信息</h3>
<ul>
<li><strong>最新版本</strong>:Java SDK 1.0+(2026 年)</li>
<li><strong>Java 要求</strong>:Java 17+</li>
<li><strong>Agent Framework</strong>:2025 年发布预览版</li>
<li><strong>开源许可</strong>:MIT</li>
</ul>
<hr>
<h2 id="agentscope-java">四、AgentScope-Java</h2>
<h3 id="41">4.1 简介</h3>
<p><strong>AgentScope-Java</strong> 是阿里巴巴推出的多智能体协作框架的 Java 版本,基于 Python 版 AgentScope 开发。AgentScope 专注于<strong>多智能体协作</strong>和<strong>复杂任务编排</strong>,在分布式智能体系统方面具有独特优势。</p>
<p>AgentScope-Java 的核心理念是:<strong>让多智能体协作像编写普通 Java 代码一样简单</strong>。</p>
<h3 id="42">4.2 核心功能</h3>
<table>
<thead>
<tr><th>功能模块</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>多智能体编排</strong></td>
<td>支持顺序、并行、条件、循环等多种编排模式</td>
</tr>
<tr>
<td><strong>智能体角色</strong></td>
<td>预定义多种角色模板(研究员、程序员、审核员等)</td>
</tr>
<tr>
<td><strong>消息总线</strong></td>
<td>智能体间通信的消息总线机制</td>
</tr>
<tr>
<td><strong>状态管理</strong></td>
<td>分布式状态管理和同步</td>
</tr>
<tr>
<td><strong>任务分解</strong></td>
<td>自动任务分解和分配</td>
</tr>
<tr>
<td><strong>模型适配</strong></td>
<td>支持通义千问、OpenAI、本地模型等</td>
</tr>
<tr>
<td><strong>可视化工具</strong></td>
<td>智能体交互过程可视化</td>
</tr>
<tr>
<td><strong>容错机制</strong></td>
<td>智能体失败重试和降级处理</td>
</tr>
</tbody>
</table>
<h3 id="43">4.3 代码示例</h3>
<div class="codehilite">
<pre><code><span class="kn">import</span><span class="nn">com.alibaba.agentscope.agent.Agent</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">com.alibaba.agentscope.agent.AgentBuilder</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">com.alibaba.agentscope.workflow.Workflow</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">com.alibaba.agentscope.message.Message</span><span class="p">;</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">AgentScopeDemo</span><span class="p">{</span>
<span class="kd">public</span><span class="kd">static</span><span class="kt">void</span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="n">args</span><span class="p">)</span><span class="p">{</span>
<span class="c1">// 创建不同角色的智能体</span>
<span class="n">Agent</span><span class="n">researcher</span><span class="o">=</span><span class="n">AgentBuilder</span><span class="p">.</span><span class="na">create</span><span class="p">()</span>
<span class="p">.</span><span class="na">name</span><span class="p">(</span><span class="s">"Researcher"</span><span class="p">)</span>
<span class="p">.</span><span class="na">role</span><span class="p">(</span><span class="s">"你是一名资深研究员,负责收集和分析信息"</span><span class="p">)</span>
<span class="p">.</span><span class="na">model</span><span class="p">(</span><span class="s">"qwen-max"</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="n">Agent</span><span class="n">coder</span><span class="o">=</span><span class="n">AgentBuilder</span><span class="p">.</span><span class="na">create</span><span class="p">()</span>
<span class="p">.</span><span class="na">name</span><span class="p">(</span><span class="s">"Coder"</span><span class="p">)</span>
<span class="p">.</span><span class="na">role</span><span class="p">(</span><span class="s">"你是一名高级软件工程师,负责编写代码"</span><span class="p">)</span>
<span class="p">.</span><span class="na">model</span><span class="p">(</span><span class="s">"qwen-max"</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="n">Agent</span><span class="n">reviewer</span><span class="o">=</span><span class="n">AgentBuilder</span><span class="p">.</span><span class="na">create</span><span class="p">()</span>
<span class="p">.</span><span class="na">name</span><span class="p">(</span><span class="s">"Reviewer"</span><span class="p">)</span>
<span class="p">.</span><span class="na">role</span><span class="p">(</span><span class="s">"你是一名代码审核专家,负责审查代码质量"</span><span class="p">)</span>
<span class="p">.</span><span class="na">model</span><span class="p">(</span><span class="s">"qwen-max"</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="c1">// 定义工作流(顺序执行)</span>
<span class="n">Workflow</span><span class="n">workflow</span><span class="o">=</span><span class="n">Workflow</span><span class="p">.</span><span class="na">builder</span><span class="p">()</span>
<span class="p">.</span><span class="na">addStep</span><span class="p">(</span><span class="n">researcher</span><span class="p">,</span><span class="s">"研究需求并生成技术方案"</span><span class="p">)</span>
<span class="p">.</span><span class="na">addStep</span><span class="p">(</span><span class="n">coder</span><span class="p">,</span><span class="s">"根据技术方案编写代码"</span><span class="p">)</span>
<span class="p">.</span><span class="na">addStep</span><span class="p">(</span><span class="n">reviewer</span><span class="p">,</span><span class="s">"审查代码并提出改进建议"</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="c1">// 执行工作流</span>
<span class="n">Message</span><span class="n">result</span><span class="o">=</span><span class="n">workflow</span><span class="p">.</span><span class="na">execute</span><span class="p">(</span>
<span class="n">Message</span><span class="p">.</span><span class="na">builder</span><span class="p">()</span>
<span class="p">.</span><span class="na">content</span><span class="p">(</span><span class="s">"开发一个用户登录功能,需要支持 OAuth2"</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">()</span>
<span class="p">);</span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">result</span><span class="p">.</span><span class="na">getContent</span><span class="p">());</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="c1">// 并行智能体示例</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">ParallelAgentDemo</span><span class="p">{</span>
<span class="kd">public</span><span class="kd">static</span><span class="kt">void</span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="n">args</span><span class="p">)</span><span class="p">{</span>
<span class="n">Agent</span><span class="n">agent1</span><span class="o">=</span><span class="n">AgentBuilder</span><span class="p">.</span><span class="na">create</span><span class="p">().</span><span class="na">name</span><span class="p">(</span><span class="s">"Agent1"</span><span class="p">).</span><span class="na">build</span><span class="p">();</span>
<span class="n">Agent</span><span class="n">agent2</span><span class="o">=</span><span class="n">AgentBuilder</span><span class="p">.</span><span class="na">create</span><span class="p">().</span><span class="na">name</span><span class="p">(</span><span class="s">"Agent2"</span><span class="p">).</span><span class="na">build</span><span class="p">();</span>
<span class="n">Agent</span><span class="n">agent3</span><span class="o">=</span><span class="n">AgentBuilder</span><span class="p">.</span><span class="na">create</span><span class="p">().</span><span class="na">name</span><span class="p">(</span><span class="s">"Agent3"</span><span class="p">).</span><span class="na">build</span><span class="p">();</span>
<span class="c1">// 并行执行</span>
<span class="n">Workflow</span><span class="n">parallelWorkflow</span><span class="o">=</span><span class="n">Workflow</span><span class="p">.</span><span class="na">builder</span><span class="p">()</span>
<span class="p">.</span><span class="na">parallel</span><span class="p">(</span><span class="n">agent1</span><span class="p">,</span><span class="n">agent2</span><span class="p">,</span><span class="n">agent3</span><span class="p">)</span>
<span class="p">.</span><span class="na">aggregate</span><span class="p">((</span><span class="n">results</span><span class="p">)</span><span class="o">-></span><span class="p">{</span>
<span class="c1">// 汇总结果</span>
<span class="k">return</span><span class="n">combineResults</span><span class="p">(</span><span class="n">results</span><span class="p">);</span>
<span class="p">})</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="n">parallelWorkflow</span><span class="p">.</span><span class="na">execute</span><span class="p">(</span><span class="k">new</span><span class="n">Message</span><span class="p">(</span><span class="s">"分析这个产品的优缺点"</span><span class="p">));</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre>
</div>
<h3 id="44">4.4 优势</h3>
<table>
<thead>
<tr><th>优势</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>多智能体专长</strong></td>
<td>专注于多智能体协作场景</td>
</tr>
<tr>
<td><strong>编排灵活</strong></td>
<td>支持多种工作流模式</td>
</tr>
<tr>
<td><strong>阿里生态</strong></td>
<td>与通义千问深度整合</td>
</tr>
<tr>
<td><strong>可视化支持</strong></td>
<td>提供智能体交互可视化工具</td>
</tr>
<tr>
<td><strong>容错机制</strong></td>
<td>内置失败重试和降级处理</td>
</tr>
<tr>
<td><strong>中文支持好</strong></td>
<td>中文文档和社区支持完善</td>
</tr>
</tbody>
</table>
<h3 id="45">4.5 适用场景</h3>
<ul>
<li>多智能体协作应用</li>
<li>复杂任务编排需求</li>
<li>阿里云/通义千问用户</li>
<li>需要可视化的场景</li>
</ul>
<h3 id="46">4.6 版本信息</h3>
<ul>
<li><strong>最新版本</strong>:0.2.x(2026 年)</li>
<li><strong>Java 要求</strong>:Java 17+</li>
<li><strong>开源许可</strong>:Apache 2.0</li>
<li><strong>GitHub</strong>:Alibaba 组织下</li>
</ul>
<hr>
<h2 id="spring-ai-alibaba">五、Spring AI Alibaba</h2>
<h3 id="51">5.1 简介</h3>
<p><strong>Spring AI Alibaba</strong> 是阿里巴巴基于 Spring AI 扩展的 AI 框架,专为 Java 开发者提供阿里云和大模型生态的深度整合。该框架在 Spring AI 的基础上,增加了对通义千问、阿里云百炼平台等阿里系产品的原生支持。</p>
<p>Spring AI Alibaba 的核心理念是:<strong>让中国开发者更便捷地使用阿里 AI 生态</strong>。</p>
<h3 id="52">5.2 核心功能</h3>
<table>
<thead>
<tr><th>功能模块</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>DashScope 集成</strong></td>
<td>原生支持通义千问系列模型</td>
</tr>
<tr>
<td><strong>阿里云百炼</strong></td>
<td>深度整合阿里云百炼平台</td>
</tr>
<tr>
<td><strong>向量检索</strong></td>
<td>支持阿里云 OpenSearch 向量检索</td>
</tr>
<tr>
<td><strong>函数计算</strong></td>
<td>与阿里云函数计算 FC 集成</td>
</tr>
<tr>
<td><strong>ACM 配置</strong></td>
<td>支持阿里云配置中心</td>
</tr>
<tr>
<td><strong>ARMS 监控</strong></td>
<td>集成阿里云应用监控</td>
</tr>
<tr>
<td><strong>Spring AI 兼容</strong></td>
<td>完全兼容 Spring AI 标准 API</td>
</tr>
<tr>
<td><strong>中文文档</strong></td>
<td>完善的中文文档和示例</td>
</tr>
</tbody>
</table>
<h3 id="53">5.3 代码示例</h3>
<div class="codehilite">
<pre><code><span class="kn">import</span><span class="nn">org.springframework.ai.alibaba.dashscope.chat.DashScopeChatModel</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">org.springframework.ai.chat.client.ChatClient</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">org.springframework.boot.autoconfigure.SpringBootApplication</span><span class="p">;</span>
<span class="kn">import</span><span class="nn">org.springframework.context.annotation.Bean</span><span class="p">;</span>
<span class="nd">@SpringBootApplication</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">SpringAiAlibabaDemo</span><span class="p">{</span>
<span class="kd">public</span><span class="kd">static</span><span class="kt">void</span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="n">args</span><span class="p">)</span><span class="p">{</span>
<span class="n">SpringApplication</span><span class="p">.</span><span class="na">run</span><span class="p">(</span><span class="n">SpringAiAlibabaDemo</span><span class="p">.</span><span class="na">class</span><span class="p">,</span><span class="n">args</span><span class="p">);</span>
<span class="p">}</span>
<span class="c1">// 配置 DashScope 模型</span>
<span class="nd">@Bean</span>
<span class="kd">public</span><span class="n">DashScopeChatModel</span><span class="nf">dashScopeChatModel</span><span class="p">()</span><span class="p">{</span>
<span class="k">return</span><span class="n">DashScopeChatModel</span><span class="p">.</span><span class="na">builder</span><span class="p">()</span>
<span class="p">.</span><span class="na">apiKey</span><span class="p">(</span><span class="n">System</span><span class="p">.</span><span class="na">getenv</span><span class="p">(</span><span class="s">"DASHSCOPE_API_KEY"</span><span class="p">))</span>
<span class="p">.</span><span class="na">modelName</span><span class="p">(</span><span class="s">"qwen-max"</span><span class="p">)</span>
<span class="p">.</span><span class="na">temperature</span><span class="p">(</span><span class="mf">0.7</span><span class="p">)</span>
<span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="p">}</span>
<span class="c1">// 使用 ChatClient</span>
<span class="nd">@Bean</span>
<span class="kd">public</span><span class="n">ChatClient</span><span class="nf">chatClient</span><span class="p">(</span><span class="n">DashScopeChatModel</span><span class="n">chatModel</span><span class="p">)</span><span class="p">{</span>
<span class="k">return</span><span class="n">ChatClient</span><span class="p">.</span><span class="na">builder</span><span class="p">(</span><span class="n">chatModel</span><span class="p">).</span><span class="na">build</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="c1">// 使用通义千问进行对话</span>
<span class="nd">@RestController</span>
<span class="nd">@RequestMapping</span><span class="p">(</span><span class="s">"/api"</span><span class="p">)</span>
<span class="kd">public</span><span class="kd">class</span> <span class="nc">AiController</span><span class="p">{</span>
<span class="kd">private</span><span class="kd">final</span><span class="n">ChatClient</span><span class="n">chatClient</span><span class="p">;</span>
<span class="kd">public</span><span class="nf">AiController</span><span class="p">(</span><span class="n">ChatClient</span><span class="n">chatClient</span><span class="p">)</span><span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="na">chatClient</span><span class="o">=</span><span class="n">chatClient</span><span class="p">;</span>
<span class="p">}</span>
<span class="nd">@PostMapping</span><span class="p">(</span><span class="s">"/chat"</span><span class="p">)</span>
<span class="kd">public</span><span class="n">String</span><span class="nf">chat</span><span class="p">(</span><span class="nd">@RequestBody</span><span class="n">String</span><span class="n">message</span><span class="p">)</span><span class="p">{</span>
<span class="k">return</span><span class="n">chatClient</span><span class="p">.</span><span class="na">prompt</span><span class="p">()</span>
<span class="p">.</span><span class="na">user</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
<span class="p">.</span><span class="na">call</span><span class="p">()</span>
<span class="p">.</span><span class="na">content</span><span class="p">();</span>
<span class="p">}</span>
<span class="c1">// 使用 RAG</span>
<span class="nd">@PostMapping</span><span class="p">(</span><span class="s">"/rag"</span><span class="p">)</span>
<span class="kd">public</span><span class="n">String</span><span class="nf">rag</span><span class="p">(</span><span class="nd">@RequestBody</span><span class="n">String</span><span class="n">question</span><span class="p">)</span><span class="p">{</span>
<span class="k">return</span><span class="n">chatClient</span><span class="p">.</span><span class="na">prompt</span><span class="p">()</span>
<span class="p">.</span><span class="na">user</span><span class="p">(</span><span class="n">question</span><span class="p">)</span>
<span class="p">.</span><span class="na">advisors</span><span class="p">(</span><span class="n">a</span><span class="o">-></span><span class="n">a</span><span class="p">.</span><span class="na">param</span><span class="p">(</span><span class="s">"rag"</span><span class="p">,</span><span class="kc">true</span><span class="p">))</span>
<span class="p">.</span><span class="na">call</span><span class="p">()</span>
<span class="p">.</span><span class="na">content</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre>
</div>
<h3 id="54">5.4 优势</h3>
<table>
<thead>
<tr><th>优势</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring AI 兼容</strong></td>
<td>完全兼容 Spring AI,迁移成本低</td>
</tr>
<tr>
<td><strong>通义千问原生</strong></td>
<td>对通义系列模型深度优化</td>
</tr>
<tr>
<td><strong>阿里云整合</strong></td>
<td>与阿里云服务无缝对接</td>
</tr>
<tr>
<td><strong>中文支持</strong></td>
<td>中文文档、示例、社区完善</td>
</tr>
<tr>
<td><strong>成本优势</strong></td>
<td>阿里云价格相对优惠</td>
</tr>
<tr>
<td><strong>本地化服务</strong></td>
<td>国内部署,低延迟,合规性好</td>
</tr>
</tbody>
</table>
<h3 id="55">5.5 适用场景</h3>
<ul>
<li>阿里云用户</li>
<li>需要使用通义千问模型</li>
<li>国内企业,需要数据合规</li>
<li>Spring Boot 项目快速集成 AI</li>
</ul>
<h3 id="56">5.6 版本信息</h3>
<ul>
<li><strong>最新版本</strong>:1.0.x(2026 年)</li>
<li><strong>Java 要求</strong>:Java 17+</li>
<li><strong>Spring Boot</strong>:3.x/4.x</li>
<li><strong>开源许可</strong>:Apache 2.0</li>
</ul>
<hr>
<h2 id="_1">六、全方面对比</h2>
<h3 id="61">6.1 核心功能对比</h3>
<table>
<thead>
<tr><th>功能</th><th>Spring AI</th><th>LangChain4j</th><th>Semantic Kernel</th><th>AgentScope-Java</th><th>Spring AI Alibaba</th></tr>
</thead>
<tbody>
<tr>
<td><strong>LLM 对话</strong></td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td><strong>Function Calling</strong></td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td><strong>RAG 支持</strong></td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td><strong>Vector Store</strong></td>
<td>✅ (多集成)</td>
<td>✅ (20+ 集成)</td>
<td>✅</td>
<td>✅</td>
<td>✅ (阿里云)</td>
</tr>
<tr>
<td><strong>智能体框架</strong></td>
<td>⚠️ (基础)</td>
<td>✅ (完整)</td>
<td>✅ (Agent Framework)</td>
<td>✅ (多智能体)</td>
<td>⚠️ (基础)</td>
</tr>
<tr>
<td><strong>多智能体协作</strong></td>
<td>❌</td>
<td>✅</td>
<td>✅</td>
<td>✅ (核心)</td>
<td>❌</td>
</tr>
<tr>
<td><strong>流式响应</strong></td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td><strong>记忆管理</strong></td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td><strong>插件系统</strong></td>
<td>⚠️</td>
<td>✅</td>
<td>✅ (核心)</td>
<td>✅</td>
<td>⚠️</td>
</tr>
<tr>
<td><strong>可视化</strong></td>
<td>❌</td>
<td>❌</td>
<td>❌</td>
<td>✅</td>
<td>❌</td>
</tr>
</tbody>
</table>
<h3 id="62">6.2 模型支持对比</h3>
<table>
<thead>
<tr><th>框架</th><th>模型提供商</th><th>国内模型</th><th>本地模型</th><th>多模态</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring AI</strong></td>
<td>20+</td>
<td>⚠️ (需配置)</td>
<td>✅ (Ollama)</td>
<td>✅</td>
</tr>
<tr>
<td><strong>LangChain4j</strong></td>
<td>50+</td>
<td>✅ (百度、讯飞等)</td>
<td>✅ (Ollama、LM Studio)</td>
<td>✅</td>
</tr>
<tr>
<td><strong>Semantic Kernel</strong></td>
<td>15+</td>
<td>⚠️</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td><strong>AgentScope-Java</strong></td>
<td>10+</td>
<td>✅ (通义为主)</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td><strong>Spring AI Alibaba</strong></td>
<td>5+</td>
<td>✅ (通义全系列)</td>
<td>⚠️</td>
<td>✅</td>
</tr>
</tbody>
</table>
<h3 id="63">6.3 生态整合对比</h3>
<table>
<thead>
<tr><th>框架</th><th>Spring 整合</th><th>阿里云</th><th>Azure</th><th>微软生态</th><th>其他</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring AI</strong></td>
<td>✅ (原生)</td>
<td>⚠️</td>
<td>✅</td>
<td>❌</td>
<td>AWS、GCP</td>
</tr>
<tr>
<td><strong>LangChain4j</strong></td>
<td>✅ (扩展)</td>
<td>⚠️</td>
<td>⚠️</td>
<td>❌</td>
<td>Quarkus 等</td>
</tr>
<tr>
<td><strong>Semantic Kernel</strong></td>
<td>⚠️</td>
<td>❌</td>
<td>✅ (深度)</td>
<td>✅ (M365)</td>
<td>-</td>
</tr>
<tr>
<td><strong>AgentScope-Java</strong></td>
<td>⚠️</td>
<td>✅ (深度)</td>
<td>❌</td>
<td>❌</td>
<td>-</td>
</tr>
<tr>
<td><strong>Spring AI Alibaba</strong></td>
<td>✅ (原生)</td>
<td>✅ (深度)</td>
<td>❌</td>
<td>❌</td>
<td>-</td>
</tr>
</tbody>
</table>
<h3 id="64">6.4 性能对比</h3>
<table>
<thead>
<tr><th>框架</th><th>启动速度</th><th>内存占用</th><th>推理延迟</th><th>并发支持</th><th>资源效率</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring AI</strong></td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>LangChain4j</strong></td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Semantic Kernel</strong></td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>AgentScope-Java</strong></td>
<td>⭐⭐</td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Spring AI Alibaba</strong></td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
</tr>
</tbody>
</table>
<h3 id="65">6.5 易用性对比</h3>
<table>
<thead>
<tr><th>框架</th><th>学习曲线</th><th>文档质量</th><th>示例丰富度</th><th>社区活跃</th><th>调试友好</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring AI</strong></td>
<td>⭐⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>LangChain4j</strong></td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Semantic Kernel</strong></td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>AgentScope-Java</strong></td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐</td>
<td>⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Spring AI Alibaba</strong></td>
<td>⭐⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐</td>
<td>⭐⭐⭐⭐⭐</td>
</tr>
</tbody>
</table>
<h3 id="66">6.6 社区与生态对比</h3>
<table>
<thead>
<tr><th>框架</th><th>GitHub Stars</th><th>最后更新</th><th>维护团队</th><th>商业支持</th><th>中文社区</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring AI</strong></td>
<td>5k+</td>
<td>2026</td>
<td>VMware 官方</td>
<td>VMware</td>
<td>⭐⭐⭐</td>
</tr>
<tr>
<td><strong>LangChain4j</strong></td>
<td>13k+</td>
<td>2026</td>
<td>开源社区</td>
<td>多家</td>
<td>⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Semantic Kernel</strong></td>
<td>20k+ (全语言)</td>
<td>2026</td>
<td>微软官方</td>
<td>微软</td>
<td>⭐⭐⭐</td>
</tr>
<tr>
<td><strong>AgentScope-Java</strong></td>
<td>2k+</td>
<td>2026</td>
<td>阿里达摩院</td>
<td>阿里云</td>
<td>⭐⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Spring AI Alibaba</strong></td>
<td>3k+</td>
<td>2026</td>
<td>阿里团队</td>
<td>阿里云</td>
<td>⭐⭐⭐⭐⭐</td>
</tr>
</tbody>
</table>
<h3 id="67">6.7 综合评分</h3>
<table>
<thead>
<tr><th>框架</th><th>功能完整性</th><th>性能</th><th>易用性</th><th>生态</th><th>社区</th><th>综合</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring AI</strong></td>
<td>8.5</td>
<td>8.5</td>
<td>9.5</td>
<td>9.0</td>
<td>8.0</td>
<td><strong>8.7</strong></td>
</tr>
<tr>
<td><strong>LangChain4j</strong></td>
<td>9.5</td>
<td>9.0</td>
<td>8.5</td>
<td>8.5</td>
<td>9.0</td>
<td><strong>8.9</strong></td>
</tr>
<tr>
<td><strong>Semantic Kernel</strong></td>
<td>8.5</td>
<td>8.5</td>
<td>8.0</td>
<td>9.0</td>
<td>7.5</td>
<td><strong>8.3</strong></td>
</tr>
<tr>
<td><strong>AgentScope-Java</strong></td>
<td>8.0</td>
<td>7.5</td>
<td>7.5</td>
<td>7.5</td>
<td>7.0</td>
<td><strong>7.5</strong></td>
</tr>
<tr>
<td><strong>Spring AI Alibaba</strong></td>
<td>8.0</td>
<td>8.5</td>
<td>9.0</td>
<td>8.5</td>
<td>8.5</td>
<td><strong>8.5</strong></td>
</tr>
</tbody>
</table>
<hr>
<h2 id="_2">七、选型建议</h2>
<h3 id="71">7.1 按场景推荐</h3>
<table>
<thead>
<tr><th>场景</th><th>首选框架</th><th>备选框架</th><th>理由</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring Boot 项目集成 AI</strong></td>
<td>Spring AI</td>
<td>Spring AI Alibaba</td>
<td>原生集成,零学习成本</td>
</tr>
<tr>
<td><strong>复杂智能体应用</strong></td>
<td>LangChain4j</td>
<td>AgentScope-Java</td>
<td>智能体功能最完整</td>
</tr>
<tr>
<td><strong>多智能体协作</strong></td>
<td>AgentScope-Java</td>
<td>LangChain4j</td>
<td>专为多智能体设计</td>
</tr>
<tr>
<td><strong>微软/Azure 生态</strong></td>
<td>Semantic Kernel</td>
<td>Spring AI</td>
<td>Azure 深度整合</td>
</tr>
<tr>
<td><strong>阿里云/通义千问</strong></td>
<td>Spring AI Alibaba</td>
<td>AgentScope-Java</td>
<td>阿里生态原生支持</td>
</tr>
<tr>
<td><strong>国内企业合规</strong></td>
<td>Spring AI Alibaba</td>
<td>AgentScope-Java</td>
<td>国内部署,数据合规</td>
</tr>
<tr>
<td><strong>快速原型验证</strong></td>
<td>LangChain4j</td>
<td>Spring AI</td>
<td>示例丰富,上手快</td>
</tr>
<tr>
<td><strong>生产级企业应用</strong></td>
<td>Spring AI</td>
<td>LangChain4j</td>
<td>企业级特性完善</td>
</tr>
<tr>
<td><strong>需要 MCP 支持</strong></td>
<td>LangChain4j</td>
<td>-</td>
<td>MCP 支持最完善</td>
</tr>
<tr>
<td><strong>Microsoft 365 集成</strong></td>
<td>Semantic Kernel</td>
<td>-</td>
<td>M365 原生支持</td>
</tr>
</tbody>
</table>
<h3 id="72">7.2 按团队背景推荐</h3>
<table>
<thead>
<tr><th>团队背景</th><th>推荐框架</th><th>理由</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring 技术栈</strong></td>
<td>Spring AI / Spring AI Alibaba</td>
<td>零学习成本,无缝集成</td>
</tr>
<tr>
<td><strong>Python 迁移团队</strong></td>
<td>LangChain4j</td>
<td>API 与 LangChain 高度一致</td>
</tr>
<tr>
<td><strong>微软/.NET 背景</strong></td>
<td>Semantic Kernel</td>
<td>多语言 API 一致</td>
</tr>
<tr>
<td><strong>阿里技术栈</strong></td>
<td>Spring AI Alibaba / AgentScope-Java</td>
<td>阿里生态深度整合</td>
</tr>
<tr>
<td><strong>初创团队</strong></td>
<td>LangChain4j</td>
<td>灵活、功能全、社区活跃</td>
</tr>
<tr>
<td><strong>大型企业</strong></td>
<td>Spring AI</td>
<td>企业级特性、官方支持</td>
</tr>
</tbody>
</table>
<h3 id="73">7.3 组合使用建议</h3>
<p>实际项目中,可以<strong>根据模块需求组合使用</strong>:</p>
<div class="codehilite">
<pre><code>┌─────────────────────────────────────────────────────────┐
│ 企业级 AI 应用架构示例 │
├─────────────────────────────────────────────────────────┤
│Web 层:Spring Boot + Spring AI (统一入口) │
│业务层:LangChain4j (复杂智能体逻辑) │
│多智能体:AgentScope-Java (协作任务编排) │
│云服务:Spring AI Alibaba (阿里云服务集成) │
│微软集成:Semantic Kernel (M365/Azure 特定功能) │
│数据层:统一 Vector Store 抽象 │
└─────────────────────────────────────────────────────────┘
</code></pre>
</div>
<h3 id="74">7.4 迁移路径建议</h3>
<table>
<thead>
<tr><th>当前状态</th><th>目标框架</th><th>迁移难度</th><th>建议</th></tr>
</thead>
<tbody>
<tr>
<td>无 AI 能力</td>
<td>Spring AI</td>
<td>低</td>
<td>Spring 项目首选</td>
</tr>
<tr>
<td>无 AI 能力</td>
<td>LangChain4j</td>
<td>中</td>
<td>需要灵活架构时</td>
</tr>
<tr>
<td>Python LangChain</td>
<td>LangChain4j</td>
<td>中</td>
<td>API 相似度高</td>
</tr>
<tr>
<td>Spring AI</td>
<td>Spring AI Alibaba</td>
<td>低</td>
<td>几乎无需改动</td>
</tr>
<tr>
<td>其他框架</td>
<td>LangChain4j</td>
<td>中</td>
<td>功能最完整</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="_3">八、总结</h2>
<h3 id="81">8.1 框架定位对比</h3>
<table>
<thead>
<tr><th>框架</th><th>核心定位</th><th>推荐指数</th><th>成熟度</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Spring AI</strong></td>
<td>Spring 生态官方 AI 扩展</td>
<td>⭐⭐⭐⭐⭐</td>
<td>成熟</td>
</tr>
<tr>
<td><strong>LangChain4j</strong></td>
<td>Java 版 LangChain 完整实现</td>
<td>⭐⭐⭐⭐⭐</td>
<td>成熟</td>
</tr>
<tr>
<td><strong>Semantic Kernel</strong></td>
<td>微软 AI 应用 SDK</td>
<td>⭐⭐⭐⭐</td>
<td>成熟</td>
</tr>
<tr>
<td><strong>AgentScope-Java</strong></td>
<td>多智能体协作框架</td>
<td>⭐⭐⭐</td>
<td>发展中</td>
</tr>
<tr>
<td><strong>Spring AI Alibaba</strong></td>
<td>阿里 AI 生态 Spring 扩展</td>
<td>⭐⭐⭐⭐</td>
<td>成熟</td>
</tr>
</tbody>
</table>
<h3 id="82">8.2 选型核心原则</h3>
<ol>
<li><strong>生态优先</strong>:优先选择与现有技术栈匹配的框架</li>
<li><strong>场景匹配</strong>:根据智能体复杂度选择(单智能体 vs 多智能体)</li>
<li><strong>云服务对齐</strong>:与主要云服务商保持一致</li>
<li><strong>团队能力</strong>:考虑团队学习成本和技术储备</li>
<li><strong>长期维护</strong>:选择活跃维护、有商业支持的框架</li>
<li><strong>PoC 验证</strong>:对候选框架进行小规模概念验证</li>
</ol>
<h3 id="83-2026">8.3 2026 年趋势展望</h3>
<ul>
<li><strong>标准化加速</strong>:MCP(Model Context Protocol)成为智能体通信标准</li>
<li><strong>多智能体普及</strong>:从单智能体向多智能体协作演进</li>
<li><strong>企业级增强</strong>:安全、监控、治理功能持续完善</li>
<li><strong>本地模型支持</strong>:Ollama、LM Studio 等本地模型集成更完善</li>
<li><strong>低代码集成</strong>:可视化编排工具逐渐成熟</li>
</ul>
<h3 id="84">8.4 最终建议</h3>
<table>
<thead>
<tr><th>优先级</th><th>框架</th><th>适用情况</th></tr>
</thead>
<tbody>
<tr>
<td><strong>首选</strong></td>
<td>Spring AI</td>
<td>Spring Boot 项目、企业级应用</td>
</tr>
<tr>
<td><strong>首选</strong></td>
<td>LangChain4j</td>
<td>复杂智能体、灵活架构需求</td>
</tr>
<tr>
<td><strong>推荐</strong></td>
<td>Spring AI Alibaba</td>
<td>阿里云用户、国内企业</td>
</tr>
<tr>
<td><strong>推荐</strong></td>
<td>Semantic Kernel</td>
<td>微软/Azure 生态用户</td>
</tr>
<tr>
<td><strong>特定场景</strong></td>
<td>AgentScope-Java</td>
<td>多智能体协作专用场景</td>
</tr>
</tbody>
</table>
<p>Java AI 智能体开发框架已进入成熟期,开发者可根据项目需求选择最适合的框架。无论选择哪个框架,<strong>理解智能体设计模式、掌握 Prompt 工程、熟悉向量检索</strong>都是必备技能。</p>
<hr>
<h2 id="_4">参考资源</h2>
<ul>
<li><strong>Spring AI 官方文档</strong>:https://spring.io/ai</li>
<li><strong>LangChain4j 文档</strong>:https://docs.langchain4j.dev/</li>
<li><strong>Semantic Kernel Java</strong>:https://github.com/microsoft/semantic-kernel-java</li>
<li><strong>AgentScope-Java</strong>:https://github.com/modelscope/agentscope-java</li>
<li><strong>Spring AI Alibaba</strong>:https://github.com/alibaba/spring-ai-alibaba</li>
<li><strong>Microsoft Agent Framework</strong>:https://github.com/microsoft/agent-framework</li>
</ul>
<hr>
<p><em>本文发表于 2026 年 3 月,框架版本信息可能随时间变化,请以官方文档为准。</em></p><br><br>
来源:https://www.cnblogs.com/JackpotHan/p/19784220
頁:
[1]