你好,我是阿喷鼻。
前几天,技巧群里的小伙伴一向在安利 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 的技能,合营>在你的 pom.xml 中引入 Solon AI 的智能体核心包:假如你正预备在 Java 项目里接入 Agent,Solon AI 绝对值得你参加 Star 列表。
进阶才能:不只是协作
- A2A(Agent-to-Agent)协定:支撑 Agent 之间的“直接移交”。当 A 处理不了时,它可以直接把义务“甩”给 B,响应速度极快。
- 构造化输出控制:经由过程>assert team.getTrace(session).getRecords().stream() .anyMatch(s -> ContractNetProtocol.ID_BIDDING.equals(s.getSource()))。
总结
<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 = ReActAgent.of(chatModel).name("WebDeveloper") .systemPrompt(ReActSystemPrompt.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);}研究完 Solon AI 后,我最大年夜的感触感染是:AI 应用开辟正在从“单兵作战”转向“兵团作战”。
Solon AI 的出现,给了 Java 开辟者一个强大年夜的兵器库:
- 不再须要爱慕 Python 生态:Java 同样能优雅地玩转 Multi-Agent。
- 工程化程度极高:它解决了 AI 输出弗成控、协作过程黑盒等临盆痛点。
- 微办事天然集成:每一个 Team 都可所以一个微办事,这太相符企业级架构的演进偏向了。
Github 地址:https://github.com/noear/solon-ai

发表评论 取消回复