Skip to content

Solon Expression v4.0.0

Latest

Choose a tag to compare

@noear noear released this 10 Jun 00:33
· 2 commits to main since this release

1、纪年

  • v0: 2018 ~ 2019 (2y)
  • v1: 2020 ~ 2022 (3y)
  • v2: 2023 ~ 2024 (2y)
  • v3: 2024 ~ 2026 (1.5y)
  • v4: 2026 ~

2、v3.x 升到 v4.x 提醒

  • 提醒1:之前没有使用弃用接口的,可以直接升级
  • 提醒2:有使用弃用接口的。建议先升级到 3.10.7;替换弃用代码后,再升级到 4.0.0

总体思考是:移除弃用方法或类。总体变化不大。其中,solon ai 体系变化较大(skill 概念改为 talent)

3、更新说明(更详细内容见后面的“附件”)

for solon 生态:

  • 新增 mcp-json-jackson2
  • 新增 solon-view-aifei-enjoy 插件
  • 新增 solon-cache-caffeine3 插件
  • 新增 solon-ai-talent-gateway(由 solon-ai-skill-restapi 和 solon-ai-skill-toolgateway 合并而来)
  • 新增 solon-ai-talent-mount 才能插件
  • 添加 solon ScopeLocal.getOr(Supplier) 方法
  • 添加 solon AppContext.resolvePlaceholders 方法
  • 添加 solon-config-snack4 开放属性序列化的 Options 定制支持
  • 添加 solon-flow FlowContext.data(), serData() 方法(vars, serVars 标为弃用)
  • 调整 solon-cache-caffeine 增加 md5 控制、默认时间、缓存头控制支持
  • 调整 solon-cache-xxx enableMd5key 默认为 false
  • 调整 solon Utils.annoAlias 标为弃用(由 Utils.valueOr 替代)
  • 移除 solon-flow FlowContext.model() 方法 //.vars()
  • 移除 solon-flow Link.condition 方法 //.when
  • 移除 solon-expression StandardContext 类
  • 修复 solon-serialization-snack4 Snack4StringSerializer.name 为 “snack4-json”
  • eggg 升为 1.1.3
  • snack4 升为 4.0.52
  • liquor 升为 1.6.8
  • socketd 升为 2.6.0
  • folkmq 升为 1.8.0
  • asm 升为 9.10
  • lombok 升为 1.18.46
  • slf4j 升为 2.0.18
  • log4j 升为 2.26.0
  • junit5 升为 5.14.4
  • hutool 升为 5.8.44
  • snakeyaml 升为 2.6
  • fastjson2 升为 2.0.62
  • jackson2 升为 2.21.4
  • gson 升为 2.14.0
  • redisson 升为 3.52.0
  • lettuce 升为 6.8.2.RELEASE
  • kafka 升为 3.9.2
  • reactor-netty-http 升为 1.3.5
  • netty 升为 4.1.134.Final
  • smartsocket 升为 2.0.0
  • smarthttp 升为 2.5.19
  • vert.x 升为 4.5.27
  • tomcat 升为 9.0.118
  • undertow 升为 2.2.39.Final
  • rocketmq5 升为 5.2.0
  • nacos3 升为 3.2.1
  • swagger 升为 1.6.16
  • swagger2 升为 2.2.50
  • undertow (for java17) 升为 2.3.24.Final
  • jetty (for java17) 升为 12.1.9
  • xxl-job-core3 (for java17) 升为 3.4.0
  • jackson3 (for java17) 升为 3.1.3
  • tomcat (for java17) 升为 11.0.22

for solon-ai 生成

  • 变更 solon skill “概念”改为 solon talent(避免与 agent skill 的冲突)
  • 新增 mcp-core(替换之前的 mcp-sdk,保持与官方相同命名)
  • 新增 mcp-json-jackson2
  • 新增 solon-ai-sandbox
  • 新增 solon-ai-mcp MCP_2025_11_25 协议支持(支持 ServerTransportSecurityValidator 签权)
  • 新增 solon-ai-talent-mount 才能插件(原 PoolManager 独立出来)
  • 添加 solon-ai-talent-openapi OpenApiSkill.removeApi 方法
  • 添加 solon-ai-talent-openapi ApiSource 超时配置支持
  • 添加 solon-ai-talent-gateway McpGatewaySkill 专门处理 mcp(ToolGatewaySkill 可以处理所有工具)
  • 添加 solon-ai-talent-cli TerminalTalent 系统级沙盒限制支持
  • 添加 solon-ai-core ChatOptions:httpCustomize 方法
  • 添加 solon-ai-core Talent::isEnabled 方法
  • 添加 solon-ai-core AiConfig::standard(替代 provider 之前的作用)
  • 添加 solon-ai-core ReActAgent::getModel 方法
  • 添加 solon-ai-agent ReActInterceptor.onReasonStart 事件方法
  • 添加 solon-ai-agent AgentTrace.getOriginalPrompt, getWorkingMemory 方法
  • 添加 solon-ai-agent AgentTrace.getRunId 方法
  • 添加 solon-ai-agent AgentChunk.getRunId 方法
  • 添加 solon-ai-agent TeamAgent 添加初心标记
  • 添加 solon-ai-agent ToolExchanger 类
  • 添加 solon-ai-mcp McpClientProvider allowedTools, disallowedTools 工具控制机制
  • 添加 solon-ai-harness bashAsyncEnabled 开关
  • 添加 solon-ai-harness HarnessEngine.removeApi 方法
  • 添加 solon-ai-harness HarnessProperties.mountPools 属性(替代 skillPools,后者标为弃用)
  • 添加 solon-ai-harness 用 McpGatewaySkill 替换 ToolGatewaySkill(更有争对性)
  • 优化 solon-ai-agent 初始化时(rest)添加快照持久化
  • 优化 solon-ai-harness AgentFactory edit 权限添加 readwrite 控制
  • 优化 solon-ai-agent ContextCompressionInterceptor 压缩时机(从 onObservation 改为 onReasonStart),并增加系统词大小
  • 优化 solon-ai-agent ContextCompressionInterceptor 增强上下文压缩拦截器中过期区 tool-use 原子序列的追溯保护,并完善文档注释
  • 优化 solon-ai-agent ContextCompressionInterceptor 算法,增加 tools token
  • 优化 solon-ai-dialect-openai OpenaiResponses 协议兼容性
  • 调整 solon-ai-core 取消 ChatConfig.reasoningFieldName 配置(这个配置不合理)
  • 调整 solon-ai-core 移除 SkillProvider 类
  • 调整 solon-ai-core 移除 toolAdd(Object) 方法(指向不明,容易出错)
  • 调整 solon-ai-core 移除 defaultToolAdd(Object) 方法(指向不明,容易出错)
  • 调整 solon-ai-agent 移除 toolAdd(Object) 方法(指向不明,容易出错)
  • 调整 solon-ai-agent 移除 defaultToolAdd(Object) 方法(指向不明,容易出错)
  • 调整 solon-ai-mcp McpClientProperties 默认不启用心跳(之前默认为 30 心跳一次)
  • 调整 solon-ai-mcp McpProviders 更名为 McpClientProviders
  • 调整 solon-ai-agent ActionChunk:ActionChunk 更名为 ObservationChunk;ActionStartChunk 更名为 ActionChunk
  • 调整 solon-ai-agent ReActInterceptor.onAction,onObservation: toolName,args,result 合并为 toolExchanger(并允许修改)
  • 调整 solon-ai-agent ReActInterceptor.onReason 更名为 onReasonEnd(和 onReasonStart 凑成一对)
  • 调整 solon-ai-agent ReActAgent.maxSteps 更名为 maxTurns(保持行业习惯)
  • 调整 solon-ai-agent SummarizationInterceptor 更名为 ContextCompressionInterceptor(更符合语义)
  • 调整 solon-ai-talent-cli PoolManager 实现细节,并添加 refresh(alias)
  • 调整 solon-ai-talent-cli 技能标识由 aliasPath 统一改为 name,并优化技能池加载逻辑及代码格式
  • 调整 solon-ai-talent-web WebfetchTool 更名为 WebfetchTalent; WebsearchTool 更名为 WebsearchTalent; CodeSearchTool 更名为 CodeSearchTalent
  • 调整 solon-ai-talent-diff ApplyDiffTool 更名为 ApplyDiffTalent;ApplyPatchTool 更名为 ApplyPatchTalent
  • 调整 solon-ai-harness HarnessEngine 打断与 HarnessProperties 关联(后者删除),避免耦合影响未来的调整
  • 调整 solon-ai-harness HarnessEngine 移除 mainModel 字段(减兴缓存麻烦)
  • 移除 solon-ai-skill-browser(包太大了,没必要)
  • 移除 solon-ai-skill-restapi (由 solon-ai-talent-gateway 替代)
  • 移除 solon-ai-skill-toolgateway (由 solon-ai-talent-gateway 替代)
  • 移除 mcp-sdk(由 mcp-core 替代)
  • 修复 solon-ai-mcp WebRxStreamableHttpTransport 没有 event 的消息会出错的问题(优化非规范兼容)
  • 修复 solon-ai-mcp WebRxStreamableHttpTransport 没有 contentType 的消息会出错的问题(优化非规范兼容)
  • 修复 solon-ai-agent ContextCompressionInterceptor 压缩后可能会引起 ToolMessage 无法对齐的问题
  • mcp-sdk 升为 1.1.3

4、附件:弃用配置移除对应表(要认真核对)

移除

应用或插件 移除配置名 替代配置名
solon-server server.session.state.domain server.session.cookieDomain
server.session.state.domain.auto server.session.cookieDomainAuto
solon-web-staticfiles solon.staticfiles.maxAge solon.staticfiles.cacheMaxAge
nacos2-solon-cloud-plugin solon.cloud.nacos2.* solon.cloud.nacos.*

5、附件:弃用插件移除对应表(要认真核对)

移除(以下插件已由项目官方仓库维护,或者直接使用即可)

移除插件 替代插件
solon-ai-skill-* solon-ai-talent-*
easy-trans-solon-plugin com.fhs-opensource:easy-trans-solon-plugin
sms4j-solon-plugin org.dromara.sms4j:sms4j-solon-plugin
beetlsql-solon-plugin com.ibeetl:sql-solon-plugin
dbvisitor-solon-plugin net.hasor:dbvisitor-solon
sqltoy-solon-plugin com.sagframe:sagacity-sqltoy-solon-plugin
mybatis-sqlhelper-solon-plugin com.github.fangjinuo.sqlhelper:sqlhelper-mybatis
mybatis-pagehelper-solon-plugin com.github.pagehelper:pagehelper
mybatis-plus-solon-plugin com.baomidou:mybatis-plus-solon-plugin
mybatis-plus-extension-solon-plugin 同上
mybatis-flex-solon-plugin com.mybatis-flex:mybatis-flex-solon-plugin
fastmybatis-solon-plugin net.oschina.durcframework:fastmybatis-solon-plugin
bean-searcher-solon-plugin cn.zhxu:bean-searcher-solon-plugin
mybatis-tkmapper-solon-plugin tk.mybatis:mapper-solon-plugin
sa-token-solon-plugin cn.dev33:sa-token-solon-plugin
sa-token-snack4 同上
sa-token-dao-redisson-jackson 同上
liteflow-solon-plugin com.yomahub:liteflow-solon-plugin
forest-solon-plugin com.dtflys.forest:forest-solon-plugin

6、附件:弃用注解或属性移除对应表(会有编译提醒)

移除注解或属性

应用或插件 弃用注解或属性 替代注解或属性
solon org.noear.solon.annotation::
@Bean:priority() @Condition:priority()
@Bean:injected() @Bean:autoInject()
solon-data org.noear.solon.data.annotation::
@Tran @Transaction
nami org.noear.nami.annotation::
@NamiBody:contentType() @NamiMapping:headers()

7、附件:Solon 生态弃用类或方法移除对应表(会有编译提醒)

  • solon 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon 包(org.noear.solon
Solon:start(NvMap) /
SolonApp:add*() SolonApp:router():add*()
SolonApp:filter*() SolonApp:router():filter*()
SolonApp:get*() SolonApp:router():get*()
SolonApp:post*() SolonApp:router():post*()
SolonApp:head*() SolonApp:router():head*()
SolonApp:put*() SolonApp:router():put*()
SolonApp:patch*() SolonApp:router():patch*()
SolonApp:delete*() SolonApp:router():delete*()
SolonApp:socketd*() SolonApp:router():socketd*()
SolonApp:delete*() SolonApp:router():delete*()
SolonApp:converterManager() SolonApp:converters()
SolonApp:serializerManager() SolonApp:serializers()
SolonApp:renderManager() SolonApp:renders()
SolonApp:factoryManager() SolonApp:factories()
SolonApp:renderManager() SolonApp:renders()
SolonApp:chainManager() SolonApp:chains()
SolonProps:plugs*() SolonProps:plugins*()
SolonProps:plugsSort*() /
SolonProps:isAloneMode*() /
Utils:async*() RunUtil:async*()
solon 包(org.noear.solon.util
/ ScopeLocal:getOr
solon 包(org.noear.solon.core
AppContext:methodGet AppContext:methodWrap
AppContext:prestop AppContext:preStop
BeanContainer:wrapPublish BeanContainer:beanPublish
Constants:HEADER_CONTENT_TYPE_DEF MimeType.TEXT_PLAIN_UTF8_VALUE
ChainManager:getInterceptorNodes ChainManager:getRouterInterceptorNodes
ChainManager:addInterceptor ChainManager:addRouterInterceptor
ChainManager:addInterceptorIfAbsent ChainManager:addRouterInterceptorIfAbsent
ChainManager:removeInterceptor ChainManager:removeRouterInterceptor
ChainManager:defExecuteHandler ChainManager:defEntityConverter
ChainManager:addExecuteHandler ChainManager:addEntityConverter
ChainManager:removeExecuteHandler ChainManager:removeEntityConverter
ChainManager:getExecuteHandler /
ChainManager:getExecuteHandlerDefault /
FactoryManager:hasMvcFactory() /
FactoryManager:mvcFactory() /
FactoryManager:mvcFactory() /
Plugin:prestop() Plugin:preStop()
new Props(Map) new Props().addAll(Map)
new Props(Iterable<KeyValues>) new Props().addAll(Iterable<KeyValues>)
Props:getBean(..) Props:toBean(..)
VarHolder:getGenericType()->ParameterizedType VarHolder:getGenericType()->Type
NvMap /
MvcFactory /
LifecycleIndex /
solon 包(org.noear.solon.core.handle
ActionArgumentResolver MethodArgumentResolver
ActionExecuteHandler /
ContextHolder /
ContextUtil /
EntityConverterFromExecutor /
RenderFactory /
solon 包(org.noear.solon.core.route
Router:getAll(..) Router:findAll(...)
Router:getBy(..) Router:findBy(...)
RouterWrapper /
Routing:target() Routing:target(version2)
RoutingTable:matchOne(..) RoutingTable:matchOne(..., version)
RoutingTable:matchOneAndStatus(..) RoutingTable:matchOneAndStatus(..., version)
RoutingTable:matchMore(..) RoutingTable:matchMore(..., version)
solon 包(org.noear.solon.core.util
ClassUtil:findPublicMethods(..) /
ClassUtil:scanClasses(.., Predicate<Class<?>>) ClassUtil:scanClasses(.., Consumer<Class<?>>)
ResourceUtil:scanClasses(..) ClassUtil:scanClasses(...)
ScanUtil:setScanner(..) /
LogUtil /
PathAnalyzer PathMatcher
solon 包(org.noear.solon.core.wrap
VarSpec:getType VarSpec:getTypeEggg().getType
VarSpec:getGenericType VarSpec:getTypeEggg().getGenericType
VarSpec:isGenericType VarSpec:getTypeEggg().isParameterizedType
  • solon-handle 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-handle 包(org.noear.solon.core.mvc
ActionExecuteHandlerDefault EntityConverterDefault
  • solon-data 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-data 包(org.noear.solon.data.tran
TranManager:currentSet TranManager:with
TranManager:currentRemove TranManager:with
TranManager:trySuspend TranManager:with
TranManager:tryResume TranManager:with
solon-data 包(org.noear.solon.data.tran.interceptor
TranInterceptor TransactionInterceptor
  • solon-data-dynamicds 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-data-dynamicds 包(org.noear.solon.data.dynamicds
DynamicDataSource:setCurrentKey DynamicDsKey:use
DynamicDsKey:remove DynamicDsKey:with
DynamicDsKey:use DynamicDsKey:with
DynamicDsKey:getCurrent DynamicDsKey:with
DynamicDsKey:setCurrent DynamicDsKey:with
DynamicDsUtils /
  • solon-flow 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-flow 包(org.noear.solon.flow
FlowContext:model() FlowContext:data()
FlowContext:vars() FlowContext:data()
Link:getCondition Link:getWhen
LinkSpec:condition LinkSpec:when
  • solon-net-httputils 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-net-httputils 包(org.noear.solon.net.http.textstream
ServerSentEvent:id() ServerSentEvent:getId()
ServerSentEvent:event() ServerSentEvent:getEvent()
ServerSentEvent:data() ServerSentEvent:getData()
ServerSentEvent:retry() ServerSentEvent:getRetry()
ServerSentEvent:comment() ServerSentEvent:getComment()
TextStreamUtil:parseLineStream(.., subscriber) TextStreamUtil:parseLineStream(...)->Flux
TextStreamUtil:parseSseStream(.., subscriber) TextStreamUtil:parseSseStream(...)->Flux
solon-net-httputils 包(org.noear.solon.net.http
HttpExtensionManager HttpConfiguration
HttpResponse:contentEncoding HttpResponse:contentCharset
HttpUtils:execAsTextStream HttpUtils:execAsLineStream
HttpUtils:execAsEventStream HttpUtils:execAsSseStream
HttpUtils:bodyRaw HttpUtils:body
HttpUtils:bodyTxt HttpUtils:bodyOfTxt
HttpUtils:bodyJson HttpUtils:bodyOfJson
  • solon-statemachine 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-statemachine 包(org.noear.solon.statemachine
Event /
State /
  • solon-server 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-server 包(org.noear.solon.server.ssl
SslContextFactory SslContextBuilder
solon-server 包(org.noear.solon.server
ServerProps.request_useTempfile /
  • solon-serialization 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-serialization 包(org.noear.solon.serialization.prop
JsonPropsUtil /
solon-serialization 包(org.noear.solon.serialization
BytesSerializerRender /
ContextSerializer /
JsonRenderFactory /
BytesSerializerRender /
StringSerializerRender /
solon-serialization-abc 包(org.noear.solon.serialization.abc
AbcActionExecutor /
AbcRender /
solon-serialization-fastjson 包(org.noear.solon.serialization.fastjson
FastjsonActionExecutor /
FastjsonRenderFactory /
FastjsonRenderFactoryBase /
FastjsonRenderTypedFactory /
solon-serialization-fastjson2 包(org.noear.solon.serialization.fastjson2
Fastjson2ActionExecutor /
Fastjson2RenderFactory /
Fastjson2RenderFactoryBase /
Fastjson2RenderTypedFactory /
solon-serialization-fury 包(org.noear.solon.serialization.fury
FuryActionExecutor /
FuryRender /
solon-serialization-gson 包(org.noear.solon.serialization.gson
GsonActionExecutor /
GsonRenderFactory /
GsonRenderFactoryBase /
GsonRenderTypedFactory /
solon-serialization-hessian 包(org.noear.solon.serialization.hessian
HessianActionExecutor /
HessianRender /
solon-serialization-jackson 包(org.noear.solon.serialization.jackson
JacksonActionExecutor /
JacksonRenderFactory /
JacksonRenderFactoryBase /
JacksonRenderTypedFactory /
solon-serialization-jackson-xml 包(org.noear.solon.serialization.jackson.xml
JacksonXmlActionExecutor /
JacksonXmlRenderFactory /
JacksonXmlRenderFactoryBase /
JacksonXmlRenderTypedFactory /
solon-serialization-kryo 包(org.noear.solon.serialization.kryo
KryoActionExecutor /
KryoRender /
solon-serialization-properties 包(org.noear.solon.serialization.properties
PropertiesActionExecutor /
PropertiesRenderFactory /
solon-serialization-protostuff 包(org.noear.solon.serialization.protostuff
ProtostuffActionExecutor /
ProtostuffRender /
solon-serialization-snack3 包(org.noear.solon.serialization.snack3
SnackActionExecutor /
SnackRenderFactory /
SnackRenderFactoryBase /
SnackRenderTypedFactory /
  • solon-web 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-web-sse 包(org.noear.solon.web.sse
SseEvent:build SseEvent:toString
  • solon-integration 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
dubbo3-solon-plugin 包(org.noear.solon.extend.dubbo3
EnableDubbo org.apache.dubbo.solon.annotation.EnableDubbo
dubbo-solon-plugin 包(org.noear.solon.extend.dubbo
EnableDubbo org.apache.dubbo.solon.annotation.EnableDubbo
redisson-solon-plugin 包(org.redisson.solon
RedissonSupplier RedissonClientOriginalSupplier
  • nami 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
nami 包(org.noear.nami
EncoderTyped /
NamiAttachment NamiAttach
EncoderTyped /
nami 包(org.noear.nami.common
Constants ContentTypes
nami-coder-fastjson 包(org.noear.nami.coder.fastjson
FastjsonTypeEncoder /
nami-coder-fastjson2 包(org.noear.nami.coder.fastjson2
Fastjson2TypeEncoder /
nami-coder-jackson 包(org.noear.nami.coder.jackson
JacksonTypeEncoder /
nami-coder-snack3 包(org.noear.nami.coder.snack3
SnackTypeEncoder /

8、附件:Solon AI 生态弃用类或方法移除对应表(会有编译提醒)

  • solon-ai-core 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-ai-core 包(org.noear.solon.ai.core
ChatMessage.template() ChatMessage.ofUserTmpl()
ChatMessage.augment() ChatMessage.ofUserAugment()
UserMessageTemplate.param() UserMessageTemplate.paramAdd()
InMemoryChatSession:new(..,systemMessages) /
InMemoryChatSession.Builder.systemMessages() /
ToolCallResultConverter.matched() /
ChatConfig.defaultToolsContext ChatConfig.defaultToolContext (配置要注意)
ChatConfig.addDefaultTools() ChatConfig.addDefaultTool()
ChatConfig.isDefaultAutoToolCall() ChatConfig.getModelOptions().isAutoToolCall()
ChatConfig.getDefaultInterceptors() ChatConfig.getModelOptions().interceptors()
ChatConfig.getDefaultToolContext() ChatConfig.getModelOptions().toolContext()
ChatConfig.getDefaultSkills() ChatConfig.getModelOptions().skills()
ChatConfig.getDefaultOptions() ChatConfig.getModelOptions().options()
ChatConfig.getDefaultTool() ChatConfig.getModelOptions().tool()
ChatConfig.getDefaultTools() ChatConfig.getModelOptions().tools()
ChatConfig.getDefaultToolsContext() ChatConfig.getModelOptions().toolContext()
ChatModel.prompt(session) /
ChatModel.defaultToolAdd(toolObj) /
ChatOptions.optionAdd() ChatOptions.optionSet()
ChatOptions.toolsAdd() ChatOptions.toolAdd()
ChatOptions.toolsContext() ChatOptions.toolContext()
ChatOptions.toolsAdd() ChatOptions.toolAdd()
ChatSession.toNdjson() ChatMessage.toNdjson(session.getMessages())
ChatSession.loadNdjson() ChatMessage.fromNdjson(ndjson, session::addMessage)
ChatSessionDefault /
EmbeddingOptions.optionAdd() EmbeddingOptions.optionSet()
GenerateOptions.optionAdd() GenerateOptions.optionSet()
RerankingOptions.optionAdd() RerankingOptions.optionSet()
RepositoryStorable.asyncInsert() RepositoryStorable.asyncSave()
RepositoryStorable.insert() RepositoryStorable.save()
RepositoryStorable.delete() RepositoryStorable.deleteById()
RepositoryStorable.exists() RepositoryStorable.existsById()
  • solon-ai-agent 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-ai-agent 包(org.noear.solon.ai.agent
ReActAgent.description() ReActAgent.role()
ReActAgent.maxStepsExtensible() ReActAgent.autoRethink()
ReActOptionsAmend.maxStepsExtensible() ReActOptionsAmend.autoRethink()
ReActTrace.pending() AgentSession.pending()
ReActTrace.isPending() AgentSession.isPending()
ReActTrace.getPendingReason() AgentSession.getPendingReason()
SimpleAgent.description() SimpleAgent.role()
TeamAgent.description() TeamAgent.role()
TeamTrace.pending() AgentSession.pending()
TeamTrace.isPending() AgentSession.isPending()
TeamTrace.getPendingReason() AgentSession.getPendingReason()
SummarizationInterceptor ContextCompressionInterceptor
  • solon-ai-harness 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-ai-harness 包(org.noear.solon.ai.harness
HarnessFlags /
HarnessProperties /
HarnessEngine 重构
  • solon-ai-mcp 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-ai-mcp 包(org.noear.solon.ai.mcp
McpClientProperties.apiKey("xxx") .header("Authorization", "Bearer xxx")
McpClientProperties.apiUrl() McpClientProperties.url()
McpClientProvider.Builder.apiUrl() McpClientProvider.Builder.url()
McpClientProvider.Builder.apiKey() McpClientProvider.Builder.header("Authorization", "Bearer xxx")
McpClientProvider.Builder.headerSet() McpClientProvider.Builder.header()
McpClientProvider.Builder.serverParameters() McpClientProvider.Builder.command()
McpServerParameters.Builder /
  • solon-ai-repo 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon-ai-repo-dashvector 包(org.noear.solon.ai.rag.repository
DashVectorRepository.metadataIndexFields() DashVectorRepository.metadataFields()
solon-ai-repo-redis 包(org.noear.solon.ai.rag.repository
RedisRepository.metadataIndexFields() RedisRepository.metadataFields()