让 Java AI 再伟大些!Solon AI & MCP v3.5.1 发布

Solon AI & MCP

是 Solon 官方推出的 Java 智能体应用开发框架。旨在为 Java 开发者提供统一的接口抽象层,简化与 OpenAI、DeepSeek、QWen 等主流 AI 模型的集成流程,简化 RAG 的开发体验,简化 Mcp 的开发体验,简化 AI-Flow 的开发体验,简化 A2A 的开发体验。主要特点有:

  • 同时支持 Java 8 到 Java 24
  • 一套接口支持不同提供者、不同大模型调用(通过方言适配)
  • 支持图片生成模型(ImageModel)
  • 支持聊天生成模型(ChatModel)
  • 支持嵌入模型(EmbeddingModel)
  • 支持排序模型(RankingModel)
  • 支持 RAG 应用开发
  • 支持 MCP 协议应用开发,支持 MCP_2025-03-26 版本协议(支持 mcp streamable)
  • 支持 AI-Flow 应用开发
  • 支持 A2A 协议预览(可简化混合智能体应用的开发)
  • 支持 jFinal、Spring、Vert.x 等 Solon 之外的框架
  • 等......更多内容,参考官网介绍

最近更新了什么?

  • 新增 solon-ai-a2a 插件
  • 新增 solon-ai-core GenerateModel 接口,可替代 ImageModel
  • 新增 solon-ai-core ChatModel 增加多媒体内容输出(增强感知型模型的兼容,比如输出图片或视频)
  • 新增 solon-ai-core ImageModel 增加结构体提示语输入(比如图片编辑模型)
  • 添加 solon-ai-core AbstractChatDialect 对多媒体内容输出的支持
  • 添加 solon-ai-core AssistantMessage:contentRaw 原生内容(可能是 String、Map、List、null)
  • 添加 solon-ai-dialect-dashscope 通过接口地址识别方言
  • 添加 solon-ai-mcp McpServerEndpointProvider:Builder 添加 context-path 配置
  • 优化 solon-ai-mcp McpClientProvider 配置向 McpServers json 格式上靠
  • 修复 solon-ai-core think-> tool -> think 时,工具调用的内容无法加入到对话的问题
  • 修复 solon-ai-mcp 服务端传输层的会话长连会超时的问题
  • 修复 solon-ai-mcp 客户端提供者心跳失效的问题
  • 修复 solon-ai-mcp SSE 传输时 message 端点未附加 context-path 的问题
  • mcp McpSchema:*Capabilities 添加 @JsonIgnoreProperties(ignoreUnknown = true) 增强跨协议版本兼容性

技术预览

  • 构建聊天模型(统一方式,支持不同的模型构建)
java 复制代码
ChatModel chatModel = ChatModel.of(apiUrl).provider(provider).model(model);

//同步请求
chatModel.prompt("hello").call();

//流式请求
chatModel.prompt("hello").stream();
  • 使用 MCP
java 复制代码
//MCP 服务端
@McpServerEndpoint(channel = McpChannel.STREAMABLE, mcpEndpoint = "/mcp")
public class McpServerTool {
    //工具
    @ToolMapping(description = "查询天气预报")
    public String getWeather(@Param(description = "城市位置") String location) {
        return "晴,14度";
    }
    
    //资源
    @ResourceMapping(uri = "config://app-version", description = "获取应用版本号", mimeType = "text/config")
    public String getAppVersion() {
        return "v3.2.0";
    }
    
    //提示语
    @PromptMapping(description = "生成关于某个主题的提问")
    public Collection<ChatMessage> askQuestion(@Param(description = "主题") String topic) {
        return Arrays.asList(
                ChatMessage.ofUser("请解释一下'" + topic + "'的概念?")
        );
    }
}


//MCP 客户端
McpClientProvider clientProvider = McpClientProvider.builder()
                .channel(McpChannel.STREAMABLE)
                .apiUrl("http://localhost:8080/mcp")
                .build();

//客户端与聊天模型集成

//::构建时集成(全局)
ChatModel chatModel = ChatModel.of(apiUrl).provider(provider) .model(model)
                .defaultToolsAdd(clientProvider); 
                
//::聊天时集成(单次)
chatModel.prompt("hello").options(o -> o.toolsAdd(clientProvider)).call();

项目仓库地址?

官网?

相关推荐
Lyyaoo.2 小时前
【JAVA基础面经】JVM的内存模型
java·开发语言·jvm
杨凯凡2 小时前
【017】泛型与通配符:API 设计里怎么用省心
java·开发语言
IT利刃出鞘2 小时前
Spring工具类--ObjectUtils的使用
java·后端·spring
MY_TEUCK8 小时前
Sealos 平台部署实战指南:结合 Cursor 与版本发布流程
java·人工智能·学习·aigc
张忠琳8 小时前
【vllm】vLLM v1 KV Offload — 模块超深度逐行分析之一(七)
ai·架构·vllm
我爱cope9 小时前
【从0开始学设计模式-10| 装饰模式】
java·开发语言·设计模式
j_xxx404_9 小时前
大语言模型 (LLM) 零基础入门:核心原理、训练机制与能力全解
人工智能·ai·transformer
汪汪8888889 小时前
测试智能平台落地实践:五大核心能力破解传统测试痛点
ai
朝新_9 小时前
【Spring AI 】图像与语音模型实战
java·人工智能·spring
RH23121110 小时前
2026.4.16Linux 管道
java·linux·服务器