用纪年标记成长

如果把一个开源框架的成长比作一个人的成长,那 Solon 现在差不多也到了"成年"的年纪。我们用纪年来标记它走过的路:

大版本 时间跨度 阶段
v0 2018 ~ 2019(约 2 年) 萌芽
v1 2020 ~ 2022(约 3 年) 打基础
v2 2023 ~ 2024(约 2 年) 成体系
v3 2024 ~ 2026(约 1.5 年) 全面铺开
v4 2026 ~ 新篇章

从 2018 年第一行代码到今天,近 40 万行代码(其中 Solon AI 体系,就占了近 18万)。Solon 从一个"想做个更轻的 Java 框架"的念头,长成了覆盖 Web、Data、AI、Cloud、安全、编排全场景,拥有 300+ 生态插件的应用开发框架。这条路不算快,但每一步都走得踏实——就像高考之后的人生,不靠一次爆发,靠的是持续的复利。

更新与兼容说明

1、概述

先说一句让大家安心的话:v4.0 总体变化不大,主要是"做减法"。

这次大版本升级的核心思路,是移除历史包袱——把那些早就标记为弃用的方法和类彻底清理掉,让框架更干净、更轻。这恰恰呼应了 Solon 一贯的"克制"哲学:不是不断往上堆东西,而是敢于把不该留的东西删掉。

唯一变化较大的,是 Solon AI 体系——我们把 skill 概念正式改为了 talent

2、v3.x 升到 v4.x 提醒(要认真核对)

  • 提醒一:之前没用过弃用接口的,可以直接升级到 v4.0.0。
  • 提醒二:用过弃用接口的,建议先升级到 3.10.7,借助编译器提醒把弃用代码替换干净后,再升级到 4.0.0。这样过渡最平滑。

完整的弃用对照表(配置 / 插件 / 注解 / 类与方法),在官方更新说明里都列得清清楚楚,升级前认真核对一遍即可。

3、AI 体系:从 skill 到 talent

这是 v4.0 最值得说的一处变更。

之前 Solon AI 里用 skill(技能)来描述给智能体扩展能力的机制。但随着 Agent(智能体)生态发展,业界普遍用 "agent skill" 来指代另一类东西,两者撞名了,容易让人困惑。

所以我们把这个概念统一改名为 talent(才能)。一字之差,消除歧义。对应的插件与类整体更名:

  • solon-ai-skill-* → solon-ai-talent-*
  • WebfetchTool / WebsearchTool / CodeSearchTool
  • → WebfetchTalent / WebsearchTalent / CodeSearchTalent
  • ApplyDiffTool / ApplyPatchTool
  • → ApplyDiffTalent / ApplyPatchTalent
  • 新增 solon-ai-talent-gateway(由原 solon-ai-skill-restapi 和 solon-ai-skill-toolgateway 合并而来)
  • 新增 solon-ai-talent-mount 才能插件(原 PoolManager 独立出来)

如果你之前用的是 solon-ai-skill-*,升级时把坐标换成 solon-ai-talent-* 即可。

4、AI 生态:跟上协议,补齐能力

AI 这一年跑得太快了,v4.0 在协议和能力上做了不少跟进:

  • 新增 mcp-core:替换之前的 mcp-sdk,与官方命名保持一致(mcp-sdk 已移除)。
  • 新增 solon-ai-sandbox:为智能体提供沙盒隔离能力。
  • MCP 协议升级solon-ai-mcp 支持 MCP_2025_11_25 协议,并支持 ServerTransportSecurityValidator 签权。
  • ReActAgent 增强maxSteps 更名为 maxTurns(贴合行业习惯);新增 getModel 方法;拦截器新增 onReasonStart 事件,onReason 相应更名为 onReasonEnd(凑成一对)。
  • 上下文压缩优化SummarizationInterceptor 更名为更贴切的 ContextCompressionInterceptor,并优化了压缩时机(从 onObservation 改到 onReasonStart)和算法,增强了对过期区 tool-use 原子序列的追溯保护。
  • TeamAgent:新增"初心标记",让多智能体协作时不容易跑偏。
  • MCP 客户端McpClientProvider 新增 allowedTools / disallowedTools 工具控制机制;默认不再启用心跳(之前默认 30 秒一次);McpProviders 更名为 McpClientProviders

这些改动,都是我们在真实的 Agent 开发里踩过坑之后做的回调。

5、生态规范化:插件"回家"

v4.0 做了一件长期来看很重要的事——让一批第三方插件回归各自官方仓库维护

过去为了方便,早先一秕第三方库的 Solon 适配是由我们社区维护的。但更健康的方式,是由库的官方团队自己维护适配。这次梳理后,下面这些插件都迁回了官方坐标(升级时需要调整 groupId):

旧坐标(已移除) 新坐标(官方维护)
mybatis-plus-solon-plugin com.baomidou:mybatis-plus-solon-plugin
mybatis-flex-solon-plugin com.mybatis-flex:mybatis-flex-solon-plugin
sa-token-solon-plugin cn.dev33:sa-token-solon-plugin
liteflow-solon-plugin com.yomahub:liteflow-solon-plugin
forest-solon-plugin com.dtflys.forest:forest-solon-plugin
sms4j-solon-plugin org.dromara.sms4j:sms4j-solon-plugin
dbvisitor-solon-plugin net.hasor:dbvisitor-solon
bean-searcher-solon-plugin cn.zhxu:bean-searcher-solon-plugin

(完整对照表见官方更新说明,这里只列了常用的几个。)

这件事短期会给升级带来一点点麻烦,但长期看,它让整个生态的协作关系更清晰、更可持续。一个框架走到 v4,要考虑的已经不只是自己跑得多快,而是整个生态能不能一起走远。

6、弃用清理:该删的删

v4.0 移除了大量历史弃用项,主要集中在几个方面,升级时编译器会给出提醒,按提示替换即可。挑几个高频的说:

注解层面:

  • @Bean(priority) → @Condition(priority)
  • @Bean(injected) → @Bean(autoInject)
  • @Tran → @Transaction

API 层面:

  • SolonApp 的路由方法(add* / get* / post* / filter* 等)统一收敛到 SolonApp.router() 下,例如 app.get(...) → app.router().get(...)
  • Utils.async* → RunUtil.async*
  • ChatMessage.template() → ChatMessage.ofUserTmpl()ChatMessage.augment() → ChatMessage.ofUserAugment()

配置层面(举例):

移除配置 替代配置
server.session.state.domain server.session.cookieDomain
solon.staticfiles.maxAge solon.staticfiles.cacheMaxAge
solon.cloud.nacos2.* solon.cloud.nacos.*

清理后,框架内核继续保持着它一贯的"克制身材"。

7、依赖升级:跟上上游

v4.0 同步升级了一大批底层依赖,让框架始终站在稳定且较新的基础之上。挑几个代表性的:

  • Socket.D 升至 2.6.0、FolkMQ 升至 1.8.0
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐