solon-ai
Java AI 应用开发框架,支持 LLM 调用、RAG 知识库、MCP 协议与 ReAct/Team Agent 编排
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Java AI 应用开发框架,支持 LLM 调用、RAG 知识库、MCP 协议与 ReAct/Team Agent 编排
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Solon-AI 项目图标
张工是一名有15年经验的 Java 工程师,2023年 GPT-4 横空出世时,他正准备把手头的企业知识库系统升级为"智能问答"版本。然而当他打开 LangChain 文档,满屏的 Python 代码让他陷入困境——公司核心系统是 Java 写的,引入 Python 微服务做 AI 层意味着额外的运维成本和通信开销。
这不只是张工一个人的困境。全球企业级软件市场,Java 仍占据统治地位:银行核心系统、ERP、供应链管理、政府平台……这些系统的开发者想要拥抱 AI,却找不到一条平滑的接入路径。
Solon-AI 正是为解决这个问题而来。
Solon-AI 并非凭空诞生,而是从 Solon 这个轻量级 Java 应用开发框架(作者 noear,2019年开源)演进而来。Solon 本身以"克制、高效、开放"为设计理念,强调低启动开销和模块化,与 Spring Boot 有相似目标但更轻量。当大模型时代到来,noear 在 Solon 框架内逐步孵化出 AI 能力,并在2025年3月将这些能力整合为独立的 solon-ai 子项目。
有趣的是,Solon 项目采用了多平台同步策略:在 GitHub、Gitee(码云)、GitCode 三大平台同时维护,这在国产开源项目中相当罕见,也侧面反映了项目对社区覆盖面的重视。
项目主页 solon.noear.org 提供了完整的学习文档,同时接入了 DeepWiki AI 问答服务,开发者可以直接在 DeepWiki 上与 AI 对话来理解项目。
Solon-AI 的设计哲学可以概括为**"方言适配 + 能力模块化"**。整个项目由 30+ 个 Maven 模块组成,按功能可划分为以下几大块:
这是整个框架的入口层。Solon-AI 没有自己实现 LLM 调用,而是通过 ChatModel 统一接口 + 方言(Dialect)适配层 来接入各种大模型。这意味着无论底层是 OpenAI GPT、Anthropic Claude、Google Gemini、DeepSeek 还是本地 Ollama,调用方式都是同一套 Java API。
ChatModel chatModel = ChatModel.of("http://127.0.0.1:11434/api/chat")
.provider("ollama")
.model("qwen2.5:1.5b")
.defaultTalentAdd(new McpGatewayTalent())
.build();
这种设计在 Java 生态中有广泛先例——JDBC 通过方言驱动支持多种数据库,Hibernate 通过方言适配多种 SQL 方言——Solon-AI 将这一成熟模式移植到了 AI 领域。
Solon-AI 没有沿用 LangChain 的"Tool"概念,而是创造了更贴合 Java 习惯的 Talent(才能) 体系。每个 Talent 包含:
isSupported() 判断当前提示词是否触发该 Talent这一设计使得同一套代码可以根据运行时上下文呈现不同的 AI 行为,无需硬编码 if-else。
Solon-AI 的 RAG 模块覆盖了知识库落地的全链路:
| 环节 | 支持方案 |
|---|---|
| 文档加载 | PDF、Word、Excel、HTML、Markdown、PPT、DDL |
| 切分策略 | 正则切分、Token 数量切分 |
| 向量化 | Ollama、OpenAI、Dashscope 等 Embedding 模型 |
| 向量存储 | Chroma、Milvus、Qdrant、Pgvector、Weaviate、Redis、MySQL、MariaDB、Elasticsearch 等 12+ 种 |
| 重排序 | 支持 RerankingModel 二次排序 |
这种全链路覆盖意味着开发者可以在不引入额外库的情况下,完成从文档上传到智能问答的完整闭环。
Solon-AI 集成了 MCP 协议(Model Context Protocol,MCP_2025_06_18),支持将任何 Java 方法暴露为 MCP Tool,也支持作为 MCP Client 调用远程 MCP Server。协议支持 Streamable HTTP 通道。
@McpServerEndpoint(channel = McpChannel.STREAMABLE, mcpEndpoint = "/mcp")
public class MyMcpServer {
@ToolMapping(description = "查询天气")
public String getWeather(@Param(description = "城市") String location) {
return "晴,25度";
}
}
MCP 协议由 Anthropic 主导,是 2025 年 AI 工具生态最受关注的标准之一,Solon-AI 的跟进速度相当快。
solon-ai-harness 是框架中最具特色的模块之一。它是一个马具引擎——将各种 AI 能力"套上马具"形成可控制的 Agent。
Harness 的核心是 HarnessEngine:接收 8 个 Maven 依赖包提供的 20+ 个 Talent/组件,在构造时完成实例化,再通过 AgentFactory.create() 按 AgentDefinition 中的工具权限清单选择性注入,形成具备完整交互能力的 AI 代理。
Harness 提供了:
solon-ai-sandbox 源自 Claude Code 的 sandbox-runtime(TypeScript → Java 移植),为 AI Agent 的代码执行提供跨平台文件系统、网络和进程隔离。
sandbox-exec + Seatbeltbubblewrap (bwrap) + seccompsrt-win.exe + WFP这让 Agent 能够安全地执行用户提交的代码,而不会影响主机系统安全。
solon-ai-flow 模拟 Dify 的可视化工作流,将 RAG、提示词增强、模型调用等环节通过 YAML 描述编排,适合非程序员通过配置搭建 AI 应用。
推荐使用 Solon-AI 的场景:
不太适合 Solon-AI 的场景:
Solon-AI 是 Java 开发者进入 AI 应用开发的最短路径——用熟悉的 Java 语法,通过模块化的 Talents、RAG、MCP、Agent 组件,快速构建生产级 AI 应用,同时无缝融入 Spring Boot、Vert.X、Quarkus 等现有框架生态。
图2:ReAct Agent 架构示例