Java 做 AI Agent的技术选型
一、整体架构分层
AI Agent 核心分层:大模型调用层 → Agent 编排 / 工具调度层 → 记忆 / 向量存储层 → 工具函数层 → 业务应用层。
目前Java稍微成熟的框架,有:
- Spring AI 2.x
- Spring AI Alibaba 1.1.2.1+
- LangChain4j
- AgentScope
这里先简单聊聊。
二、框架
1. Spring AI 2.x(26年官方重构了1.x 主推,生产首选)
优势
- Spring 生态无缝集成,Boot Starter 一键接入,企业 Java 最友好
- 完整 Agent 能力:工具调用 (Tool Calling)、RAG、记忆、多模型、Agent 流程编排
- 内置向量库、文档解析、提示词模板、流式输出
- 支持函数调用、多轮对话记忆、规划型 Agent (ReAct)
支持模型厂商
OpenAI、通义千问、文心一言、讯飞星火、Ollama 本地大模型、Azure OpenAI、Anthropic Claude
核心 Agent 能力
- ChatClient:基础对话
- ToolCallback:自定义工具,自动让 LLM 选择调用 Java 方法
- Agent:ReAct、Plan-Solve、多 Agent 协作
- Memory:会话内存、持久化 Redis 记忆
- RAG Pipeline:文档加载、切片、向量化、检索
2. LangChain4j(LangChain Java 移植,生态最全)
优势
- 最早成熟 Java Agent 框架,Agent 范式覆盖最全:ReAct、Self-Ask、PlanAndExecute、Multi-Agent
- 工具调用、持久记忆、向量存储、文档分割器高度完善
- 本地 Ollama、LLaMA、Qwen 本地模型友好
- 支持 Agent 记忆持久化(Redis/MongoDB)、自动工具路由
适合场景
本地私有化大模型、复杂多步骤 Agent、存量非 Spring 项目
3.Spring AI Alibaba
和阿里云的模型结合很好。
4.AgentScope
还没有用过,用过后再评
轻量自研
其实没有框架也能做,不引入重型框架,仅用 HTTP 客户端 + 工具封装:
HTTP:OkHttp、Spring WebClient
手动实现:提示词管理、工具调用解析、多轮记忆、ReAct 循环
适合极简单 Agent、低并发、轻量化服务,缺点:需自行实现 RAG、记忆、多 Agent 调度。
附录:使用Spring AI 2.x 让他讲一个笑话
@RestController
public class AiDemoController {
@Resource
private OpenAiChatModel chatModel;
@GetMapping("/ai/generate")
public Map<String, String> generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", this.chatModel.call(message));
}
}
###
GET http://localhost:8080/ai/generate?
message=给儿童讲一个中文的笑话
{
"generation": "好的,这是一个适合小朋友的笑话:\n\n---\n\n**小兔子买胡萝卜**\n\n小兔子走进商店,问:“老板,有胡萝卜吗?” \n老板说:“没有。” \n\n第二天,小兔子又来了:“老板,有胡萝卜吗?” \n老板说:“没有没有!” \n\n第三天,小兔子又来了:“老板,有胡萝卜吗?” \n老板生气了,大声说:“没有!再说我就把你的长耳朵剪掉!” \n\n小兔子吓得跑掉了。 \n\n第四天,小兔子又来了,小声问:“老板……有剪刀吗?” \n老板说:“没有。” \n小兔子马上问:“那……有胡萝卜吗?” \n\n老板哭笑不得:“没有!” \n\n小兔子开心地跳走了:“那明天再来问问看!” \n\n---\n\n这个故事告诉小朋友:有时候,坚持也是一种可爱哦!🐰🥕"
}

浙公网安备 33010602011771号