什么是 Solon AI?
Solon AI 是 Solon 生态中专注 AI 应用开发的轻量级框架。如果说大语言模型(LLM)是 AI 的大脑,那么 Solon AI 就是它的'神经中枢'和'拓扑指挥官'。它不仅仅提供了多智能体协作的架构,其核心竞争力在于:极致的轻量化、多协议编排能力以及天然的微服务基因。
Solon AI 与 Spring 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 = 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();
// 执行任务
InMemoryAgentSession.of();
devTeam.call(Prompt.of(), session).getContent();
devTeam.getTrace(session);
System.out.println( + trace.getRecords().stream().map(r -> r.getSource()).toList());
System.out.println( + 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 的出现,给了 Java 开发者一个强大的武器库:
- 不再需要羡慕 Python 生态:Java 同样能优雅地玩转 Multi-Agent。
- 工程化程度极高:它解决了 AI 输出不可控、协作过程黑盒等生产痛点。
- 微服务天然集成:每一个 Team 都可以是一个微服务,这太符合企业级架构的演进方向了。
Github 地址:https://github.com/opensolon/solon-ai


