Skip to content

KleinBot v2.4.0

Choose a tag to compare

@Aimang2002 Aimang2002 released this 30 Aug 13:19
· 79 commits to main since this release

KleinBot v2.4.0

v2.4.0 是一次大版本更新:代码库全面重构(Action 化、端口适配器、SQLite 持久化、174 项自动化测试),并带来 Web 配置面板、长期记忆、联网搜索等重要能力。

⚠️ 升级须知

  • 配置文件与数据库默认改为点前缀隐藏文件:config.json → .config.json(数据库同理)。旧路径不会自动迁移,升级请手动改名,或用 --config 指定旧路径。
  • 主程序名统一为 KleinBot(不再附带版本号),版本信息通过 --version 查询。
  • 移除 Stable Diffusion 生图链路,绘图统一走 models.drawing 模型端点。
  • 移除无障碍聊天功能,上下文模式命令仅管理员可用。
  • models.registry_path、OneBot 发送 action、线程参数等配置键已移除或改为内部定值。
  • 语音临时文件迁入系统临时目录,不再写入 source/。

新功能

  • Web 配置面板:浏览器端 Klein 主题控制台,支持配置写回、模型供应商编辑、API 标准下拉选择与首次运行引导;首次运行自动生成 .config.json 占位骨架,访问令牌打印在启动日志中。
  • 长期记忆:无向量长期记忆与自动召回,按空闲分钟数(idle_minutes)触发。
  • 联网搜索与网页抓取:接入 Tavily 搜索与无需 Key 的网页抓取工具,工具编排回归模型自主决策。
  • 自然语言定时提醒:全新提醒系统替换旧定时任务模块,24 小时内漏触发的提醒自动补发。
  • Anthropic 标准支持:新增 Anthropic API 接入、原生工具调用与提示缓存断点。
  • 多模态路由:模型视觉能力按模型标注,图片资源与多模态工具统一编排;生图/视觉功能未配置或缺少 API Key 时,机器人会用自然语言说明具体原因,而不是笼统的"生成失败"。
  • 上下文工程:高低水位裁切并持久化锚点,保护前缀缓存;每轮临时指令尾部化,system 提示词保持逐字稳定。
  • 人格持久化:用户人格存入 SQLite,默认人格改读 source/soul.md。
  • 重置命令分层:#重置对话 轻量清空窗口(历史仍可召回),#重置上下文 彻底删除。
  • 通信基础设施:正向 WebSocket / 反向 WebSocket / HTTP 三种模式一键切换;新增 WebSocket 鉴权、OneBot HTTP 事件签名鉴权兼容与请求代理支持。
  • 配置热重载:配置快照重载与差异分类,面板保存即生效。
  • 版本信息体系:--version 打印版本、Git 提交、构建时间、编译器与架构信息。

Bug 修复

  • 完善模型请求取消与超时处理,增加强制退出保护。
  • 修复图片工具重复发送与资源命名问题。
  • 修复上下文首次截断后退化为滑窗的问题。
  • 修复面板中文小字号发虚的渲染问题。
  • Windows 下 HTTPS 回归系统证书存储(Schannel),移除硬编码证书路径。
  • 修复旧版遗留问题:#帮助 失效、图片无法识别、URL 提取失败、网易云歌曲 ID 解析失败、切换模型失败、图片生成失败、早安发送崩溃、语音发送失败、400 错误提示模糊、top_p 参数冲突等。

架构与工程

  • 代码库全面现代化:Action 统一命令与工具调用、端口适配器分离核心业务与外部系统、按用户分片的动态消息调度器、会话服务持久化。
  • 采用 MIT 开源协议。
  • Windows 支持 MinGW 一站式构建(内置 curl、SQLite、Boost 头文件归档)。
  • 自动化测试 174 项全部通过。

运行要求

  • Linux:x86_64,需系统安装 libcurl 与 libsqlite3(Ubuntu 22.04 可用 sudo apt install libcurl4 libsqlite3-0)。
  • Windows:x64,开箱即用(curl、SQLite 与 MinGW 运行时已静态内置,TLS 走系统 Schannel)。