异步记忆系统优化 & Action组件修复

主要改进:
1. 异步记忆系统优化 - 解决记忆操作阻塞主程序问题
   - 新增异步记忆队列管理器 (async_memory_optimizer.py)
   - 新增异步瞬时记忆包装器 (async_instant_memory_wrapper.py)
   - 优化主程序记忆构建任务为后台非阻塞执行
   - 优化消息处理器记忆调用,增加超时保护和回退机制

2. Action组件修复 - 解决'未找到Action组件: no_reply'问题
   - 修复no_reply动作激活类型配置错误
   - 新增reply回退动作 (reply.py)
   - 增强planner.py动作选择回退机制
   - 增强cycle_processor.py动作创建回退机制
This commit is contained in:
Furina-1013-create
2025-08-22 13:16:19 +08:00
committed by Windpicker-owo
parent 75042754e7
commit 7dca70b057
9 changed files with 1271 additions and 12 deletions

View File

@@ -329,7 +329,35 @@ class CycleProcessor:
action_message=action_message,
)
if not action_handler:
return False, "", ""
# 动作处理器创建失败,尝试回退机制
logger.warning(f"{self.context.log_prefix} 创建动作处理器失败: {action},尝试回退方案")
# 获取当前可用的动作
available_actions = self.context.action_manager.get_using_actions()
fallback_action = None
# 回退优先级reply > 第一个可用动作
if "reply" in available_actions:
fallback_action = "reply"
elif available_actions:
fallback_action = list(available_actions.keys())[0]
if fallback_action and fallback_action != action:
logger.info(f"{self.context.log_prefix} 使用回退动作: {fallback_action}")
action_handler = self.context.action_manager.create_action(
action_name=fallback_action,
action_data=action_data,
reasoning=f"原动作'{action}'不可用,自动回退。{reasoning}",
cycle_timers=cycle_timers,
thinking_id=thinking_id,
chat_stream=self.context.chat_stream,
log_prefix=self.context.log_prefix,
action_message=action_message,
)
if not action_handler:
logger.error(f"{self.context.log_prefix} 回退方案也失败,无法创建任何动作处理器")
return False, "", ""
success, reply_text = await action_handler.handle_action()
return success, reply_text, ""