- Trae
- Dify
- Cherry Studio
- mcp channel 概念改为 transport (并保持兼容)???
- 添加 solon-ai-harness 重试次数配置支持
- 优化 solon-ai-dialect-anthropic anthropic 方言的异常兼容处理
- 优化 solon-ai-dialect-openai openai-response 方言的异常兼容处理
- 优化 solon-ai-agent 中断传递处理
- 优化 solon-ai-agent retrying 中断处理
- 新增 solon-ai-repo-dashvector-official 插件
- 添加 solon-ai-core ChatModel.getModel 方法
- 添加 solon-ai-core ChatModel.getProvider 方法
- 添加 solon-ai-core ChatOptions.name 方便 agent 传递 name(打印日志)
- 添加 solon-ai-core 基于语义的分割器 SemanticSplitter
- 添加 solon-ai-core AiConfig.name, description 配置属性(用于管理显示)
- 添加 solon-ai-agent AgentRequest.callAsync 异步调用方法
- 添加 solon-ai-agent AgentResponse.getTrace 方法
- 添加 solon-ai-agent SummarizationInterceptor.copyWith 方法(方便复制实例并调整限制)
- 添加 solon-ai-harness HarnessProperties.models 配置属性(替代 chatModel)
- 添加 solon-ai-harness 子代理切换模型的能力
- 添加 solon-ai-harness HarnessProperties.removeModel 方法
- 优化 solon-ai-core RepositoryTool 增加重排支持
- 优化 solon-ai-core OllamaEmbeddingDialect.matched 添加 endsWith 匹配
- 优化 solon-ai-core MethodToolProvider 允许是否使用自身的 ToolProvider 内容(同时优化 AbsSkill,AbsToolProvider)
- 优化 solon-ai-agent ReActAgent 流块输出
- 优化 solon-ai-cli TodoSkill 提示词
- 调整 solon-ai-cli 取消 TerminalSkill.undo 工具(几乎用不到,由 git 控制)
- 调整 solon-ai-harness 取消 SESSION_DEFAULT(由应用侧处理)
- 调整 solon-ai-harness 去除 getVersion 方法(由应用侧定义)
- 调整 solon-ai-harness CLAUDE.md 更名为 CODE.md(内部自动生成)
- 修复 solon-ai-core MethodExecuteHandler 当 llm.args 嵌套非规范 json 时出错的问题(比如,非规范控制符)
- 修复 solon-ai-core ChatResponseDefault.isEmpty 可能识别失败的问题(不同 llm 情况较多)
- 调整 solon-ai-harness HarnessProperties.restApis 更名为 apiServers;取消 chatModel(由 models 替代)
- 修复 solon-ai-agent FileAgentSession.getSessionId 可能为空的问题
- 修复 solon-ai-skill-web CodeSearchTool 失效的问题(mcp.exa.ai 变了地址)
- 修复 solon-ai-harness TaskOp jsonSchema 问题(可能造成 multitask 调度失败)
- 新增 acp-sdk 模块(从 solon-ai-acp 分离出来,方便独立升级)
- 新增 solon-ai-harness 智能体马具框架
- 添加 solon-ai-core ChatModel.of().systemPrompt 方法
- 添加 solon-ai-core 工具执行时的参数注解支持
- 添加 solon-ai-core RepositoryTool 工具,为实现 Agent RAG 提供支持
- 添加 solon-ai-core AbsToolProvider 类(取代之前添加 toolObj 的方式)
- 优化 solon-ai-skill-cli ExpertSkill 原来的二档展示升为三级
- 优化 solon-ai-skill-restapi 原来的三档展示升为四级,并添加分组(可增强注意力)
- 优化 solon-ai-skill-toolgateway 原来的三档展示升为四级,并添加分组(可增强注意力)
- 优化 solon-ai-agent ReActRequest, TeamRequest 支持叠加 options
- 修复 solon-ai-skill-cli ExpertSkill grep 可能失效的问题
- 添加 solon-ai-agent ThoughtChunk 流块
- 添加 solon-ai-agent Metrics.addMetrics 锁安全
- 添加 solon-ai-agent AgentChunk.getMeta 流块元数据(方便在传递过程中,做标识)
- 优化 solon-ai-agent ActionTask 执行完后就更新快照(避免可能的长时间没有更新快照)
- 修复 solon-ai-core ChatModel.outputSchema 配置无效的问题
- 修复 solon-ai-core 工具调用时‘可能’出现消息内容重复的问题(重要,v3.9.2 时出现)
- 添加 solon-ai-agent ThoughtChunk 流块
- 添加 solon-ai-agent Metrics.addMetrics 锁安全
- 添加 solon-ai-agent AgentChunk.getMeta 流块元数据(方便在传递过程中,做标识)
- 优化 solon-ai-agent ActionTask 执行完后就更新快照(避免可能的长时间没有更新快照)
- 修复 solon-ai-core ChatModel.outputSchema 配置无效的问题
- 修复 solon-ai-core 工具调用时‘可能’出现消息内容重复的问题(重要,v3.9.2 时出现)
- 添加 solon-ai-core ChatModel.outputSchema 配置支持(且与 Agent 统一基于方言实现,各方言可定制)
- 添加 solon-ai-core ChatModel.contextLength 配置支持(为 Agent 方便自动计算限制数)
- 添加 solon-ai-core AssistantMessage.getJsonContent 方法
- 添加 solon-ai-core MarkdownUtil 工具类
- 添加 solon-ai-dialect-gemini tool-call 的思考签名支持
- 添加 solon-ai-agent ReActChunk.getMetrics 方法
- 优化 solon-ai-core AbstractChatDialect 解析 tool 参数的兼容性
- 优化 solon-ai-dialect-dashscope 方言 支持流式传输与百炼联网搜索
- 优化 solon-ai-dialect-anthropic tool.args 不规范时的兼容性(比如 json 不完整)
- 优化 solon-ai-dialect-gemini 特定 provider 结束时返回 content 为空的消息才设置finishReason 导致结束标志被提前过滤
- 优化 solon-ai-agent ReActAgent onThought 事件,优先使用 getReasoning 获取 思考内容
- 优化 solon-ai-agent ReActAgent SummarizationInterceptor 添加 maxContextLength 控制参数(很重要)
- 优化 solon-ai-agent ActionChunk 分为 ActionEndChunk 和 ActionStartChunk(并保留 ActionChunk 标为弃用)
- 优化 solon-ai-agent 流式处理
catch (Exception,换成catch (Throwable - 优化 solon-ai-skill-restapi 每个 api 可以添加独立的验证机制
- 优化 solon-ai-skill-cli 避免 bash 把当前进程给删掉了
- 调整 solon-ai-agent 临时挂起操作,由 XxxTrace 转到 AgentSession(更统一)
- 调整 solon-ai-core Skill 的激活逻辑,如果 getInstruction 为空,则不进入 SystemPrompt(之前还要 description 为空)
- 修复 solon-ai-agent ReActAgent 思考事件触发逻辑,确保在所有情况下都被调用
- 新增 mcp-sdk 插件(从 solon-ai-mcp 独立出来)
- 新增 solon-ai-skill-toolgateway 插件
- 新增 solon-ai-search-tavily 插件
- 新增 solon-ai-ui-aisdk 插件
- 添加 solon-ai-core __sessionId 自动作为工具上下文和提示词属性(用于传递会话id)
- 添加 solon-ai-core SkillProvider 接口
- 添加 solon-ai-core AbsTool 类
- 添加 solon-ai-core AiUsage thinkTokens 字段
- 添加 solon-ai-core ChatConfig.getReasoningFieldName 自动处理,兼容 deepseek 新的变化
- 添加 solon-ai-core ChatModel options 配置自动转强类型(llm 不能接收str)
- 添加 solon-ai-agent ReActInterceptor.onObservation durationMs 参数(时长毫秒数)
- 添加 solon-ai-agent ReActChunk isNormal(用于识别是否为正常结束)
- 添加 solon-ai-skill-memory MemSkill 支持会话隔离与共享
- 优化 solon-ai-mcp 独立出 mcp-sdk 包
- 优化 solon-ai-dialect-claude 方言适配(及 api.kimi.com/coding 兼容性)
- 优化 solon-ai-dialect-openai 与 api.minimax.io 的兼容性
- 优化 solon-ai-agent SummarizationInterceptor
- 优化 solon-ai-agent ReActSystemPrompt 描述
- 优化 solon-ai-skill-memory MemSkill 取消 userId 参数,自动从上下文中取
- 优化 solon-ai-skill-cli
- 优化 Solon AI Skill 指令层级控制
- 调整 solon-ai-dialect-claude 更名为 solon-ai-dialect-anthropic(更合适)
- 新增 solon-ai-skill-lucene 插件
- 新增 solon-ai-skill-diff 插件
- 新增 solon-ai-skill-memory 插件
- 添加 solon-ai-core toolContext 自动转为 Prompt.attrs 的机制(方便 skill 传递)
- 添加 solon-ai-agent ReActChunk, TeamChunk getTrace 方法
- 添加 solon-ai-agent __sessionId 作为智能体的必要工具上下文(方便工具的会话数据隔离)
- 优化 solon-ai-core chatModel 方言的(不规范的)兼容性处理
- 优化 solon-ai-core buildToolCallBuilder 兼容(有些 llm stream ,会部分全量多次提供)
- 优化 solon-ai-agent SummarizationInterceptor 增加策略机制并内置4个策略
- 修复 solon-ai-core ChatModel.stream 过程异常时会破坏流响应的问题
- 修复 solon-ai-agent ReasonTask.callWithRetry 网络异常时会中断工作流的问题
- 修复 solon-ai-agent ReActAgent 流式请求时,可能无法记忆结果内容的问题
- 重构 solon-ai-agent Plan-ReAct 模式(相对之前,新设计智能、态动、按需)
- 优化 solon-ai-skill-cli CliSkill
- 新增 solon-ai-acp 插件(可以对接支持 acp 协议的 IDE)
- 添加 solon-ai-core ChatSessionProvider
- 添加 solon-ai-core FunctionTool:call 方法
- 添加 solon-ai-mcp FunctionPrompt:get 方法
- 添加 solon-ai-mcp FunctionResource:read 方法
- 添加 solon-ai-core ToolSchemaUtil.resultConvert 方法(将 tool 转换从内部,转到外部)
- 添加 solon-ai-agent ReActAgent maxStepsExtensible 配置,允许通过 HITL 扩容步数
- 优化 solon-ai-core ChatModel 与 DeepSeek-R1 兼容性
- 优化 solon-ai-agent ReActAgent 与 DeepSeek-R1 兼容性(手造的 AssistantMessage 需要自动补字段)
- 优化 solon-ai-agent FunctionTool 增加 tool 多模态与单模态兼容处理
- 优化 solon-ai-skill-cli CliSkill 进一步与 Claude Code 规范对齐(接近 100%)
- 优化 solon-ai-skill-cli CodeCLI exit 改为进程退出
- 优化 solon-ai-mcp 无心跳时,支持自动复位尝试
- 调整 solon-ai-mcp McpClientProvider 接口,优化多模态适配
- 调整 solon-ai-core 多模态体系(AiMedia 更名为 ContentBlock,)
- 调整 solon-ai-core UserMessage medias 更名为 blocks,hasMedias 更名为 isMultiModal
- 调整 solon-ai-core ToolMessage 添加 blocks,isMultiModal(工具支持多模态)
- 调整 solon-ai-core ChatDialect 接口,对多模态和 R1 更友好
- 移除 solon-ai-core 移除 ImageModel 体系,由 GenerateModel 体系接替(v3.5 时增加)
- 修复 solon-ai-agent ReActAgent 重试时会消息倍增的问题
- 修复 solon-ai-agent ReActAgent,TeamAgent 在恢复执行时,会重置 Options 的问题
变更说明:
| 旧名(强调多媒体) | 新名(强调多模态内容块) |
|---|---|
| AiMedia | ContentBlock |
| Text | TextBlock |
| Image | ImageBlock |
| Audio | AudioBlock |
| Video | VideoBlock |
| UserMessage.getMedias() | getBlocks() |
| UserMessage.hasMedias() | isMultiModal() |
| / | ToolMessage.getBlocks() |
| / | ToolMessage.isMultiModal() |
| McpClientProvider.callTool() | callToolRequest() |
| McpClientProvider.callToolAsText() | callTool() |
| McpClientProvider.callToolAsImage() | / |
| McpClientProvider.callToolAsAudio() | / |
| McpClientProvider.readResource() | readResourceRequest() |
| McpClientProvider.readResourceAsText() | readResource() |
| McpClientProvider.readResourceAsBlob() | / |
| McpClientProvider.getPrompt() | getPromptRequest() |
| McpClientProvider.getPromptAsMessage() | getPrompt() |
org.noear.solon.ai.mcp.server.prompt.* |
org.noear.solon.ai.chat.prompt.* (prompt 是公用元素) |
org.noear.solon.ai.mcp.server.resource.* |
org.noear.solon.ai.chat.resource.* (resource 是公用元素) |
- 新增 solon-ai-dialect-claude 插件
- 新增 solon-ai-dialect-openai OpenaiResponses 方言适配
- 新增 solon-ai-repo-weaviate 插件
- 新增 solon-ai-skill-cli 插件(含 CliSkill 和 SolonCodeCLI)
- 新增 solon-ai-skill-data 插件(含 RedisSkill)
- 新增 solon-ai-skill-file 插件(含 FileReadWriteSkill,ZipSkill)
- 新增 solon-ai-skill-generation 插件(含 ImageGenerationSkill, VideoGenerationSkill)
- 新增 solon-ai-skill-mail 插件(含 MailSkill)
- 新增 solon-ai-skill-pdf 插件(含 PdfSkill)
- 新增 solon-ai-skill-restapi 插件(含 RestApiSkill),内置 OpenApi3 和 swagger2 兼容适配(可扩展定制)
- 新增 solon-ai-skill-social 插件(含 DingTalkSkill,FeishuSkill,WeComSkill)
- 新增 solon-ai-skill-sys 插件(含 NodejsSkill,PythonSkill, ShellSkill,SystemClockSkill)
- 新增 solon-ai-skill-text2sql 插件(含 Text2SqlSkill)
- 新增 solon-ai-skill-web 插件(含 WebCrawlerSkill,WebSearchSkill)
- 添加 solon-ai-core ChatModel role 和 instruction 支持(提供类似 SimpleAgent 效果)
- 添加 solon-ai-core ChatModel.stream 背压流控支持
- 添加 solon-ai-core FileChatSession,RedisChatSession 聊天会话实现
- 添加 solon-ai-core ChatInterceptor.onPrepare 事件(勾子)
- 添加 solon-ai-core Prompt.removeLastMessage, removeLastAssistantMessage 方法
- 添加 solon-ai-agent FileAgentSession 智能体会话实现
- 添加 solon-ai-agent ReActTrace, TeamTrace pending 机制(方便按需拦截挂机)
- 添加 solon-ai-agent feedbackMode 模式(默认为 false)
- 添加 solon-ai-agent ReActInterceptor.onObservation toolName 参数
- 添加 solon-ai-agent HITL 专属接口,进一步优化人工机制(同意,拒绝,跳过)
- 添加 solon-ai-agent stream 流式输出机制
- 优化 solon-ai-agent ReActAgent 添加主动挂机的能力(处理无法完成的任务时,可避免幻觉轮询)
- 优化 solon-ai-agent description + systemPrompt 标为弃用,改由 role + instruction 替代(简化了)
- 优化 solon-ai-agent 内置的 Team 协议(如 ReActProtocol,SwarmProtocol 等)
- 优化 solon-ai-agent 内置的 ToolRetryInterceptor,ToolSanitizerInterceptor 等
- 优化 solon-ai-agent AgentSession 接口 updateSnapshot 取消入参
- 优化 solon-ai-agent ActionTask 取消正则匹配 json 方式,改用 json 流式读取方式
- 调整 solon-ai-core InMemoryChatSession systemMessages 标为弃用(不建议放到会话里,不方便做结构化的管理)
- 调整 solon-ai-agent 取消 title(减少迷惑),systemMessage 标为弃用。改用 role 和 instruction
- 调整 solon-ai-core ChatModel.stream 返回由 Publisher 改为 Flux
- 调整 solon-ai-agent enablePlanning 更名为 planningMode (前者标为弃用)
- 修复 solon-ai-agent ReActAgent 新话题开始时, ReActTrace 没有重置干净的问题
- 修复 solon-ai-agent SimpleAgent 没有接入协作协议 prepareAgentPrompt 勾子
- qdrant 升为 1.16.2
- 添加 solon-ai-core Prompt 更多方法(getLastAssistantMessage, size 等)
- 添加 solon-ai-core ChatSession 更多方法(getLatestMessages 等)
- 添加 solon-ai-agent Agent.call(session) 方法(作为恢复执行的入口)
- 添加 solon-ai-agent Agent.prompt 方法
- 添加 solon-ai-agent AgentResponse 接口,统一响应界面
- 添加 solon-ai-agent Trace.workingMemory 概念
- 优化 solon-ai-core Skill 接口设计,getTools 增加 prompt 参数
- 优化 solon-ai-agent AgentSession 接口,改为扩展自 ChatSession (只需入口 agent 有历史消息)
- 优化 solon-ai-agent 部分接口设计
- 新增
solon-ai-coreSolon AI Skills(技能)体系 - 新增
solon-ai-search-bocha插件 - 添加
solon-ai-coredefaultToolsContextPut 方法 - 添加
solon-ai-corePrompt attrPut, attr 属性相关方法(可以在拦截时控制权限) - 添加
solon-ai-coreFunctionTool meta 元数据相关方法(可对描述语进行染色) - 添加
solon-ai-mcpFunctionPrompt meta 元数据相关方法(可对描述语进行染色) - 添加
solon-ai-mcpFunctionResource meta 元数据相关方法(可对描述语进行染色) - 添加
solon-ai-agentNoneProtocol(无协议模式) - 添加
solon-ai-agentReActAgent Plan 支持(默认为关闭)。 - 添加
solon-ai-agentSimpleInterceptor 替代 ChatInterceptor,方便后续扩展 - 优化
solon-ai-coreGemini 方言适配 - 优化
solon-ai-corePrompt 接口,方法更丰富 - 优化
solon-ai-agentA2AProtocol 协议代码 - 优化
solon-ai-agentSwarmProtocol 协议代码 - 优化
solon-ai-agentHierarchicalProtocol 协议代码 - 优化
solon-ai-agentSequentialProtocol 协议代码,添加专属任务(可节省 token) - 修复
solon-ai-coreToolSchemaUtilParam注解别名没有生效的问题 - 修复
solon-ai-agentReActAgent 没有拦截器时 ReActAgent 不能传递 toolsContext 的问题 - 调整
solon-ai-agentAgent 相关接口保持与 ChatModel 一致性
- 修复
solon-ai-agentActionTask 与 mcp 的兼容性(取消 trace 作为工具上下文注入,它不能被mcp 序列化)
- 修复
solon-ai-agentSimpleAgent 没有反回干净内容的问题(带了 think) - 添加
solon-ai-agentSimpleRequest - 添加
solon-ai-agentSimpleAgent.prompt 方法(为三个智能体提供相同体验)
- 新增
solon-ai-agent插件 - 新增
solon-ai-dialect-gemini插件 - 添加
solon-ai-coreautoToolCall 聊天模型选项(默认为 true) - 添加
solon-ai-coreChatResponse:getResultContent - 添加
solon-ai-coreAssistantMessage.toBean 方法。 - 优化
solon-ai-coreAssistantMessage.getResultContent 处理 - 调整
solon-ai-croeChatSession 不再扩展 Prompt(打断两者关系,后者定位偏固定数据
新增三种模式的智能体:
| 智能体 | 模式描述 |
|---|---|
| SimpleAgent | 简单模式 |
| ReActAgent | 自省模式,思考+行动。 |
| TeamAgent | 协作模式,分工+编排。多智能体系统(multi-agent system,MAS) |
新特性示例:ReActAgent
public class DemoApp {
public static void main(String[] args) throws Throwable {
ChatModel chatModel = LlmUtil.getChatModel();
SimpleAgent robot = SimpleAgent.of(chatModel)
.toolAdd(new MethodToolProvider(new TimeTool()))
.build();
String answer = robot.prompt("现在几点了?").call().getContent();
System.out.println("Robot 答复: " + answer);
}
public static class TimeTool {
@ToolMapping(description = "获取当前系统时间")
public String getTime() {
return LocalDateTime.now().toString();
}
}
}重要变化:
- mcp-java-sdk 升为 v0.17 (支持 2025-06-18 版本协议)
- 添加 mcp-server McpChannel.STREAMABLE_STATELESS 通道支持(集群友好)
- 添加 mcp-server 异步支持
具体更新:
- 添加 solon-ai FunctionPrompt:handleAsync(用于 mcp-server 异步支持)
- 添加 solon-ai FunctionResource:handleAsync(用于 mcp-server 异步支持)
- 添加 solon-ai FunctionTool:handleAsync(用于 mcp-server 异步支持)
- 添加 solon-ai-core ChatMessage:toNdjson,fromNdjson 方法(替代 ChatSession:toNdjson, loadNdjson),新方法机制上更自由
- 添加 solon-ai-core ToolSchemaUtil.jsonSchema Publisher 泛型支持
- 添加 solon-ai-core ToolSchemaUtil.isIgnoreOutputSchema Publisher 泛型支持
- 添加 solon-ai-mcp mcp-java-sdk v0.17 适配(支持 2025-06-18 版本协议)
- 添加 solon-ai-mcp mcp-server 异步支持
- 添加 solon-ai-mcp mcp-server streamable_stateless 支持
- 添加 solon-ai-mcp Tool,Resource,Prompt 对 org.reactivestreams.Publisher 异步返回支持
- 添加 solon-ai-mcp McpServerHost 服务宿主接口,用于隔离有状态与无状态服务
- 添加 solon-ai-mcp McpChannel.STREAMABLE_STATELESS (服务端)无状态会话
- 添加 solon-ai-mcp McpClientProvider:customize 方法(用于扩展 roots, sampling 等)
- 添加 solon-ai-mcp mcpServer McpAsyncServerExchange 注入支持(用于扩展 roots, sampling 等)
- 优化 solon-ai-dialect-openai claude 兼容性
- 优化 solon-ai-mcp mcp StreamableHttp 模式下 服务端正常返回时 客户端异常日志打印的情况
- 调整 solon-ai-mcp getResourceTemplates、getResources 不再共享注册
- 调整 solon-ai-mcp McpServerManager 内部接口更名为 McpPrimitivesRegistry (MCP 原语注册器)
- 调整 solon-ai-mcp McpClientProvider 默认不启用心跳机制(随着 mcp-sdk 的成熟,server 都有心跳机制了)
- mcp ToolCapabilities 添加 @JsonIgnoreProperties(ignoreUnknown = true)
新特性展示:1.MCP 无状态会话(STREAMABLE_STATELESS)和 2.CompletableFuture 异步MCP工具
@McpServerEndpoint(channel = McpChannel.STREAMABLE_STATELESS, mcpEndpoint = "/mcp1")
public class McpServerTool {
@ToolMapping(description = "查询天气预报", returnDirect = true)
public CompletableFuture<String> getWeather(@Param(description = "城市位置") String location) {
return CompletableFuture.completedFuture("晴,14度");
}
}传输方式对应表:(服务端与客户端,须使用对应的传输方式才可通讯)
| 服务端 | 客户端 | 备注 |
|---|---|---|
| STDIO | STDIO | |
| SSE | SSE | |
| STREAMABLE | STREAMABLE | |
| STREAMABLE_STATELESS | STREAMABLE | 对 server 集群很友好 |
- STREAMABLE_STATELESS 集群,不需要 ip_hash,但“原语”变化后无法通知 client
- 添加 solon-ai-core ChatMessage:toNdjson,fromNdjson 方法(替代 ChatSession:toNdjson, loadNdjson),新方法机制上更自由
- 优化 solon-ai-mcp mcp StreamableHttp 模式下 服务端正常返回时 客户端异常日志打印的情况
- 优化 solon-ai-core ToolSchemaUtil 扩展能力,支持注解处理定制(方便第三方集成)
- 优化 solon-ai-mcp MCP 客户端与服务端异常链接状态 立即返回
- 引入 snack4-jsonschema 优化 ToolSchemaUtil
- 添加 solon-ai-core AiMedia:metas 方法
- 添加 solon-ai-core GenerateModel defaultOptions 配置支持
- 添加 solon-ai-core ToolSchemaUtil:buildInputParams 方法,支持 @Body 注解
- 添加 solon-ai-flow GenerateModelCom 组件
- 修复 solon-ai bean 有其它框架代理后,不能识别注解的问题
- 修复 solon-ai ToolSchemaUtil 部分泛型识别失败的问题
- 修复 solon-ai-flow ChatModelCom 加载 chatConfig 配置会出错的问题
- 修复 solon-ai-mcp/mcp-sdk listTools 的 nextCursor 为空时,不能正常获取问题
- 优化 solon-ai-core ToolSchemaUtil:paramOf 方法,增加泛型支持
- 优化 solon-ai-core ToolSchemaUtil:outputSchema 泛型处理
- 修复 solon-ai parseToolCall 接收 stream 中间消息时可能会异常(添加 hasNestedJsonBlock 检测)
- 修复 solon-ai-mcp 可能出现 Unknown media type 错误(取消 request.contentType 空设置)
- jedis 升为 7.0.0 (通过 redisx)
- 修复 solon-ai-mcp/mcp-sdk listTools 的 nextCursor 为空时,不能正常获取问题
- 修复 solon-ai parseToolCall 接收 stream 中间消息时可能会异常(添加 hasNestedJsonBlock 检测)
- 修复 solon-ai-mcp 可能出现 Unknown media type 错误(取消 request.contentType 空设置)
- 优化 solon-ai-mcp 取消 request.contentType("") 设置
- 修复 solon-ai-core chatModel:stream 长流输出可能出错的问题
- 优化 solon-ai-core XxxMessageTemplate 使用 SnEL 替代 TmplUtil
- 修复 solon-ai-mcp/mcp-sdk listTools 的 nextCursor 为空时,不能正常获取问题
- 修复 solon-ai parseToolCall 接收 stream 中间消息时可能会异常(添加 hasNestedJsonBlock 检测)
- 修复 solon-ai-mcp 可能出现 Unknown media type 错误(取消 request.contentType 空设置)
- 优化 solon-ai-mcp 取消 request.contentType("") 设置
- 修复 solon-ai-core chatModel:stream 长流输出可能出错的问题
- mcp 移除 WebRxSseClientTransport:sendMessage 的 accept 声明(是在 3.5.5 时加的,此处没必要)
- 添加 McpClientProvider:httpFactory 默认为 jdkhttp(okhttp 有些平台不兼容),不再随 HttpUtils 的全局走
- 添加 solon-ai-mcp McpClientProvider:httpFactory 默认为 jdkhttp(okhttp 有些平台不兼容),不再随 HttpUtils 的全局走
- 优化 solon-ai-core chatModel.stream 与背压处理的兼容性
- 调整 solon-ai-map getPrompt,readResource,callTool 取消自动异常转换(侧重原始返回)
- 调整 solon-ai-map callTool 错误结果传递,自动添加 'Error:' (方便 llm 识别)
- 修复 solon-ai-mcp callTool isError=true 时,不能正常与 llm 交互的问题
- 修复 solon-ai-mcp ToolAnnotations:returnDirect 为 null 时的传递兼容性
- 添加 solon-ai-core ToolSchemaUtil 简化方法
- 添加 solon-ai-mcp McpClientProperties:timeout 属性,方便简化超时配置(可省略 httpTimeout, requestTimeout, initializationTimeout)
- 添加 solon-ai-mcp McpClientProvider:toolsChangeConsumer,resourcesChangeConsumer,resourcesUpdateConsumer,promptsChangeConsumer 配置支持
- 添加 solon-ai-mcp McpClientProvider 缓存锁和变更刷新控制
- 添加 solon-ai-mcp IMcpServerEndpoint 接口(方便可批量获取组件)
- 优化 solon-ai-core RepositoryStorable 接口定义,用 save 替代 insert(标为弃用)
- 调整 solon-ai-core FunctionToolDesc:doHandle 改用 ToolHandler 参数类型(之前为 Function),方便传递异常
- 新增 solon-ai-a2a 插件
- 新增 solon-ai-core GenerateModel 接口,替代 ImageModel
- 新增 solon-ai-core ChatModel 增加多媒体内容输出(增强感知型模型的兼容,比如输出图片或视频)
- 新增 solon-ai-core ImageModel 增加结构体提示语输入(比如图片编辑模型)
- 添加 solon-ai-core AbstractChatDialect 对多媒体内容输出的支持
- 添加 solon-ai-core AssistantMessage:contentRaw 原生内容(可能是 String、Map、List、null)
- 添加 solon-ai-dialect-dashscope 通过接口地址识别方言
- 添加 solon-ai-mcp McpServerEndpointProvider:Builder 添加 context-path 配置
- 优化 solon-ai-mcp McpClientProvider 配置向 McpServers json 格式上靠
- 修复 solon-ai-core
think-> tool -> think时,工具调用的内容无法加入到对话的问题 - 修复 solon-ai-mcp 服务端传输层的会话长连会超时的问题
- 修复 solon-ai-mcp 客户端提供者心跳失效的问题
- 修复 solon-ai-mcp SSE 传输时 message 端点未附加 context-path 的问题
- mcp
McpSchema:*Capabilities添加@JsonIgnoreProperties(ignoreUnknown = true)增强跨协议版本兼容性
- 新增 solon-ai-mcp mcp-java-sdk v0.11.0 适配(支持 2025-03-26 版本协议)
- 调整 solon-ai-mcp channel 取消默认值(之前为 sse),且为必填(利于协议升级过度,有明确的开发时、启动时提醒)
- 如果默认值仍为 sse ,升级后可能忘了修改了升级
- 如果默认值改为 streamable,升级后会造成不兼容
- 优化 solon-ai-core chatModel.stream 与背压处理的兼容性
- 调整 solon-ai-map getPrompt,readResource,callTool 取消自动异常转换(侧重原始返回)
- 调整 solon-ai-map callTool 错误结果传递,自动添加 'Error:' (方便 llm 识别)
- 修复 solon-ai-mcp callTool isError=true 时,不能正常与 llm 交互的问题
- 添加 solon-ai-dialect-dashscope 通过接口地址识别方言
- 添加 solon-ai-mcp McpClientProperties:toolsChangeConsumer,resourcesChangeConsumer,resourcesUpdateConsumer,promptsChangeConsumer 配置支持
- 添加 solon-ai-mcp McpClientProvider 缓存锁和变更刷新控制
- 修复 solon-ai-core think-> tool -> think 时,工具调用的内容无法加入到对话的问题
- mcp XxxCapabilities 添加
ignoreUnknown=true增强旧协议兼容
- 新增 solon-ai-repo-mysql 插件
- 添加 solon-ai-core InMemoryChatSession(语义清晰) 替代 ChatSessionDefault(标为弃用)
- 优化 solon-ai-core ChatRequestDescDefault http 异常转换描述
- 优化 solon-ai-core 方言的 tool_calls 消息的构建(更好的兼容 vllm)
- 优化 solon-ai-mcp JsonSchema.additionalProperties 兼容性(兼容 bool, map)
- 优化 solon-ai-mcp McpClientProvider 改为 McpAsyncClient(为异步需求提供支持)
- 优化 solon-ai-mcp 初始化控制(禁用 connectOnInit),增加连接打印
- 新增 solon-ai-repo-pgvector 插件
- 新增 solon-ai-search-baidu 插件
- 添加 solon-ai-core
TextLoader(byte[])(SupplierEx<InputStream>)构造方法 - 添加 solon-ai-core
ChatConfig:defaultToolsContext(默认工具上下文),defaultOptions(默认选项) 属性 - 添加 solon-ai-core
RepositoryStorable:insert(list,progressCallback)和asyncInsert(list,progressCallback)方法,支持进度获取 - 添加 solon-ai-mcp 客户端 ssl 定制支持
- 优化 solon-ai 方言 think 思考内容和字段的兼容性处理
- 优化 solon-ai 方言处理与 modelscope(魔搭社区)的兼容性
- 优化 solon-ai 方言处理与 siliconflow(硅基流动)的兼容性
- 优化 solon-ai 方言处理的流式节点识别兼容性
- 优化 solon-ai 用户消息的请求构建(当内容为空时,不添加 text)
- 优化 solon-ai-mcp McpClientProvider 心跳间隔控制(5s 以下忽略)
- 优化 solon-ai-mcp McpServerContext 增加 stdio 代理支持(环境变量自动转为 ctx:header)
- mcp WebRxSseClientTransport 添加 debug 日志打印
- 新增 solon-ai-repo-opensearch 插件
- 添加 solon-ai Options:toolsContext 方法
- 调整 solon-ai-core ToolCallResultJsonConverter 更名为 ToolCallResultConverterDefault 并添加序列化插件支持
- 调整 solon-ai-mcp PromptMapping,ResourceMapping 取消 resultConverter 属性(没必要)
- 修复 solon-ai-core ChatModel:stream:doOnNext 可能无法获取 isFinished=true 情况
- 优化 solon-ai-core ToolSchemaUtil 对 Map 的处理(有些框架,太细不支持)
- 优化 solon-ai-core ToolSchemaUtil 对 Collection 的处理(有些框架,太细不支持)
- 优化 solon-ai-mcp MethodPromptProvider,MethodResourceProvider 改用 clz 构建(兼容外部代理情况)
- 优化 solon-ai-core MethodToolProvider 改用 clz 构建(兼容外部代理情况)
- 添加 solon-ai-core RepositoryStorable:insert(Doc...) 方法
- 添加 solon-ai-mcp McpServerEndpoint:enableOutputSchema 支持(默认为 false)
- 调整 solon-ai-core ToolCallResultConverter 接口定义(增加返回类型参数)
- 调整 solon-ai-core 移除 QueryCondition:doFilter 方法(避免误解)
- 调整 solon-ai-mcp tool,resource 结果默认处理改为 ToolCallResultJsonConverter
- 调整 solon-ai-repo-elasticsearch 搜索类型,默认改为相似搜索(之前为精准,需要脚本权限)
- mcp 优化 WebRxSseClientTransport 连接等待处理(异常时立即结束)
- elasticsearch-rest-high-level-client 升为 7.17.28
- milvus-sdk-java 升为 2.5.10
- vectordatabase-sdk-java 升为 2.4.5
- 优化 solon-ai-flow 插件
- 添加 solon-ai-core ChatInterceptor 聊天拦截机制
- 添加 solon-ai-core ChatMessage:ofUserAugment 替代 augment(后者标为弃用)
- 添加 solon-ai-core ProxyDesc 的 Serializable 接口实现
- 添加 solon-ai-core ChatOptions:response_format 方法
- 添加 solon-ai-core AssistantMessage:getSearchResultsRaw 方法
- 添加 solon-ai-mcp McpServerEndpointProvider:getMessageEndpoint 方法
- 添加 solon-ai-mcp McpServerParameters http 参数支持
- 添加 solon-ai-mcp McpClientProvider 本地缓存支持(默认 30秒)
- 添加 solon-ai-mcp 原语处理异常日志
- 优化 solon-ai-core ChatConfig.toString (增加 proxy)
- 优化 solon-ai-core Tool:outputSchema 改为必出
- 优化 solon-ai-core 添加 ToolCallException 异常类型,用于 tool call 异常传递(之前为 ChatException)
- 优化 solon-ai OpenaiChatDialect 方言,tool 消息也附带所有的 tools 元信息(之前被过滤了)
- 优化 solon-ai-mcp McpServerContext 同步连接时的请求参数,方便在 Tool 方法里获取
- 优化 solon-ai-mcp McpProviders 在 sse 时,支持 env 也作为 header 处理(有些服务方的配置,是用 env 的)
- 优化 solon-ai-mcp 取消 RefererFunctionTool(由 FunctionToolDesc 替代)
- 优化 solon-ai-mcp 基于 McpServerParameters 的构建能力
- 修复 solon-ai-flow ChatModel 没有加载 mcpServers 配置的问题
- mcp 适配优化 WebRxSseClientTransport 关闭时同时取消 sse 订阅(避免线程占用)
- 新增 solon-ai-flow 插件
- 新增 solon-ai-load-ddl 插件
- 添加 solon-ai-core ChatMessage:ofUser(media) 方法
- 添加 solon-ai-core ChatSession:addMessage(Prompt) 方法
- 添加 solon-ai-core ChatSession:addMessage(Collection) 方法
- 添加 solon-ai-core RerankingConfig,RerankingModel toString 方法
- 添加 solon-ai-core 模型的网络代理支持(支持简单配置,和复杂构建)
- 添加 solon-ai-mcp 客户端的网络代理简单配置支持
- 添加 solon-ai-mcp messageEndpoint 端点配置支持(应对特殊需求,一般自动更好)
- 添加 solon-ai-mcp ToolMapping,ResourceMapping 注解方法对 Produces 注解的支持(用它可指定结果转换处理)
- 添加 solon-ai-mcp ToolCallResultConverter:matched 方法
- 添加 solon-ai-mcp 资源模板的响应适配
- 添加 solon-ai-mcp McpClientProvider:getResourceTemplates 方法
- 添加 solon-ai-mcp 检查原语是否存在的方法(hasTool, hasPrompt, hasResource)
- 添加 solon-ai-mcp 提示语支持 UserMessage 拆解成多条 mcp 内容(如果,同时有媒体和文本的话)
- 优化 solon-ai-core tool 空参数时的不同大模型兼容性
- 优化 solon-ai-core ChatSession 的作用,为限数提供支持
- 优化 solon-ai-core MethodFunctionTool 移除对 Mapping 注解的支持(语意更清楚,之前 MethodToolProvider 已经移除,这个落了)
- 优化 solon-ai-core EmbeddingRequest,ImageRequest,RerankingRequest 当 resp.getError() 非 null 时,直接出抛异常
- 优化 solon-ai-mcp 取消 MethodFunctionResource 对反回类型的限制(增加了 resultConverter 转换处理)
- 优化 solon-ai-mcp McpServerEndpointProvider 支持零添加原语,postStart 后,可添加原语
- 修复 solon-ai ChatRequestDefault:stream 请求 r1 时,可能会产生两次 tink 消息发射
- 新增 solon-ai-repo-dashvector 插件
- 插件 solon-ai 三次预览
- 插件 solon-ai-mcp 二次预览
- 调整 solon-ai 移除 ToolParam 注解,改用
Param注解(通用参数注解) - 调整 solon-ai ToolMapping 注解移到
org.noear.solon.ai.annotation - 调整 solon-ai FunctionToolDesc:param 改为
paramAdd风格 - 调整 solon-ai MethodToolProvider 取消对 Mapping 注解的支持(利于跨生态体验的统一性)
- 调整 solon-ai 拆分为 solon-ai-core 和 solon-ai-model-dialects(方便适配与扩展)
- 调整 solon-ai 模型方言改为插件扩展方式
- 调整 solon-ai-mcp McpClientToolProvider 更名为 McpClientProvider(实现的接口变多了)
- 优化 solon-ai 允许 MethodFunctionTool,MethodFunctionPrompt,MethodFunctionResource 没有 solon 上下文的用况
- 优化 solon-ai-core
model.options(o->{})可多次调用 - 优化 solon-ai-mcp McpClientProvider 同时实现 ResourceProvider, PromptProvider 接口
- 优化 solon-ai-repo-redis metadataIndexFields 更名为
metadataFields(原名标为弃用) - 添加 solon-ai-core ChatSubscriberProxy 用于控制外部订阅者,只触发一次 onSubscribe
- 添加 solon-ai-mcp McpClientProperties:httpProxy 配置
- 添加 solon-ai-mcp McpClientToolProvider isStarted 状态位(把心跳开始,转为第一次调用这后)
- 添加 solon-ai-mcp McpClientToolProvider:readResourceAsText,readResource,getPromptAsMessages,getPrompt 方法
- 添加 solon-ai-mcp McpServerEndpointProvider:getVersion,getChannel,getSseEndpoint,getTools,getServer 方法
- 添加 solon-ai-mcp McpServerEndpointProvider:addResource,addPrompt 方法
- 添加 solon-ai-mcp McpServerEndpointProvider:Builder:channel 方法
- 添加 solon-ai-mcp ResourceMapping 和 PromptMapping 注解(支持资源与提示语服务)
- 添加 solon-ai-mcp McpServerEndpoint AOP 支持(可支持 solono auth 注解鉴权)
- 添加 solon-ai-mcp McpServerEndpoint 实体参数支持(可支持 solon web 的实体参数、注解相通)
- 添加 solon-ai-mpc
Tool.returnDirect属性透传(前后端都有 solon-ai 时有效,目前还不是规范)
- 添加 solon-ai ChatRequestDefault http 状态异常处理
- 添加 solon-ai ToolCallResultConverter 接口(工具调用结果转换器)
- 添加 solon-ai ToolCall 添加 Mapping 和 Param 注解(支持与 web api 打通)
- 添加 solon-ai Tool.returnDirect 属性,用于直接返回给调用者(mcp 目前无法传导此属性,只能地本地用)
- 添加 solon-ai-mcp McpChannel 通道(stdio, sse),实现不通道的支持
- 添加 solon-ai-mcp stdio 通道交换流支持
- 添加 solon-ai-mcp McpClientToolProvider 断线重连机制
- 添加 solon-ai-mcp McpClientProperties:fromMcpServers 方法
- 调整 solon-ai-mcp McpClientToolProvider.Builder:header 更名为 headerSet。保持与 ChatModel:Builder 相同风格
- 调整 solon-ai ToolCallResultConverter 申明不再扩展自 Converter,避免冲突
- 修复 solon-ai-mcp McpClientToolProvider 会丢失 queryString 的问题
- 修复 solon-ai-load-word WordLoader 流使用错误问题
- 修复 solon-ai ollama 方言,在多工具调用时产生 index 混乱的问题
- 新增 solon-ai-mcp
- 调整 函数(Function)相关的概念改为工具概念(Tool)。调整后适合 mcp 的相关概念
- 新增 solon-ai-repo-chroma 插件
- 优化 solon-ai-repo-tcvectordb 插件相似度处理
- 优化 solon-ai-repo-elasticsearch 插件相似度处理
- 新增 solon-ai-load-ppt 插件,添加对 ppt, pptx 文档的解析
- 新增 solon-ai-load-word 插件,添加对 doc, docx 文档的解析
- 新增 solon-ai-repo-qdrant 插件
- 新增 solon-ai-repo-tcvectordb 插件
- 新增solon-ai-repo-elasticsearch 插件
- 添加 solon-ai ChatResponse:getAggregationMessage(), isStream() 方法
- 添加 solon-ai ChatSession 自动登记处理
- 调整 solon-ai ChatDialect:parseResponseJson 定义
- 修复 solon-ai 在流式调用时 function call 出错的问题