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这个故事告诉小朋友:有时候,坚持也是一种可爱哦!🐰🥕"
}
posted @ 2026-07-05 10:28  lakewatcher  阅读(6)  评论(0)    收藏  举报