Repository navigation
3.3.0
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
结果通过,未发现语法错误。
升级建议
升级后建议检查以下配置:
- 确认 NapCat 连接配置已迁移到
joha/adapter/config/connection.yaml - 使用
python run.py启动项目 - 使用
/人设列表确认默认人设加载正常 - 如需多群不同人格,可使用
/绑定人设 群号 人设名进行配置
总结
v3.3.0 是一次偏架构型的版本更新。它减少了服务层耦合,增强了人设系统的扩展性,并统一了启动方式。后续版本可以在此基础上继续扩展更多人格模板、群组策略和工具调度能力。