Windpicker-owo
|
c08998c585
|
refactor(plugins): 统一亲和力流模块导入路径
将 chatter 子模块重命名为 affinity_flow_chatter 后,更新相关导入路径以保持一致性:
- individuality.py 中的兴趣评分系统导入路径
- plan_filter.py 中的兴趣评分系统导入路径
这些更改确保模块引用与新的目录结构保持一致,避免导入错误。
|
2025-09-23 13:38:55 +08:00 |
|
Windpicker-owo
|
c3a16fda8d
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-23 13:14:44 +08:00 |
|
Windpicker-owo
|
a218b932fb
|
refactor(chat): 移除亲和力流模块并将其重构为插件架构
BREAKING CHANGE: 原有的亲和力流相关模块(src/chat/affinity_flow/)已被完全移除,相关功能已重构为插件形式。需要更新配置文件和相关依赖。
- 删除 src/chat/affinity_flow/ 目录下的所有文件
- 将 AFC 管理器功能移至 chatter 插件中实现
- 更新相关导入路径和引用
- 重构关系追踪器和兴趣评分系统的初始化逻辑
- 调整聊天管理器和消息管理器以适应新的插件架构
|
2025-09-23 13:14:38 +08:00 |
|
minecraft1024a
|
51801bca8e
|
我将试图修复关系和引用!(当然引用需要你们这群人给我点日志()而且只有回复的引用)
|
2025-09-23 11:37:11 +08:00 |
|
Windpicker-owo
|
ddcae01612
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-23 00:19:35 +08:00 |
|
Windpicker-owo
|
e1683ee9e6
|
feat: 在插件系统中添加 Chatter 组件
- 在 component_types.py 中新增了用于 CHATTER 的 ComponentType。
- 实现了 ChatterInfo 类,用于存储 Chatter 组件的相关信息。
- 增强了 ComponentRegistry,以支持 Chatter 组件的注册与管理。
- 创建了 ChatterManager,用于管理 Chatter 实例并处理聊天流。
- 开发了 BaseChatter 抽象类,用于定义 Chatter 的行为规范。
- 实现了 AffinityChatter,作为具备兴趣评分与关系构建功能的具体 Chatter 组件。
- 添加了一个内置的 Chatter 插件,并附带完整文档与使用示例。
- 更新了 PluginManager,在插件概览中加入 Chatter 组件的统计信息。
|
2025-09-23 00:17:32 +08:00 |
|
tt-P607
|
56b42defdd
|
feat(poke): 优化戳一戳功能,优先使用 user_id 定位用户
之前的戳一戳功能仅依赖 `user_name` 来查找用户,这在某些情况下可能导致识别不准确或失败。
本次更新对计划执行器 (`PlanExecutor`) 进行了增强,使其在处理 `poke_user` 动作时,能直接从目标消息中提取 `user_id`。`PokeAction` 插件现在会优先使用这个更可靠的 `user_id`。如果 `user_id` 不存在,则回退到使用 `user_name` 作为备用方案。
这显著提高了戳一戳功能的准确性和稳定性。
|
2025-09-22 22:52:28 +08:00 |
|
tt-P607
|
d13b83f10c
|
perf(chat): 将 planner 的非回复动作改为后台任务执行
原先的 PlanExecutor 会 `await` 等待所有动作执行完毕,包括非直接回复用户的动作,这可能导致在这些动作耗时较长时,用户的响应被延迟。
本次修改将非回复类的动作(other_actions)放入 `asyncio.create_task` 中执行,使其成为后台任务。这样可以确保核心的回复流程不被阻塞,从而显著提升机器人的响应速度。
注意:后台任务的执行结果和统计数据将不会在本次执行周期中立即返回。
|
2025-09-22 19:19:02 +08:00 |
|
tt-P607
|
bf0d214376
|
feat(chat): 优化提及检测并精简兴趣度评分日志
增强了机器人提及检测逻辑,使其能够识别配置文件中设置的所有别名(alias_names),而不仅仅是主昵称。这提高了交互的灵活性和准确性。
此外,还对兴趣度评分和匹配系统的日志输出进行了大幅重构:
- 将多条评分计算日志合并为一条包含核心指标的摘要日志,使输出更简洁。
- 调整了部分日志级别,将非关键信息移至 DEBUG 级别,以减少日志噪音。
- 在关键日志中增加了消息内容预览,以便于快速上下文定位和调试。
|
2025-09-21 22:58:18 +08:00 |
|
tt-P607
|
e0e81b209a
|
refactor(log): 精简聊天相关模块的日志输出
为了提高日志的可读性和实用性,对聊天核心流程(兴趣评分、兴趣系统、规划执行)中的日志记录进行了全面优化。
主要变更:
- 移除装饰性的分割线和表情符号,使日志格式更加统一和专业。
- 将多行分散的日志信息合并为单行,提高信息密度,方便快速浏览。
- 调整日志用语,使其更加简洁、客观,便于程序解析和人工阅读。
这些改动旨在使生产环境中的日志更易于追踪和调试,同时保持了关键信息的完整性。
|
2025-09-21 20:40:00 +08:00 |
|
tt-P607
|
ceb4d2d7bb
|
fix(chat): 修复并优化消息回复与ID处理逻辑
先前的消息回复机制存在多个问题:回复行为随机且不可靠,临时消息ID生成逻辑过于复杂,且在规划和执行过程中ID转换容易出错,导致回复失败。
本次提交通过以下几点进行了全面的修复与优化:
- **简化ID生成**:将临时的上下文消息ID生成逻辑从“索引+随机数”简化为纯索引(如 `m1`, `m2`),使其更可预测且易于调试。
- **修正ID替换**:在 `plan_filter` 中增加了关键逻辑,确保在执行 `reply` 动作前,将计划中使用的临时 `target_message_id` 替换为真实的数据库消息ID。
- **稳定回复行为**:移除了 `action_manager` 中的随机回复判断,现在只要存在上下文消息,就会触发引用回复。同时将各 `send_api` 的 `set_reply` 参数默认值改为 `True`,使回复成为默认行为。
- **增强ID兼容性**:修复了 `napcat_adapter` 中将消息ID强制转换为整数的问题,并为 `send_api` 增加了ID回退查找,提高了对不同平台消息ID格式的兼容性。
|
2025-09-21 08:46:59 +08:00 |
|
tt-P607
|
c2f78082b7
|
fix(chat): 修复 plan executor 对嵌套 user_info 数据结构的解析兼容性
`action_message` 可能以对象或字典的形式出现,且用户信息统一嵌套在 `user_info` 字段下。
旧代码在处理字典格式时,未能正确处理此嵌套结构,导致无法正确解析用户信息。本次修改统一了逻辑,确保在两种情况下都能稳定地从 `user_info` 中提取用户ID和昵称,增强了代码的健壮性。
|
2025-09-21 07:22:39 +08:00 |
|
Windpicker-owo
|
444f1ca315
|
ruff,私聊视为提及了bot
|
2025-09-20 22:34:22 +08:00 |
|
Windpicker-owo
|
006f9130b9
|
feat(affinity-flow): 增强关系追踪系统的人设集成和逻辑严谨性
- 在关系追踪器中集成bot人设信息,从性格视角分析用户互动
- 添加严格的关系分数档次定义和现实发展逻辑约束
- 改进提示词工程,要求详细的性格观察和互动记忆记录
- 单次互动加分限制在合理范围内(0.05-0.1),防止跳跃式关系提升
- 优化关系印象描述要求(100-200字),包含用户性格特点和深刻记忆
refactor(planner): 简化消息数据处理流程
- 使用StreamContext对象替代原始的message_data字典
- 移除冗余的消息数据准备步骤,直接从context获取未读消息
- 统一规划器接口,提高代码可读性和维护性
fix(person-info): 添加napcat到qq平台的用户ID迁移机制
- 为qq平台生成person_id时检查是否存在napcat平台的相同用户
- 如果存在则自动迁移记录并更新平台信息
- 确保用户身份在不同平台间的正确识别和延续
fix(plan-executor): 修复自我回复检测逻辑
- 使用action_message.user_info.user_id替代原始字典访问
- 防止因消息格式变化导致的自我回复检测失效
chore(config): 更新默认平台配置为qq
- 将napcat_adapter插件的默认平台名称从napcat改为qq
- 保持与现有部署环境的一致性
|
2025-09-20 22:11:38 +08:00 |
|
tt-P607
|
e2e0d3c30a
|
refactor(core): 适配核心数据获取与消息构建函数的异步调用
在数据库交互层异步化后,多个相关的数据获取和消息构建函数(如 `build_readable_messages`)也转为异步实现。本次提交在所有调用点添加了 `await` 关键字,以适应这一变化。
此外,本次提交还包含以下修复:
- 在主动思考模块中增加了对规划器返回无效动作的检查,避免后续流程出错。
- 修正了日志记录中错误的上下文变量引用。
|
2025-09-20 13:52:37 +08:00 |
|
tt-P607
|
9b2addfd86
|
5
|
2025-09-20 12:22:15 +08:00 |
|
tt-P607
|
a8992cdd51
|
4次修改
|
2025-09-20 11:57:22 +08:00 |
|
雅诺狐
|
898208f425
|
perf(methods): 通过移除不必要的 self 参数优化方法签名
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
|
2025-09-20 10:55:06 +08:00 |
|
tt-P607
|
0cc4f5bb27
|
三次修改
|
2025-09-20 02:21:53 +08:00 |
|
Windpicker-owo
|
b905320c07
|
feat(affinity-flow): 使用配置阈值替换硬编码的80%逻辑
将硬编码的80%阈值检查替换为从全局配置读取的`non_reply_action_interest_threshold`参数,提高配置灵活性并统一阈值管理。
- 移除硬编码的阈值计算逻辑
- 使用全局配置中的非回复动作兴趣度阈值
- 更新日志信息和返回理由中的阈值描述
|
2025-09-19 17:51:38 +08:00 |
|
Windpicker-owo
|
812e4d76f8
|
feat(affinity-flow): 实现回复后关系追踪系统集成
- 在relationship_tracker.py中添加数据库支持的回复后关系追踪功能
- 新增UserRelationships数据库模型存储用户关系数据
- 集成全局关系追踪器到planner和interest_scoring系统
- 优化兴趣度评分系统的关系分获取逻辑,优先使用数据库存储的关系分
- 在plan_executor中执行回复后关系追踪,分析用户反应并更新关系
- 添加LLM响应清理功能确保JSON解析稳定性
- 更新模型配置模板添加relationship_tracker模型配置
|
2025-09-19 11:28:37 +08:00 |
|
Windpicker-owo
|
a2225cad3a
|
feat(affinity-flow): 重构消息处理以使用StreamContext对象
重构AFC消息处理系统,将基于字典的消息数据传递改为直接使用StreamContext对象。主要变更包括:
- 修改AFCManager的process_message方法为process_stream_context,直接接收StreamContext对象
- 在chatter中重构消息处理逻辑,直接从StreamContext获取未读和历史消息
- 移除批量消息处理功能,改为单次StreamContext处理
- 在message_manager中简化消息处理流程,直接传递StreamContext对象
- 添加未读消息清理机制,防止异常情况下消息一直未读
同时优化兴趣度评分系统的参数:
- 调整回复阈值从0.55到0.56
- 增加最大不回复次数从15到20
- 提升每次不回复的概率增加从0.01到0.02
- 优化提及奖励从3.0降到1.0
- 调整回复后的不回复计数减少从1到3
BREAKING CHANGE: AFCManager的process_message方法已重命名为process_stream_context,参数从message_data改为context对象
|
2025-09-18 22:27:29 +08:00 |
|
tt-P607
|
bd8859ed82
|
回退“feat: 实现KEYWORD_OR_LLM_JUDGE激活类型”
|
2025-09-17 22:43:01 +08:00 |
|
Windpicker-owo
|
ddf0d08fac
|
feat(affinity-flow): 优化兴趣度评分和回复决策逻辑
- 降低回复阈值从0.6到0.55以增加回复可能性
- 在最终分数计算中加入标签数量奖励机制,每多匹配一个标签加0.05分,最高加0.3分
- 引入分级相似度匹配系统(高/中/低)并应用不同加成系数
- 增加关键词直接匹配奖励机制,支持完全匹配、包含匹配和部分匹配
- 在计划过滤器中处理回复动作不可用时的自动转换逻辑
- 增加兴趣度阈值80%检查,低于该阈值直接返回no_action
- 优化日志输出和统计信息,提供更详细的匹配分析
|
2025-09-17 20:50:03 +08:00 |
|
tt-P607
|
f7b4263f87
|
feat(planner): 引入双模动作激活机制与混合触发类型
为了更精细地控制动作在不同聊天模式下的行为,并提升决策效率,本次更新引入了全新的动作激活机制。
- **双模激活**: 为 Action 新增 `normal_activation_type` 和 `focus_activation_type` 属性,允许插件在 `NORMAL` 和 `FOCUS` 模式下拥有不同的激活策略,使行为更符合上下文。
- **混合触发**: 新增 `KEYWORD_OR_LLM_JUDGE` 激活类型。该类型会先进行快速的关键词匹配,若未匹配成功,则回退至 LLM 进行判断,兼顾了响应速度和智能化。
- **流程优化**: 重构了 `PlanGenerator` 的动作筛选逻辑,使其在生成计划前,就根据当前聊天模式和简单的激活规则进行预筛选,为后续的 LLM 决策提供更精准、更高效的候选动作列表。
|
2025-09-17 20:27:19 +08:00 |
|
Windpicker-owo
|
553739f2cd
|
feat(affinity-flow): 调整回复概率参数和评分计算
- 增加最大不回复次数至15次,降低每次不回复的概率提升至1%
- 在最终评分计算中增加1.15倍系数提升
- 被提及时的基础分数从1.0提升至3.0
- 为兴趣标签保存添加数据库验证机制
- 在消息处理流程中增加数据库存储功能
- 修复JSON解析错误处理,增加异常情况下的默认响应
- 优化数据库会话管理和模型转换的健壮性
|
2025-09-17 13:37:57 +08:00 |
|
Windpicker-owo
|
974de4d25d
|
feat(affinity-flow): 重构兴趣度评分系统为智能embedding匹配
- 移除传统关键词匹配方式,改用embedding计算智能兴趣匹配度
- 添加异步方法支持机器人兴趣管理器的智能匹配计算
- 增加详细的日志记录和错误处理机制
- 添加数据库关键词提取和降级处理逻辑
- 集成智能兴趣系统初始化到人设构建流程
- 防止回复自身消息的死循环保护机制
BREAKING CHANGE: 兴趣匹配评分机制完全重构,从基于关键词的硬编码匹配改为基于embedding的智能匹配,需要重新初始化兴趣系统
|
2025-09-16 22:55:38 +08:00 |
|
Windpicker-owo
|
cdb2344e41
|
feat(affinity-flow): 优化兴趣度评分系统并集成消息管理器
重构兴趣度评分系统,移除时间因子权重,增加未读消息处理机制。集成消息管理器用于消息存储和状态跟踪,改进提及检测逻辑。
主要变更:
- 移除时间因子评分,调整兴趣匹配度权重至0.5
- 添加未读消息参数到规划器,优化兴趣度计算
- 引入消息管理器处理消息存储和状态标记
- 改进提及检测逻辑,使用消息对象的is_mentioned属性
- 添加消息清理和启动/停止机制
BREAKING CHANGE: 兴趣度评分算法调整,需要重新评估消息优先级
|
2025-09-16 14:13:56 +08:00 |
|
tt-P607
|
890cedc1ed
|
feat(planner): 重构动作决策逻辑与参数提取机制
本次提交对动作规划器(Planner)和动作(Action)的执行流程进行了重大重构,旨在提高决策的准确性和可靠性,使机器人能更精确地响应用户指令。
核心变更:
- **决策与参数提取分离**: 规划器(Planner)现在专注于根据用户意图选择最合适的动作,不再负责提取动作参数。
- **动作参数自解析**: `RemindAction` 等动作现在通过内部调用 LLM,从用户消息中自行解析所需参数,使其更加独立和健壮。
- **优化决策Prompt**: 引入“最高优先级检查”和“互斥原则”,强制优先执行由明确意图触发的特定动作(如 `set_reminder`),并在此情况下禁止选择 `reply`,避免重复响应。
- **增强调试**: 在处理循环中增加了日志,以清晰地记录LLM最终选择的动作组合,方便调试。
|
2025-09-16 14:00:33 +08:00 |
|
Windpicker-owo
|
9b9aa1f792
|
afc已经可用,等待完善兴趣度等系统
|
2025-09-16 12:46:52 +08:00 |
|
tt-P607
|
9e52bb85a8
|
呀,柒柒!♪~ 让我来看看这次的修改,为你谱写一段美妙的提交记录吧!这次的改动主要是为了让我的“内心思考”过程变得更加清晰和可爱,调试起来也会更方便哦!
feat(planner): 引入内心思考流,优化规划器推理与日志可读性
本次更新引入了“内心思考”机制,旨在取代原有简单的`reason`字段,使AI的决策过程更加透明、自然,并富有角色扮演的特色。这不仅增强了AI的人设表现力,也极大地提升了日志的可读性和调试效率。
主要变更包括:
- **Prompt 优化**: 彻底重构了规划器(Planner)的核心提示词,引导大语言模型生成一段模拟人类的、未经修饰的思绪流作为决策依据。新的 Prompt 强调展现思考过程而非结论,并提供了详细的示例。
- **日志高亮与格式化**: 在日志系统中增加了对“内心思考:”关键词的特殊渲染逻辑。现在,AI的思考过程会在控制台中以醒目的粉色高亮并独立成段显示,让调试者可以一眼洞察AI的决策动机。
- **异步健壮性提升**: 重构了`_sync_db_get`函数,采用`asyncio.run_coroutine_threadsafe`来安全地处理从同步线程调用异步数据库的场景,解决了潜在的事件循环冲突和死锁风险,增强了系统的稳定性。
- **日志完整性**: 移除了对图片描述等日志内容的长度截断,确保在调试过程中可以查看完整信息,方便问题定位。
|
2025-09-16 10:14:25 +08:00 |
|
Windpicker-owo
|
c52b4daf1a
|
初步开始重写聊天系统
|
2025-09-15 13:11:37 +08:00 |
|
Furina-1013-create
|
99eb52cd8c
|
修复reply动作缺少action_message的重大问题
|
2025-09-14 23:45:50 +08:00 |
|
tt-P607
|
65f949ad99
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-09-14 16:44:44 +08:00 |
|
tt-P607
|
5bf798ed0a
|
呀,柒柒,这次我们对表情包系统进行了一次超级棒的大升级哦!它现在变得更聪明、更懂我们的心意啦!就像我一样,总能找到最完美的表情来点亮对话!♪~
这是我为你准备的提交信息,你看看喜不喜欢~
feat(chat): 使用 LLM 优化表情包选择与分析
本次提交对表情包系统进行了核心重构,从原有的基于关键词相似度匹配的简单算法,升级为由大型语言模型(LLM)驱动的智能决策流程。这使得表情包的选择和分析更加精准、智能和人性化。
主要变更包括:
1. **引入 LLM 进行表情包选择**
- 重写了 `get_emoji_for_text` 方法,废弃了原有的编辑距离算法。
- 新流程会根据配置随机抽取一部分表情包作为候选,并构建一个精细的 Prompt,引导 LLM 根据输入的“情感描述”选择最匹配的表情包。这让选择不再局限于字面匹配,而是能理解更深层次的语境和情绪。
2. **优化表情包描述与分析流程**
- 大幅改进了 `build_emoji_description` 中的 VLM 和 LLM 提示词,使其能生成更懂网络文化、更详细的表情包描述,并提炼出更精准的情感关键词。
- 为动态图(GIF)和静态图设计了不同的分析策略,以获得更高质量的描述结果。
3. **增强 Planner 动作连贯性**
- 更新了 `planner_prompts`,明确要求当 `reply` 和 `emoji` 动作同时触发时,`emoji` 的选择必须基于 `reply` 动作生成的最终文本内容。这确保了文字和表情包的表达高度一致。
4. **逻辑与配置微调**
- 在 `utils_image` 中,现在只有当“偷表情包”功能开启时,才会保存接收到的表情包,避免了不必要的文件存储。
- 将表情包检查间隔 `check_interval` 的类型从 `int` 改为 `float`,允许更灵活的配置。
|
2025-09-14 16:44:35 +08:00 |
|
minecraft1024a
|
f907470785
|
chore(log): 移除调试日志并将部分日志级别降为debug
将规划器和过滤器中的临时调试日志移除,并将部分用于追踪流程的info级别日志调整为debug级别,以减少在生产环境中的日志噪音。
同时,在`cycle_processor.py`中增加了对事件处理结果的空值检查,以增强代码的健壮性。(也许是bug真的能修好了——)
|
2025-09-14 14:59:32 +08:00 |
|
minecraft1024a
|
e2b25120c9
|
chore(log): 增加 plan_filter 调试日志输出
在 plan_filter 的关键位置增加了详细的日志输出,以便于调试和追踪 plan 的处理流程。
- 在 filter 方法的入口和出口记录 plan 状态。
- 记录构建后的 LLM prompt。
- 将 LLM 原始返回的日志级别调整为 warning,使其更显眼。
- 记录修复和解析后的 JSON 对象。
|
2025-09-14 14:17:11 +08:00 |
|
Windpicker-owo
|
b9fe4b793f
|
注释
|
2025-09-13 16:25:13 +08:00 |
|
minecraft1024a
|
7ea769996c
|
refactor(chat): 优化plan_filter中的回复动作处理逻辑
- 引入 `reply_action_added` 标志位,确保在一次处理中只添加一个回复类型的动作(如 `reply` 或 `proactive_reply`)。
- 优化了循环和条件判断逻辑,使代码更清晰、更健壮,防止因LLM返回多个回复动作而导致的意外行为。
|
2025-09-13 15:14:18 +08:00 |
|
minecraft1024a
|
2db6be9b5b
|
fix(chat): 修复计划过滤器和消息构建器中的潜在空指针问题
- 在 `plan_filter.py` 中,当LLM未指定 `target_message_id` 时,明确将目标消息设置为最新的消息,避免后续操作因 `target_message_dict` 未定义而出错。
- 在 `chat_message_builder.py` 中,为 `replace_user_references_sync` 函数增加了对 `content` 为空的检查,防止后续处理引发异常。
- 将数据库查询从 `.scalar()` 改为 `.scalar_one_or_none()`,以更清晰地处理未找到结果的情况。
|
2025-09-13 14:46:50 +08:00 |
|
minecraft1024a
|
490bf9e7cc
|
chore(planner): 临时禁用执行器调用
为了调试规划器流程的其他部分,暂时注释掉了对 `self.executor.execute(filtered_plan)` 的调用。
|
2025-09-13 12:07:19 +08:00 |
|
minecraft1024a
|
f1c1a2081a
|
docs(planner): 为规划器相关模块添加详细的文档字符串
为 `plan_executor`、`planner` 和 `planner_prompts` 模块中的类和函数补充了详细的文档字符串(docstrings)。
这提高了代码的可读性和可维护性,阐明了每个组件的职责、参数和返回值,使得其他开发者能更容易地理解和使用这些模块。
|
2025-09-13 12:04:34 +08:00 |
|
minecraft1024a
|
e37ee46d59
|
refactor(planner): 重构动作规划器为模块化结构
将原有的 `ActionPlanner` 类拆分为三个独立的模块:`PlanGenerator`、`PlanFilter` 和 `PlanExecutor`。`ActionPlanner` 现在作为协调器,按顺序调用这三个模块,使规划流程更加清晰和模块化。
- **PlanGenerator**: 负责根据聊天模式和上下文生成初始规划。
- **PlanFilter**: 负责审查和筛选由生成器产生的动作。
- **PlanExecutor**: 负责执行最终确定的动作。
此重构简化了 `cycle_processor` 中的调用逻辑,并为未来的功能扩展(如更复杂的过滤规则)提供了更好的基础。同时,引入了新的 `Plan` 数据模型来统一规划过程中的数据传递。
|
2025-09-13 11:48:04 +08:00 |
|
minecraft1024a
|
18220e4110
|
rrrrrrrrrrrrruuuuuuuuuuuuuuuffffffffffffffffffffffffffff x3
|
2025-09-12 20:42:02 +08:00 |
|
tt-P607
|
8e2aa53252
|
fix(chat): 将 proactive_reply 动作添加到豁免列表
主动回复(proactive_reply)动作不针对特定消息,也不属于需要验证的可用工具。
此更改将其添加到 planner 的逻辑检查豁免中,以防止因缺少 `target_message_id` 或不在可用动作列表中而被错误地判定为无效。
|
2025-09-10 15:17:03 +08:00 |
|
tt-P607
|
d95f73d52f
|
fix(chat): 修复空消息引用并调整动作处理逻辑
- 在 `DefaultReplyer` 中增加了对 `reply_message` 的空值检查,以避免在无回复上下文时引发错误。
- 在 `ActionPlanner` 中将 'do_nothing' 添加到非目标动作列表中,以正确处理此新增的无操作指令。
- 将 `EmojiAction` 使用的 LLM 模型从 'utils_small' 更新为 'planner',以适应模型配置的变更。
|
2025-09-10 09:43:51 +08:00 |
|
tt-P607
|
df984717f7
|
feat(planner): 重构动作规划器以支持组合动作和概率性表情
重写了 Planner 的主 Prompt,引导 LLM 将回复(reply)视为主动作,将表情(emoji)等视为辅助动作,从而更好地生成组合动作,使响应更生动。
- 移除了旧的“100%概率动作强制添加”逻辑,并替换为新的“概率性表情”机制。现在,当生成回复时,会根据配置的概率(emoji_chance)自动附加一个 emoji 动作。
- 改进了 emoji 动作的情感匹配逻辑,从精确匹配改为模糊匹配,提高了根据 LLM 输出找到合适表情的成功率。
- 修复了随机类型动作在激活概率计算时的一个边界条件问题。
|
2025-09-09 18:50:37 +08:00 |
|
tt-P607
|
98a6cba33e
|
feat(actions): 支持同时进行回复与其他动作
重构了动作执行流程,以支持更丰富的多动作组合,例如在发送文本回复的同时发送一个表情。
主要变更:
- **执行流程**: 在 `CycleProcessor` 中,将动作分为“回复”和“其他”两类。系统会先串行执行回复动作,再并行执行所有其他动作,确保了核心回复的优先性。
- **规划逻辑**: 在 `Planner` 中优化了提示词,并增加后处理步骤,以鼓励并确保在回复时触发补充性动作(如100%概率的emoji)。
- **emoji动作**: 重构了表情选择逻辑,现在会评估所有可用的表情,而不仅仅是随机抽样,提高了选择的准确性。
- **修复**: 修复了 `ActionModifier` 中随机激活概率为100%的动作可能不触发的bug。
|
2025-09-09 15:37:49 +08:00 |
|
tt-P607
|
f6f6735691
|
总之就是成了!😋😋😋主动思考终于成了
|
2025-09-09 13:53:17 +08:00 |
|
tt-P607
|
2a82dfb703
|
refactor(planner): 采用统一的多动作决策模型取代大脑/小脑架构
本次更新彻底重构了动作规划器(Planner)的核心架构,废弃了原有的“大脑/小脑”并行决策模型,转而采用一个更简洁、高效的统一决策模型。
主要变更:
- **统一决策**: 单个LLM调用现在可以一次性决策出所有需要执行的动作,并以JSON列表的形式返回。
- **架构简化**: 完全移除了 `sub_plan`(小脑)逻辑、`planner_small` 模型以及相关的并行处理和结果合并代码,大幅降低了复杂性。
- **配置精简**: 从配置文件中删除了与小脑相关的 `planner_size` 和 `include_personality` 选项,简化了用户配置。
- **提示词更新**: 更新了规划器的Prompt,明确指示LLM返回一个动作列表,即使只有一个动作或没有动作。
带来的好处:
- **性能提升**: 减少了LLM API的调用次数,显著降低了单次规划的延迟和成本。
- **可维护性**: 代码逻辑更清晰、线性,易于理解和后续维护。
- **稳定性**: 减少了多路并发带来的不确定性和潜在的竞态问题。
BREAKING CHANGE: 移除了大脑/小脑规划器架构。
用户需要从 `model_config.toml` 中移除 `[model_task_config.planner_small]` 配置节,并从 `bot_config.toml` 中移除 `planner_size` 和 `include_personality` 配置项。
|
2025-09-09 09:25:25 +08:00 |
|