news 2026/3/31 15:51:12

又一个项级的 Java Multi Agent 开源项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
又一个项级的 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 为什么强?

  1. 八大协作协议(TeamProtocols):这是它的杀手锏。从顺序流(Sequential)、层级制(Hierarchical)到去中心化的点对点(A2A)和模拟生物逻辑的蜂群协议(Swarm),它把多智能体协作玩出了花。
  2. 死循环熔断机制:独创的“信息素惩罚”机制,能自动发现并拦截智能体之间的“踢皮球”行为,防止 Token 在死循环中白白燃烧。
  3. 确定性保障:内置 TeamTrace 溯源。Agent 之间怎么沟通的、谁在摸鱼、谁在胡言乱语,路径回放得清清楚楚。
  4. Java 原生友好:利用@ToolMapping注解,直接把你的 Java 方法变成 Agent 的技能,配合 ONode 进行结构化数据处理,对 Java 开发者极其友好。
  5. 极致性能:延续了 Solon 框架的基因,包体积极小,冷启动飞快。

快速入门

1) 引入依赖

在你的 pom.xml 中引入 Solon AI 的智能体核心包:

/* by yours.tools - online tools website : yours.tools/zh/generatepolkadotwallets.html */ <dependency> <groupId>org.noear</groupId> <artifactId>solon-ai-agent</artifactId> </dependency>
2) 基础智能体创建

只需几行代码,就能创建一个具备身份意识的 Agent。

/* by yours.tools - online tools website : yours.tools/zh/generatepolkadotwallets.html */ // 初始化模型(支持 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 开发者一个强大的武器库:

  1. 不再需要羡慕 Python 生态:Java 同样能优雅地玩转 Multi-Agent。
  2. 工程化程度极高:它解决了 AI 输出不可控、协作过程黑盒等生产痛点。
  3. 微服务天然集成:每一个 Team 都可以是一个微服务,这太符合企业级架构的演进方向了。

如果你正准备在 Java 项目里接入 Agent,Solon AI 绝对值得你加入 Star 列表。

Github 地址:https://github.com/noear/solon-ai

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/26 19:17:30

OpenCode版本升级:新特性迁移指南

OpenCode版本升级&#xff1a;新特性迁移指南 1. 引言 1.1 技术背景与升级动因 OpenCode 自 2024 年开源以来&#xff0c;凭借其“终端优先、多模型支持、隐私安全”的设计理念&#xff0c;迅速在开发者社区中获得广泛认可。项目以 Go 语言构建&#xff0c;采用客户端/服务器…

作者头像 李华
网站建设 2026/3/26 14:33:46

LessMSI(MSI安装包查看和提取工具)

LessMSI是开源、轻量级的工具&#xff0c;基于.NET构建&#xff0c;集图形界面和命令行接口于一体。它主要用于查看、提取、解析和管理MSI文件的内容&#xff0c;无需安装原始应用程序&#xff0c;为开发人员、系统管理员以及IT专业人员在软件部署和管理过程中提供了极大的便利…

作者头像 李华
网站建设 2026/3/27 18:51:02

软件测试入门必知必会的7个测试工具

一、功能测试&#xff1a;Selenium 为什么必学&#xff1f; 行业标准&#xff1a;Web自动化测试的事实标准 生态丰富&#xff1a;支持多语言(Java/Python/C#)、多浏览器 就业刚需&#xff1a;90%的自动化测试岗位要求掌握 入门示例 from selenium import webdriver from …

作者头像 李华
网站建设 2026/3/31 0:48:07

python之lession4

Python对象 一、不可变对象 Number数字 String字符串从上述代码中可以看出&#xff0c;不能够改变字符串的内容&#xff0c;但是可以改变str这个变量指向的位置 Tuple元组可以看到Tuple的指向是可以修改的&#xff0c;就是Tuple这个元组的变量名字tuple1&#xff0c;你可以决定…

作者头像 李华
网站建设 2026/3/24 11:16:16

校园墙小程序 表白墙

目录校园墙小程序表白墙摘要开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;校园墙小程序表白墙摘要 校园墙小程序中的表白墙是一个专为学生设计的匿名社交功能&#xff0c;旨在提供情感表达和互动的平台。用户可以通过匿名或公…

作者头像 李华
网站建设 2026/3/27 11:47:15

手工测试与自动化测试:不是“二选一”,而是“左右手”!

在软件测试领域&#xff0c;自动化测试凭借能够减少重复操作、提升测试效率、保障回归测试一致性等优势&#xff0c;成为很多团队提升测试工作质量的重要选择。 不过&#xff0c;在实际应用中&#xff0c;很多人对自动化测试存在认知偏差&#xff0c;陷入了各种误区&#xff0…

作者头像 李华