refactor(core): 提高配置访问安全性并优化记忆判断提示

此提交引入了若干关键改进,以增强应用程序的稳定性和智能性。

首先,通过在 `main.py` 和 `memory_graph/manager_singleton.py` 的关键初始化路径中为 `global_config` 及其嵌套属性添加全面的空值检查,增强了系统的稳健性。这可以防止在配置加载失败或不完整时出现潜在的 `AttributeError` 异常,使应用程序的启动过程更加可靠。

其次,在 `UnifiedMemoryManager` 中的“记忆判断”模型提示已大幅优化。新的提示提供了更严格的指导,避免在简单交互(如问候或闲聊)中进行不必要的长期记忆查询。这一优化通过使记忆检索过程更加高效和具上下文意识,提高了响应速度并降低了计算开销。

最后,新配置已在 Napcat 适配器中添加了选项,以更精细地控制消息处理,包括启用/禁用视频处理和配置自动@回复。
This commit is contained in:
tt-P607
2025-11-28 10:57:01 +08:00
parent c040cf08e8
commit 82fe115268
5 changed files with 35 additions and 15 deletions

View File

@@ -330,7 +330,11 @@ class UnifiedMemoryManager:
"""
prompt = f"""你是一个记忆检索评估专家。请判断检索到的记忆是否足以回答用户的问题
prompt = f"""你是一个记忆检索评估专家。你的任务是判断当前检索到的“感知记忆”(即时对话)和“短期记忆”(结构化信息)是否足以支撑一次有深度、有上下文的回复
**核心原则:**
- **不要轻易检索长期记忆!** 只有在当前对话需要深入探讨、回忆过去复杂事件或需要特定背景知识时,才认为记忆不足。
- **闲聊、简单问候、表情互动或无特定主题的对话,现有记忆通常是充足的。** 频繁检索长期记忆会拖慢响应速度。
**用户查询:**
{query}
@@ -341,25 +345,32 @@ class UnifiedMemoryManager:
**检索到的短期记忆(结构化信息,自然语言描述):**
{short_term_desc or '(无)'}
**任务要求**
1. 判断这些记忆是否足以回答用户的问题
2. 如果不充足,分析缺少哪些方面的信息
3. 生成额外需要检索的 query用于在长期记忆中检索
**评估指南**
1. **分析用户意图**:用户是在闲聊,还是在讨论一个需要深入挖掘的话题?
2. **检查现有记忆**:当前的感知和短期记忆是否已经包含了足够的信息来回应用户的查询?
- 对于闲聊(如“你好”、“哈哈”、“[表情]”),现有记忆总是充足的 (`"is_sufficient": true`)。
- 对于需要回忆具体细节、深入探讨个人经历或专业知识的查询,如果现有记忆中没有相关信息,则可能不充足。
3. **决策**
- 如果记忆充足,设置 `"is_sufficient": true`。
- 如果确实需要更多信息才能进行有意义的对话,设置 `"is_sufficient": false`,并提供具体的补充查询。
**输出格式JSON**
```json
{{
"is_sufficient": true/false,
"confidence": 0.85,
"reasoning": "判断理由",
"reasoning": "在这里解释你的判断理由。例如:‘用户只是在打招呼,现有记忆已足够’或‘用户问到了一个具体的历史事件,需要检索长期记忆’。",
"missing_aspects": ["缺失的信息1", "缺失的信息2"],
"additional_queries": ["补充query1", "补充query2"]
}}
```
请输出JSON"""
严格按照上述原则进行判断,并输出JSON"""
# 调用记忆裁判模型
from src.config.config import model_config
if not model_config.model_task_config:
raise ValueError("模型任务配置未加载")
llm = LLMRequest(
model_set=model_config.model_task_config.memory_judge,
request_type="unified_memory.judge",