又一个项级的 Java Multi Agent 开源项目
你好,我是阿香。
前几天,技术群里的小伙伴一直在安利 Solon AI。起初我还在想,Java 生态里不是已经有 Spring AI 了吗?出于好奇,我抽空深入研究了一波,结果真香了!
这不仅是一个 AI 框架,它更像是为 Java 开发者量身定制的 “智能体指挥部”。今天就来聊聊这个让我眼前一亮的顶级 Java Multi-Agent 开源项目。
什么是 Solon AI?
简单来说,Solon AI 是 Solon 生态中专注 AI 应用开发的轻量级框架。如果说大语言模型(LLM)是 AI 的大脑,那么 Solon AI 就是它的 “神经中枢” 和 “拓扑指挥官”。
它不仅仅提供了多智能体协作的架构,其核心竞争力在于:极致的轻量化、多协议编排能力以及天然的微服务基因。
Solon AI 与 Spring AI 有哪些不同?
很多小伙伴会问:“既然有了 Spring AI,我为什么要看 Solon AI?”
两者的设计哲学完全不同:
- Spring AI:更像是一个“集成商”,侧重于把 LLM 包装成一种资源(如 Data Source 一样)融入 Spring 业务流。它擅长的是简单的 RAG 和聊天。
- Solon AI:原生为 Agentic(智能体)范式 而生。它强调的是“协议(Protocol)”,通过多种团队协议(TeamProtocols)决定任务如何在 Agent 间流转。它更适合构建像“自动化软件公司”、“复杂风控博弈”这种需要多智能体深度协作的应用。
就像我常说的:“没有银弹,选适合自己的”。如果你追求毫秒级启动、追求对协作逻辑的精细控制,Solon AI 会让你爽到飞起。
Solon AI 为什么强?
- 八大协作协议(TeamProtocols):这是它的杀手锏。从顺序流(Sequential)、层级制(Hierarchical)到去中心化的点对点(A2A)和模拟生物逻辑的蜂群协议(Swarm),它把多智能体协作玩出了花。
- 死循环熔断机制:独创的“信息素惩罚”机制,能自动发现并拦截智能体之间的“踢皮球”行为,防止 Token 在死循环中白白燃烧。
- 确定性保障:内置 TeamTrace 溯源。Agent 之间怎么沟通的、谁在摸鱼、谁在胡言乱语,路径回放得清清楚楚。
- Java 原生友好:利用
@ToolMapping注解,直接把你的 Java 方法变成 Agent 的技能,配合 ONode 进行结构化数据处理,对 Java 开发者极其友好。 - 极致性能:延续了 Solon 框架的基因,包体积极小,冷启动飞快。
快速入门
1) 引入依赖
在你的 pom.xml 中引入 Solon AI 的智能体核心包:
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-ai-agent</artifactId>
</dependency>
2) 基础智能体创建
只需几行代码,就能创建一个具备身份意识的 Agent。
// 初始化模型(支持 OpenAI, DeepSeek, Qwen 等)
ChatModel chatModel = LlmUtil.getChatModel();
// 创建一个专业助手
SimpleAgent assistant = SimpleAgent.of(chatModel)
.systemPrompt(SimpleSystemPrompt.builder()
.role("Java专家")
.instruction("你是一个精通 Solon 框架的 Java 专家。")
.build())
.build();
// 对话
String result = assistant.prompt("Solon AI 怎么选协作协议?").call().getContent();
System.out.println(result);
3) 巅峰对决:多智能体协作(TeamAgent)
这是 Solon AI 最迷人的地方。我们可以轻易编排一个智能体协作的梦之队。
public void testA2AFlowWithRole() {
ChatModel chatModel = LlmUtil.getChatModel();
// 1. 前端开发者:负责编写代码并“移交”
Agent webDeveloper = SimpleAgent.of(chatModel).name("WebDeveloper")
.systemPrompt(SimpleSystemPrompt.builder()
.role("资深前端开发者")
.instruction("任务:根据用户需求编写完整的 HTML/JS 代码。\n" +
"协作:写完后请交给 Reviewer 审查代码质量。直接输出代码,不要用 Markdown 格式。")
.build())
.build();
// 2. 审查者:负责质量把关
Agent reviewer = SimpleAgent.of(chatModel).name("Reviewer")
.systemPrompt(SimpleSystemPrompt.builder()
.role("首席架构师")
.instruction("任务:审查 WebDeveloper 提交的代码,查找安全隐患和性能瓶颈。\n" +
"协作:如果代码合格,请交给 Archiver 归档;如果不合格,请打回给 WebDeveloper。")
.build())
.build();
// 3. 归档员:负责总结
Agent archiver = SimpleAgent.of(chatModel).name("Archiver")
.systemPrompt(SimpleSystemPrompt.builder()
.role("文档管理员")
.instruction("任务:总结最终通过审查的代码功能,并生成唯一的版本快照编号。")
.build())
.build();
// 编排 A2A 团队
TeamAgent devTeam = TeamAgent.of(chatModel)
.protocol(TeamProtocols.A2A) // 核心:开启点对点直连协议
.agentAdd(webDeveloper, reviewer, archiver)
.maxTurns(6) // 兜底:防止 Reviewer 和 Developer 陷入无限改 Bug 循环
.build();
// 执行任务
AgentSession session = InMemoryAgentSession.of("project_v1");
String result = devTeam.call(Prompt.of("帮我写一个实现点击按钮换背景颜色的网页"), session).getContent();
// 溯源:你会看到 WebDeveloper -> Reviewer -> Archiver 的闪电接力
TeamTrace trace = devTeam.getTrace(session);
System.out.println("博弈链路: " + trace.getRecords().stream().map(r -> r.getSource()).toList());
System.out.println("最终交付成果:\n" + result);
}
进阶能力:不只是协作
- A2A(Agent-to-Agent)协议:支持 Agent 之间的“直接移交”。当 A 处理不了时,它可以直接把任务“甩”给 B,响应速度极快。
- 结构化输出控制:通过 ONode 配合 Prompt 约束,Solon AI 能把 AI 那些天马行空的回复,精准解析成你 Java 里的 POJO 对象。
- 路径断言单测:你可以像写 JUnit 一样写 Agent 测试。不只是断言结果字符串,而是断言执行记录:
assert team.getTrace(session).getRecords().stream()
.anyMatch(s -> ContractNetProtocol.ID_BIDDING.equals(s.getSource()))。
总结
研究完 Solon AI 后,我最大的感受是:AI 应用开发正在从“单兵作战”转向“兵团作战”。
Solon AI 的出现,给了 Java 开发者一个强大的武器库:
- 不再需要羡慕 Python 生态:Java 同样能优雅地玩转 Multi-Agent。
- 工程化程度极高:它解决了 AI 输出不可控、协作过程黑盒等生产痛点。
- 微服务天然集成:每一个 Team 都可以是一个微服务,这太符合企业级架构的演进方向了。
如果你正准备在 Java 项目里接入 Agent,Solon AI 绝对值得你加入 Star 列表。
Github 地址:https://github.com/noear/solon-ai

浙公网安备 33010602011771号