Skip to content

3.3.0

Choose a tag to compare

@Ruqiehou Ruqiehou released this 21 May 09:47
· 82 commits to main since this release

JohaSystem v3.3.0 发版公告

JohaSystem v3.3.0 正式发布。本版本重点完成了决策架构、人设系统和启动方式的重构,让项目结构更清晰、扩展能力更强,也为后续多群、多人格、多工具协同打下基础。

核心亮点

决策模块升级为总分架构

本版本新增统一决策引擎,将原本分散在服务层中的决策逻辑收拢到独立模块中。

现在消息处理流程由 DecisionEngine 统一编排,子模块继续保持单一职责:

  • 模式判断
  • 上下文构建
  • 命令与工具检测
  • 回复概率计算
  • 冷却管理
  • 意图识别
  • 回复决策

这让服务层更加轻量,后续调整决策策略时也不需要频繁改动消息处理主流程。

多人设管理系统上线

原本单一人设模式已经升级为注册表驱动的多人设管理系统。

现在支持:

  • 创建人设
  • 删除人设
  • 重命名人设
  • 切换全局活跃人设
  • 为不同群绑定不同人设
  • 通过注册表持久化保存配置
  • 重启后自动恢复人设和群绑定关系

默认人设为 joha,显示名为 马苏。

群组人设绑定

消息构建器现在会根据 group_id 自动选择人设。

如果某个群绑定了指定人设,该群会优先使用绑定人设;如果没有绑定,则使用当前全局活跃人设。

这意味着不同群可以使用不同人格风格,不再受单一全局人设限制。

启动入口统一

本版本将启动方式统一为根目录 run.py。

旧入口 start.py 已移除,不再做委托跳转,避免多个入口并存导致维护混乱。

NapCat 连接配置独立迁移到:

joha/adapter/config/connection.yaml

启动时会自动读取该配置,并按配置决定是否尝试自动启动 NapCat。

新增命令

本版本新增多人设管理命令:

命令 功能
/人设列表 查看所有已注册人设
/人设信息 [名称] 查看指定人设详情,不填则查看当前活跃人设
/切换人设 名称 切换全局活跃人设
/绑定人设 [群号] 名称 为指定群绑定人设
/创建人设 名称|显示名|描述 创建新人设
/删除人设 名称 删除指定人设,默认人设不可删除

文件变更概览

新增

run.py
joha/run_adapter.py
joha/adapter/config/connection.yaml
joha/storage/personas/personas.json
joha/storage/personas/joha.txt
joha/storage/renshe.txt

重构

joha/managers/personas.py
joha/managers/__init__.py
joha/core/handlers/commands.py

修改

joha/core/builders/message_builder.py
joha/core/handlers/service.py
joha/adapter/config/config.py
joha/decision/decision_engine.py
joha/decision/__init__.py

删除

start.py

兼容性说明

以下旧 API 仍保持可用:

  • get_persona()
  • update_traits()
  • get_traits()
  • list_personas()
  • apply_preset()

这些接口现在默认作用于当前全局活跃人设。

验证情况

本版本已通过 Python 语法编译检查:

python -m compileall joha run.py

结果通过,未发现语法错误。

升级建议

升级后建议检查以下配置:

  1. 确认 NapCat 连接配置已迁移到 joha/adapter/config/connection.yaml
  2. 使用 python run.py 启动项目
  3. 使用 /人设列表 确认默认人设加载正常
  4. 如需多群不同人格,可使用 /绑定人设 群号 人设名 进行配置

总结

v3.3.0 是一次偏架构型的版本更新。它减少了服务层耦合,增强了人设系统的扩展性,并统一了启动方式。后续版本可以在此基础上继续扩展更多人格模板、群组策略和工具调度能力。