Files
Easy-Agents/changes.md
2026-02-22 18:55:40 +08:00

857 lines
35 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Easy-Agents ChangeLog
## v2.0.0-rc.6 20260127
- fix(core): update message retrieval and context handling in streaming components
- feat(http): add proxy authentication support to OkHttpClientUtil
- feat(github): add issue templates for bug reports and documentation feedback
## v2.0.0-rc.5 20260127
- feat(core): add JSON error message detection and enhance embedding model error handling
- feat(test): add ChatOptions support and enhance stream testing utilities
- refactor(chat): rename extra field to extraBody in ChatOptions
- fix(stream): handle failure flag properly in stream client listener
- refactor(core): remove unused string utility and simplify thinking protocol logic
- refactor(chat): rename variable for clarity in OpenAI request builder
- refactor(chat): rename extra field to extraBody in ChatOptions
- refactor(chat): remove default thinking protocol handling and add dynamic protocol detection
- feat(chat): add thinking protocol support for chat configurations
## v2.0.0-rc.4 20260123
- fix: Optimizing Alibaba Cloud vector database vector failure prompt
- feat(embedding): add dimensions and user support to embedding options
- feat(document): add MarkdownHeaderSplitter for hierarchical document splitting
- feat(chat): add reasoning content support for tool messages in chat configuration
## v2.0.0-rc.3 20260112
- feat(readme): add MCP capabilities to the list of features
- fix(openai): remove unsupported top_k parameter from openai request
- fix(openai): handle JSON parsing errors in OpenAI chat client
- refactor(ollama): update configuration defaults and parameter naming
- chore(ollama): clean up request spec builder code
- refactor(qwen): remove response format option from QwenChatOptions
- feat(chat): add response format support to chat options
- chore(build): remove mvn17.sh script
- feat(mcp): add methods to access client descriptor and health checker
## v2.0.0-rc.2 20260108
- fix(deps): update POI dependencies and remove slf4j-simple
- fix(http): add null check for request headers in HttpClient
## v2.0.0-rc.1 20260106
- fix(OpenAIChatMessageSerializer): Added null check for parameters array to prevent NPE
## v2.0.0-beta.9 20260105
- refactor(stream): remove content check in stream client listener
- fix(mcp): handle duplicate client registration properly prevent resource leaks when client is re-registered
- refactor(message): rename shouldNewCall method to isNewCall for clarity
- refactor(message): optimize tool call comparison logic in AiMessage
- test(openai): update OpenAI chat model test with tool call support
## v2.0.0-beta.8 20260104
- fix(observability): correct OpenTelemetry propagator detection logic
- fix(observability): improve OpenTelemetry SDK registration check
- feat(observability): add OpenTelemetry SDK reuse check
## v2.0.0-beta.7 20260104
- refactor(docs): update MCP client method name in documentation
- docs(chat): update MCP documentation with JDK version requirements
- chore(build): set maven compiler properties to Java 8
- docs(chat): add comprehensive MCP client integration guide
- refactor(client): rename getClient to getMcpClient for clarity
- refactor(mcp): move client-related classes to dedicated package
- test(mcp): add comprehensive unit tests for McpClientManager
- feat(config): add MCP server configuration file and Added mcp-servers.json with everything server configuration for test
- refactor(mcp): replace McpRootConfig with McpConfig for server specifications
- feat(mcp): add exception handling for MCP tool calls
- fix(mcp): handle null and single text content in tool invocation
- feat(mcp): add MCP tool retrieval functionality
- feat(mcp): add McpTool implementation for MCP tool integration
- feat(tool): add defaultValue property to Parameter class
- chore(license): Updated copyright year from 2025 to 2026
- (mcp):feat add Model Context Protocol client management module
## v2.0.0-beta.6 20251230
- refactor(core): Replace clearFullMessage with finalizeFullMessage to properly handle content
- fix(stream): clear full message content on stream completion
- test(openai): update OpenAI chat model test configuration and weather function
- refactor(OpenAIChatMessageSerializer): update tool message handling and serialization
- feat(chat): add tool message support with compatibility for models that don't support native format
- refactor(chat): update ChatConfig tool support methods and remove unused field
- test(utils): add ChatModelTestUtils for stream testing
- refactor(stream): simplify message handling and stop logic in BaseStreamClientListener
- refactor(message): update AiMessage delta completion logic
## v2.0.0-beta.5 20251219
- test(openai): remove unnecessary thread sleep in chat model tests
- feat(chat): add includeUsage option for streaming responses
- feat(openai): add stream chat test for bailian model
- feat(core): add stopped flag and improve stream listener logic
- fix(stream): handle final delta correctly in stream client listener and Wrapped final message notification in try-finally block
- feat(openai): add support for extra options in chat request
- docs(models): update embedding model translation
## v2.0.0-beta.4 20251210
- fix(core):优化AI消息增量更新的空值判断
- fix(core):修复工具调用合并逻辑
- chore(deps): 移除嵌入模型相关依赖配置
- fix(message):优化 ToolCall 参数解析逻辑
- feat(core):优化聊天模型和客户端实现
- fix: embedding module packaging
- feat(bom): 添加嵌入模型依赖项
## v2.0.0-beta.2 20251202
- 修复:修复 Maven 依赖异常,更新版本号,感谢 @jieven
## v2.0.0-beta.1 20251126
- 移除 Chain 模块,合并到 Tinyflow
- 移除 documentParser 模块
- 移除 DocumentLoader 模块
- 新增 file2text 模块
- 新增 observability 模块
- 新增 RAG 执行 AI 对文档进行拆分
- 修改 LLM 为 ChatModel
- 修改 LLMClient 为 StreamClient
- 修改 LLMClientListener 为 StreamClientListener
- 修改 LLMConfig 为 ChatConfig
- 修改 Function 为 Tool
- 重命名 PromptFormat 为 MessageFormat
- 重命名 TextPromptTemplate 为 PromptTemplate
- 重命名 TextPrompt 为 SimplePrompt
- 重命名 HistoriesPrompt 为 MemoryPrompt
- 重命名 HumanMessage 等合并为 UserMessage
## v1.4.2 20251117
- 新增:新增本地 Token 计算的相关内容,方便在某些情况下无法获取外部 token 时使用
- 新增: 新增 file2text 模块
- 新增: Chain 支持主动去 暂停执行 或 恢复执行
- 新增feat: 新增可观测的相关能力
- 优化:重构移动 ReAct 的包到 agents 目录下
- 优化:优化 Chain.addEdge 自动为没有 id 的 edge 添加 id
- 优化Chain.addNode 自动为 node 添加 inwardEdges 和 outwardEdges
- 优化:优化 ChainHolder 的属性类型定义,方便准确序列化
- 优化ChainEdge 移除无用的定义
## v1.4.1 20251023
- 新增prompt 格式化新增 `{{ aa ?? bb ?? 'default'}}` 取值语法
- 优化:优化 chain.get 方法获取数据的性能
- 优化:移除 gitee 旧的 api 支持(官方已下架)
## v1.4.0 20251020
- 修复: computeCost 可能等于 null 而出现 NPE 的问题
## v1.3.9 20251019
- 新增: 添加 Chain 关于算力消耗配置的功能
- 新增: Chain 添加 loopNodeExecutionLimit 配置,保护由于用户配置不当可能造成死循环执行的问题
- 新增: 优化监听器,当多个监听器发生时,有监听器发生错误不影响其他监听器执行
- 新增: Node 支持配置积分消耗的计算逻辑和表达式
- 新增: Chain 的取值支持三目运算
- 修复:避免截断后添加 systemMessage 时导致 memory 中的 systemMessage 越来越多
## v1.3.8 20251010
- 新增:图片消息添加多张图片的支持
- 新增:大模型节点添加图片识别的能力
- 新增:大模型节点支持多种 json 格式输出
- 优化:优化 okHttpclient 的请求机制,更轻量化
- 优化:优化 OkHttpClientUtil 的配置支持环境变量
- 优化ImageUtil 支持自动添加 base64 url 前缀
## v1.3.7 20250929
- 新增:支持 Chroma 向量数据库1.1.10),目前只支持单租户,单数据库(有默认且可配置),感谢 @joe.wen
- 新增TextPromptTemplate.formatToString 添加 escapeJson 参数配置的支持
## v1.3.6 20250924
- 修复ConfirmNode 必须勾选必填才能正确进行数据确认的问题
## v1.3.5 20250917
- 新增: 新增 ChainNodeValidator 用于给 Node 自定义其验证器
- 新增: 新增 ChainNode.validate 方法,用于校验其数据是否完善
- 新增: 工作流执行新增节点算力消耗的定义
- 新增: getParameterValues 通过 LinkedHashMap 返回属性,支持参数顺序
- 优化:优化 HumanMessage 类的函数处理逻辑
- 优化: 重构 Chain 的验证逻辑
- 修复: 修复 Parameter 为非必填,但是也必须输入参数的问题
- 修复: 在 js 执行节点可能出现 java.lang.NoClassDefFoundError: com/ibm/icu/number/Notation 错误的问题
- 修复:正则表达式 `Action Input: (\{.<em>?})` 在匹配时会漏掉最后一个 `"}"` 的问题,感谢 @狂野流星
## v1.3.4 20250817
- 新增Parameter 新增 formPlaceholder 属性
## v1.3.3 20250806
- 优化:优化合并 ConfirmParameter 到 Parameter以支持更多的场景
## v1.3.2 20250731
- 优化:优化 AiMessageResponse.getFunctionCallers 方法
- 修复:多轮 tool call 时,获取最后一条 HumanMessage 错误的问题
- 修复Chain 的 Parameter 类型为 Array 时,内容固定值无法解析的问题
## v1.3.1 20250722
- 新增ChatOptions 新增 extra 配置,用于自定义大模型的参数内容
- 修复:节点异步执行的情况下,可能出现 check 不正确的问题
- 修复jsExecNode 无法转换结果为 JsonObject 的问题
- 优化:优化 getNodeContext 方法,只需要传入 id 值
- 优化:移除 Moonshot ,使用 openai 替代
## v1.2.9 20250718
- 优化:优化 parent 和 children 的过度设计,使之逻辑更加简洁
- 修复:修复 Node 包含子的 chain 时,会导致 json 解析错误的问题
## v1.2.8 20250715
- 新增: ReActAgent 添加 ChatOptions 的设置能力
- 新增: ConfirmParameter 添加更多的配置参数支持
- 优化: 优化 getParameterValues 的错误信息
- 优化: 移除 chain 非必要的 error 日志
- 优化: 优化 Chain.getParameterValues
## v1.2.7 20250713
- 新增:代码执行节点添加 “_context” 对象
- 新增:新增 Chain.toJSON() 和 Chain.fromJSON() 方法
- 新增:新增 ConfirmNode 用于支持用户手动确认的场景
- 优化:优化 Chain.getParameterValues 方法
- 优化:移动 Chain 监听器的相关类到 listener 包里去
## v1.2.6 20250709
- 新增: Chain 新增 getNodeExecuteResult 方法
- 优化:优化重构 EdgeCondition 和 NodeCondition 方法
## v1.2.5 20250707
- 新增:新增 Audio 多模态的支持
- 新增:新增 ReActMessageBuilder允许用户构建自定义的消息
- 优化feat: 修改 TextAndImageMessage 和 TextAndAudioMessage 为 HumanImageMessage 和 HumanAudioMessage
- 修复DeepseekLlm 无法自动注入,配置 factories 文件
## v1.2.4 20250701
- 新增:在节点执行出错时,添加必要的错误日志输出
- 新增:大模型 Parameter 添加子 Parameter 的配置支持
- 新增ReActAgent 添加 continueOnActionJsonParseError 和 continueOnActionInvokeError 配置
- 修复:修复 EmbeddingModel.dimensions() 错误信息不友好的问题
- 修复tool call第二次请求模型时缺少了tools信息 close #ICG584
## v1.2.3 20250626
- 新增:节点添加循环执行的配置能力
- 新增:新增 starter 中 deepseek 的配置支持openai 可以指定 chatpath 属性
- 新增OpenAILlm 支持自定义 HttpClient
- 优化:优化 bom 模块依赖冲突 close #ICG2TD
- 优化:优化 ReActAgent 代码,新增更多的监听支持
- 优化:优化 OkHttpClientUtil 的默认参数
- 优化:重命名 JavascriptStringCondition 为 JsCodeCondition
- 修复:修复 Gitee 生成图片错误的问题
- 文档:更新 chain 的相关文档
- 文档:更新优化 LLM 示例代码
- 文档:优化 prompt 示例代码
- 文档:节点循环示例代码
## v1.2.2 20250618
- 新增:新增 es 和 lucene 搜索引擎
## v1.2.0 20250614
- 新增:新增 "default" rerank 模型,用于对接多个不同的 rerank 服务
- 新增:新增 ReAct Agent
- 优化:挂起-恢复执行逻辑优化,每次执行节点移除挂起节点列表中该节点
## v1.1.8 20250605
- 新增:阿里云增加余弦相似度得分回显
- 修复: 修正 Milvus 下 COSINE 相似度计算方法
## v1.1.7 20250604
- 修复:使用 qwen-plus 调用 function_call 没有正确拼接大模型返回的参数问题
- 修复: 修复 DeepseekLlmUtil 类型转换错误
- 修复: HistoriesPrompt 的 toMessages 可能多次添加 systemMessage 的问题
## v1.1.5 20250603
- 修复:修复 CodeNode 的 js 无法通过 "." 调用 map 数据的问题
## v1.1.4 20250530
- 新增: 为 ChainStartEvent 和 ChainResumeEvent 添加获取初始化参数的功能
- 优化: 优化 JsExecNode 在每次执行脚本时新建一个独立 Context
- 优化: 优化 Event 的 toString
- 修复: node 的状态在执行时未自动变化的问题
## v1.1.3 20250527
- 修复:修复阿里云百炼 text-embedding-v3 向量化使用 milvus 使用默认向量模型导致两次维度不一致问题
- 修复qwen3 非流式返回设置 enable_thinking 为 false
## v1.1.2 20250524
- 新增: StreamResponseListener 添加 onMatchedFunction 方法
- 新增: 添加 openai 兼容 api 的其他第三方 api 测试
- 优化: 添加 FunctionPrompt 的 toString 方法
- 优化: 优化 ImagePrompt 的方法
- 优化: 优化 ToolPrompt 支持多个方法调用
- 优化: 优化 Stream 模型下的 Function Call
- 优化: 优化 SseClient 的 tryToStop 方法
- 优化: 优化 FunctionCall 以及添加 toString 方法
- 优化: 优化 OpenAILlm.java
## v1.1.1 20250522
- 新增:新增 NodeErrorListener 用于监听 node 的错误情况
- 优化:重构 ChainErrorListener 的参数顺序
- 优化:优化 getParameterValues 的默认值获取
## v1.1.0 20250516
- 优化:增强 LLM 的 markdown 包裹优化
- 优化:重命名 StringUtil.obtainFirstHasText 方法名称为 getFirstWithText
- 修复:修复大模型节点,返回 json 内容时不正确的问题
- 修复:修复 EndNode 在输出固定值时出现 NPE 的问题
## v1.0.9 20250513
- 新增: Chain 添加 reset 方法,使之调用后可以执行多次
- 优化:不允许设置默认 EmbeddingOptions 配置的 encodingFormat
- 优化:修改模型思考过程的设置,让 content 和 reasoningContent 输出内容一致,感谢 @Alex
## v1.0.8 20250511
- 优化:优化 elasticSearch 用户自定义集合名称就用用户自定义集合,没有传就用默认集合名称
- 优化:从命名 TextPromptTemplate.create 方法名称为 TextPromptTemplate.of更加符合 “缓存” 的特征
- 修复:修复 openSearch 存储报错问题
- 文档:添加提示词相关文档
- 文档:添加 “模板缓存” 的相关文档
- 测试:添加 milvus 向量存储用法示例测试类,感谢 @lyg
## v1.0.7 20250508
- 新增: 添加 Milvus 的相识度返回
- 新增: Chain.getParameterValues 添加对固定数据格式填充的能力
- 优化: Parameter 添加 dataType 默认数据
- 优化: TextPromptTemplate.create 添加缓存以提高性能
## v1.0.6 20250507
- 新增: 增加 qdrant 向量数据库支持
- 优化: 重构 TextPromptTemplate使其支持更多的语法
- 优化: 优化 pom 管理
## v1.0.5 20250430
- 新增: 允许通过 ChatOptions 在运行时动态替换模型名称
- 新增:增加是否开启思考模式参数,适用于 Qwen3 模型
- 新增Document 增加文档标题
- 新增:增强知识库查询条件
- 新增:优化 Chain 的 get 逻辑,支持获取对象的属性内容
- 测试:添加通过 OpenAI 的 API 调用 Gitee 进行图片识别
- 测试:添加 chain 的数据获取测试
## v1.0.4 20250427
- 新增: 为 VectorData 添加 score 属性,统一文档 score 字段
- 优化:重构 Chain 的异步执行逻辑
## v1.0.3 20250425
- 新增: deepseek-r1 推理过程增量输出改为完整输出和内容的输出保持一致,感谢 @liutf
- 新增: 增加 QwenChatOptions让通义千问支持更多的参数感谢 @liutf
- 新增:新增 ChainHolder用于序列化 ChainNode以支持分布式执行
- 优化:优化 Chain在暂停时抛出异常
## v1.0.2 20250412
- feat: add JavascriptStringCondition
- refactor: move "description" property to ChainNode
- test: add ChainConditionStringTest
---
- 新增:添加 JavascriptStringCondition 条件
- 重构:移动 "description" 属性到 ChainNode
- 测试:添加 ChainConditionStringTest 测试
## v1.0.1 20250411
- fix: LlmNode can not return the correct result if outType is text
- fix: TextPromptTemplate can not parse `{{}}`
---
- 修复:修复 LlmNode 当配置 outType 时,不能返回正确结果的问题
- 修复TextPromptTemplate 无法可以解析 `{{}}` 的问题
## v1.0.0 20250407
- fix: fixed NodeContext.isUpstreamFullyExecuted() method
- feat: add "concurrencyLimitSleepMillis" config for SparkLlm
- feat: openai add chatPath config and embed path config
- feat: HistoriesPrompt add temporaryMessages config
---
- 修复NodeContext.isUpstreamFullyExecuted() 方法判断错误的问题
- 新增: SparkLlm 添加 concurrencyLimitSleepMillis 配置
- 新增: openai 添加 chatPath 配置和 embed path 配置
- 新增: HistoriesPrompt 添加 temporaryMessages 配置
## v1.0.0-rc.9 20250331
- feat: Added support for vector database Pgvector, thanks @daxian1218
- feat: Chain added "SUSPEND" state and ChainSuspendListener listener
- feat: Chain's RefType added "fixed" type.
- feat: Chain's Parameter added "defaultValue"
- feat: Chain added ChainResumeEvent event
- feat: ChainNode added "awaitAsyncResult" property configuration
- refactor: Return the complete response and answer information of coze chat to obtain complete information such as conversation_id, thanks @knowpigxia
- refactor: Optimize the implementation details of RedisVectorStore
- refactor: Chain removed OnErrorEvent and added ChainErrorListener instead
- refactor: Rename BaseNode's "getParameters" method to "getParameterValues"
- refactor: Rename Chain's event and remove the On prefix
---
- 新增:新增向量数据库 Pgvector 的支持,感谢 @daxian1218
- 新增Chain 新增 "SUSPEND" 状态以及 ChainSuspendListener 监听
- 新增Chain 的 RefType 新增 "fixed" 类型。
- 新增Chain 的 Parameter 新增 "defaultValue"
- 新增Chain 新增 ChainResumeEvent 事件
- 新增ChainNode 新增 "awaitAsyncResult" 属性配置
- 优化:返回 coze chat 完整的 response、answer 信息,以便获取 conversation_id 等完整信息,感谢 @knowpigxia
- 优化:优化 RedisVectorStore 的实现细节
- 优化Chain 移除 OnErrorEvent 并新增 ChainErrorListener 代替
- 优化:重命名 BaseNode 的 "getParameters" 方法为 "getParameterValues"
- 优化:重命名 Chain 的事件,移除 On 前缀
## v1.0.0-rc.8 20250318
- feat: Added LLM support for siliconflow, thanks @daxian1218
- feat: Chain's dynamic code node supports running Javascript scripts, thanks @hhongda
- feat: Removed deepseek's invalid dependency on openai module, thanks @daxian1218
- feat: Optimized EmbeddingModel and added direct embedding of String
---
- 新增:新增 LLM 对 siliconflow硅基流动的支持感谢 @daxian1218
- 新增Chain 的动态代码节点支持运行 Javascript 脚本,感谢 @hhongda
- 优化:移除 deepseek 无效的依赖 openai 模块,感谢 @daxian1218
- 优化:优化 EmbeddingModel添加直接对 String 的 embed
## v1.0.0-rc.7 20250312
- feat: Added the tool of adding reasoning content to the return message, supporting deepseek's reasoning return, thanks @rirch
- feat: Added support for vectorexdb embedded version, no need to deploy database separately, thanks @javpower
- feat: Added support for accessing Tencent's large model language, Wensheng graph model and vectorization interface, thanks @sunchanghuilinqing
- feat: Support for docking Doubao doubao-1-5-vision-pro-32k multimodal model and Wensheng graph, thanks @wang110wyy
- feat: Added Wensheng graph model of Alibaba Bailian platform, thanks @sunchanghuilinqing
- feat: Added VLLM-based large model access, thanks @sunchanghuilinqing
- feat: Added LogUtil for log output
- feat: Optimized the relevant code logic of DnjsonClient
- fix: The problem of too long uid of Spark large model, thanks @wu-zhihao
- fix: ChatStream of Ollama Llm An error occurred when actively closing the stream
- fix: Fixed an issue where the endpoint configuration of OllamaProperties was incorrect by default
---
- 新增:添加在在返回消息中增加推理内容的功能,支持 deepseek 的推理返回,感谢 @rirch
- 新增:添加 vectorexdb 内嵌版本支持,无需额外部署数据库,感谢 @javpower
- 新增:添加接入腾讯大模型语言、文生图模型与向量化接口的支持,感谢 @sunchanghuilinqing
- 新增:对接豆包 doubao-1-5-vision-pro-32k 多模态模型以及文生图的支持,感谢 @wang110wyy
- 新增:新增阿里百炼平台的文生图模型,感谢 @sunchanghuilinqing
- 新增:新增基于 VLLM 部署大模型接入,感谢 @sunchanghuilinqing
- 新增:新增 LogUtil 用于输出日志
- 优化:优化 DnjsonClient 的相关代码逻辑
- 修复:星火大模型的 uid 太长的问题,感谢 @wu-zhihao
- 修复Ollama Llm 的 chatStream 主动关闭流时发生错误的问题
- 修复:修复默认情况下 OllamaProperties 的 endpoint 配置错误的问题
## v1.0.0-rc.6 20250220
- feat: Springboot's automatic configuration class for Ollama
- feat: Added ToolPrompt tool to facilitate the use with Function Call
- refactor: Change openAi to openAI
- refactor: Optimize LlmNode and TextPromptTemplate
- refactor: Upgrade related dependencies to the latest version
- refactor: Optimize the empty user prompt words defined during the LlmNode runtime
- refactor: Move the package name of tools to the directory chatModel (destructive update!!!)
- refactor: Refactor InputParameter and OutputKey to merge into Parameter (destructive update!!!)
- fix: Use the openai interface to connect to the local ollama to build a large model, and multiple tool definitions are called abnormally
- fix: Fix the problem that easy-agents-bom cannot pull group code
---
- 新增Springboot 对 Ollama 的自动配置类
- 新增:新增 ToolPrompt 功能,方便配合 Function Call 的使用
- 优化:修改 openAi 为 openAI
- 优化:优化 LlmNode 和 TextPromptTemplate
- 优化:升级相关依赖到最新版本
- 优化:优化 LlmNode 运行期定义空的用户提示词
- 优化:移动 tools 的包名到目录 chatModel破坏性更新 !!!
- 优化:重构 InputParameter 和 OutputKey 合并到 Parameter破坏性更新 !!!
- 修复:使用 openai 接口对接本地 ollama 搭建大模型,多个函数定义调用异常
- 修复:修复 easy-agents-bom 无法拉群代码的问题
## v1.0.0-rc.5 20250210
- feat: Added support for VectoRex vector database
- feat: Added support for DeepSeek large models
- feat: ImagePrompt adds support for local files, Stream and Base64 configurations
- refactor: easy-agents-bom facilitates one-click import of all modules
---
- 新增:添加 VectoRex 向量数据库的支持
- 新增:增加 DeepSeek 大模型的支持
- 新增ImagePrompt 添加本地文件、Stream 和 Base64 配置的支持
- 优化easy-agents-bom 方便一键导入所有模块
## v1.0.0-rc.4 20241230
- refactor: Use pom to build and only manage versions
- refactor: Optimize the relevant code of RedisVectorStore
- refactor: BaseNode.getChainParameters() method
- refactor: Optimize Chain.executeForResult method
---
- 优化: 采用 pom方式构建并只做版本统一管理
- 优化: 优化 RedisVectorStore 的相关代码
- 优化: BaseNode.getChainParameters() 方法
- 优化: 优化 Chain.executeForResult 方法
## v1.0.0-rc.3 20241126
- refactor: optimize Chain.executeForResult() method
- refactor: optimize Chain events
- fix: fixed Spark payload build error
- fix: fixed qwen model unable to embed
---
- 优化: 优化 Chain.executeForResult() 方法
- 优化: 优化 Chain 的相关 event 事件
- 修复: 修复星火大模型 payload 构建错误
- 修复: 修复 qwen 大模型无法使用 Embedding 的问题
## v1.0.0-rc.2 20241118
- feat: Gitee AI adds support for Function Calling
- feat: HumanMessage adds support for toolChoice configuration
- refactor: Optimize editing node BaseNode and Maps tool classes
---
- 新增: Gitee AI 添加对 Function Calling 的支持
- 新增: HumanMessage 添加 toolChoice 配置的支持
- 优化: 优化编辑节点 BaseNode 和 Maps 工具类
## v1.0.0-rc.1 20241106
- refactor: add BaseFunction.java
- fix: spark LLM can not support v4.0
- fix: fix code node can not get the parameters
---
- 优化:新增 BaseFunction 类
- 修复:修复星火大模型不支持 v4.0 的问题
- 修复:修复代码节点无法获取参数的问题
## v1.0.0-rc.0 20241104
- refactor: refactor chatModel apis
- refactor: refactor chain and nodes
- refactor: optimize easy-agents-solon-plugin @noear_admin
---
- 优化:重构 chatModel api
- 优化:重构 chain 链路 及其相关节点
- 优化:优化 easy-agents-solon-plugin @noear_admin
## v1.0.0-beta.13 20241026
- feat: add plugin for solon framework
- refactor: optimize VectorStore delete methods
- refactor: optimize RedisVectorStore for sort by desc
- refactor: optimize SparkLLM embedding
---
- 新增:添加 solon 添加新的插件支持
- 优化: 重构 VectorStore 的 delete 方法
- 优化: 优化 RedisVectorStore 的搜索排序
- 优化: 星火大模型新增秒级并发超过授权路数限制进行重试
## v1.0.0-beta.12 20241025
- refactoradd DocumentStoreConfig
- refactoroptimize HistoriesPrompt.java
- refactor: update pom.xml in easy-agents-bom
- refactor: upgrade jedis version to "5.2.0"
- refactor: optimize RedisVectorStore
- fix: NoClassDefFoundError in jdk17: javax/xml/bind/DatatypeConverter 感谢 @songyinyin #I9AELG
---
- 优化:添加 DocumentStoreConfig向量数据库的配置都实现 DocumentStoreConfig
- 优化:重构优化 HistoriesPrompt使其支持更多的属性配置
- 优化:更新 easy-agents-bom 的 pom.xml
- 优化:升级 jedis 版本为 "5.2.0"
- 优化:重构 RedisVectorStore 的错误信息,使之错误信息更加友好
- 修复:修复 jdk17 下出现 NoSuchMethodError 问题,感谢 @songyinyin #I9AELG
## v1.0.0-beta.11 20240918
- feat: GenerateImageRequest add negativePrompt property
- feat: Maps Util add putOrDefault method
- feat: add siliconFlow image models
- feat: ChatOptions add "seed" property
- feat: Maps can put a child map by key
- feat: Ollama add options config
- feat: Ollama tool calling support
- feat: add StringUtil.isJsonObject method
- refactor: BaseImageRequest add extend options property
- refactor: make ImagePrompt to extends HumanMessage
- refactor: ImageResponse add error flag and errorMessage properties
- refactor: rename Image.writeBytesToFile to writeToFile
- refactor: rename "giteesd3" to "gitee"
- refactor: optimize VectorData.toString
---
- 新增GenerateImageRequest 添加反向提示词相关属性
- 新增Maps 工具类添加 putOrDefault 方法
- 新增:添加 siliconFlow 的图片模型的支持
- 新增: ChatOptions 添加 "seed" 属性
- 新增Maps 可以 put 一个子 map 的功能
- 新增:新增 Ollama 的函数调用Function Calling的支持
- 新增:添加 StringUtil.isJsonObject 方法
- 优化:重构 BaseImageRequest 类,添加 options 属性
- 优化:重构 ImagePrompt 使之继承于 HumanMessage
- 优化:重构 ImageResponse 类,添加 error 和 errorMessage 属性
- 优化:修改 Image.writeBytesToFile 方法为 writeToFile
- 优化:重命名 "giteesd3" 为 "gitee"
- 优化:重构 VectorData.toString 方法
## v1.0.0-beta.10 20240909
- feat: Added support for RedisStore vector storage, thanks to @giteeClass
- feat: Added support for large model dialogues for Coze Bot, thanks to @yulongsheng
- feat: Automatic configuration of Springboot for ElasticSearch Store, thanks to @songyinyin
- feat: Added support for Embedding of Tongyi Qianwen, thanks to @sssllg
- feat: Added support for all text generation models of Gitee AI's serverless
- feat: Added support for all image generation models of Gitee AI's serverless
- docs: Corrected sample code errors in the documentation
---
- 新增:添加 RedisStore 的向量存储支持,感谢 @giteeClass
- 新增:新增 Coze Bot 的大模型对话支持,感谢 @yulongsheng
- 新增: ElasticSearch Store 对 Springboot 的自动配置功能,感谢@songyinyin
- 新增:新增通义千问的 Embedding 支持,感谢 @sssllg
- 新增:新增对 Gitee AI 的 serverless 所有文本生成模型的支持
- 新增:新增对 Gitee AI 的 serverless 所有图片生成模型的支持
- 文档:修正文档的示例代码错误
## v1.0.0-beta.9 20240813
- feat: add custom request header in openaiLLM https://github.com/easy-agents/easy-agents/issues/5
- feat: add https.proxyHost config for the http client, close https://github.com/easy-agents/easy-agents/issues/1
- feat: add SpringBoot3 auto config support @songyinyin
- feat: add openSearch store support @songyinyin
- fix: fix config error in QwenAutoConfiguration @songyinyin
- fix: NPE in OpenAILLmUtil.promptToEmbeddingsPayload
- fix: fix FunctionMessageResponse error in BaseLlmClientListener, @imayou
- refactor: update bom module
- refactor: optimize SparkLlm.java
---
- 新增: 添加自定义 openaiLLM 请求 api 的支持 https://github.com/easy-agents/easy-agents/issues/5
- 新增: 添加 https.proxyHost 配置的支持 https://github.com/easy-agents/easy-agents/issues/1
- 新增: 添加对 SpringBoot3 自动配置的支持 @songyinyin
- 新增: 添加使用 openSearch 用于向量数据存储的支持 @songyinyin
- 修复: 修复 QwenAutoConfiguration 配置错误的问题 @songyinyin
- 修复: 修复 OpenAILLmUtil.promptToEmbeddingsPayload 空指针异常的问题
- 修复: 修复 FunctionMessageResponse 在某些情况下出错的问题, @imayou
- 优化: 更新重构 bom 模块
- 优化: 优化 SparkLlm.java 的相关代码
## v1.0.0-beta.8 20240714
- feat: add "async" flag for the ChainNode
- feat: add Ollama LLM
- feat: add DnjsonClient for OllamaLlm
- refactor: refactor ChainCondition.java
- refactor: add throw LlmException if LLMs has error
- refactor: refactor DocumentParser
- refactor: refactor chain module
- refactor: rename GroovyExecNode.java and QLExpressExecNode.java
- refactor: add children property in Parameter
- refactor: remove unused code AsyncHttpClient.java
- refactor: use LlmException to replace LLMClientException
fix: Milvus type mismatch for filed 'id'
- test: add LoopChain test
- test: add ollama test use openai instance
- docs: add Japanese README
---
- 新增:为 ChainNode 添加 "async" 属性标识的设置
- 新增:添加基于 Ollama 大语言模型的对接,非 openai 适配模式
- 新增:新增 DnjsonClient 用于和 Ollama 的 stream 模型对接
- 优化:重构 ChainCondition
- 优化chat 时当大语言模型发生错误时抛出异常,之前返回 null
- 优化:重构 DocumentParser
- 优化Parameter 支持子参数的配置能力
- 修复Milvus 向量数据库当传入 number 类型是出错的问题
- 测试:添加对 LoopChain 的测试
- 测试:添加文使用 openai 兼容 api 对 Ollama 对接的测试
## v1.0.0-beta.7 20240705
- feat: add image models support
- feat: add SimpleTokenizeSplitter
- feat: add OmniParseDocumentParser
- feat: add openaistability AI and gitee-sd3 AI support
- feat: add moonshot support
- feat: add chain dsl support
- refactor: optimize chatModel clients
- refactor: optimize SparkLLM
- refactor: optimize slf4j dependencies
- refactor: optimize Agent define
- refactor: optimize chain
- test: add .pdf and .doc parse test
- test: add SimpleDocumentSplitterTest.java
---
- 新增:新增图片模型的支持
- 新增:新增 SimpleTokenizeSplitter 分割器
- 新增:新增 OmniParseDocumentParser 文档解析器
- 新增:新增 openai、stability ai 以及 gitee ai 对图片生成的支持
- 新增:新增月之暗面的支持
- 优化:优化 chatModel 客户端的细节
- 优化:优化星火大模型的细节
- 优化:优化 slf4j 依赖的细节
- 优化:优化 Agent 和 Chain 的定义细节
- 测试:添加 .pdf 和 .doc 的解析测试
- 测试:添加文档分割器的测试
- 测试:添加 token 文档分割器的测试
## v1.0.0-beta.5 20240617
- feat: add ImagePrompt to send image to LLM
- feat: chatOptions add topP/topK and stop config
- refactor: rename TextMessage.java to AbstractTextMessage.java
- refactor: refactor chatModel methods
- refactor: refactor FunctionMessageResponse.java
- refactor: optimize HttpClient.java And SseClient.java
- fix: fix tool calling error in QwenLLM
- test: add chat with image test
---
- 新增:新增 ImagePrompt 用于发送图片对话的场景
- 新增:对话模型下的 ChatOptions 添加 topK 和 topP 配置的支持
- 优化:重命名 TextMessage 为 AbstractTextMessage
- 优化:重构 LLM 的方法定义,使之更加简单易用
- 优化:优化 HttpClient.java 和 SseClient.java 的相关代码
- 修复:通义千问 QwenLLM 在 tool calling 下无法正常调用的问题
- 测试:添加发送图片相关的测试内容
## v1.0.0-beta.4 20240531
- feat: OpenAILlm support embedding model config
- feat: add get dimensions method in EmbeddingModel
- feat: SparkLlm support embedding
- feat: optimize MilvusVectorStore
- feat: MilvusVectorStore add username and password config
- refactor: optimize HttpClient.java
- refactor: optimize AliyunVectorStore
- refactor: update StoreOptions to extends Metadata
- refactor: optimize StoreResult and Metadata
- fix: fix AIMessage tokens parse
---
- 新增OpenAILlm 添加自定义 embedding 模型的支持
- 新增EmbeddingModel 添加获取向量维度的支持
- 新增SparkLlm 星火大模型添加对 embedding 的支持
- 新增:添加 Milvus 向量数据库的支持
- 优化:优化 HttpClient 的代码
- 优化:优化 AliyunVectorStore 的代码
- 优化:优化 StoreOptions 和 Metadata 的代码
- 修复AIMessage 的 tokens 消耗解析不正确的问题
## v1.0.0-beta.3 20240516
- featadd "description" to agent for automatic arrangement by LLM
- feat: StoreResult can return ids if document store success
- feat: StoreOptions support set multi partitionNames
- feat: add DocumentIdGenerator for Document and Store
- feat: add ChainException for Chain.executeForResult
- refactor: rename "SimplePrompt" to "TextPrompt"
---
- 新增:为 Agent 添加 description 属性,方便用于 AI 自动编排的场景
- 新增Agent 添加对 outputDefs 的定义支持
- 新增:添加 DocumentIdGenerator 用于在对文档存储时自动生成 id 的功能
- 新增StoreOptions 添加多个 partitionName 配置的支持
- 新增:当 Document 保存成功时,自动返回保存的 id
- 优化Chain.executeForResult 会抛出异常 ChainException
- 修复ChatGLM 的 Chat JSON 解析错误的问题
- 测试:优化 SparkLlmTest 的测试代码
- 文档:完善基础文档