Files
TrulyMEM-TrueHumanMEM/test_working_memory_chain.py

84 lines
3.8 KiB
Python

"""
测试工作记忆链机制
"""
import sys
sys.path.insert(0, 'e:/program/graph_enable_ability')
from graph_memory_tui.core.optimized_operations import OPTIMIZED_SYSTEM_PROMPT
def test_working_memory_chain():
"""测试工作记忆链机制是否正确添加"""
print("=" * 60)
print("工作记忆链机制测试")
print("=" * 60)
# 测试1: 检查核心概念
assert "工作记忆链机制" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到工作记忆链机制"
print("[OK] 测试1通过: 工作记忆链机制已添加")
# 测试2: 检查节点类型
assert "TaskNode" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到TaskNode"
assert "StateNode" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到StateNode"
assert "普通记忆节点" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到普通记忆节点"
assert "InfoNode" not in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] InfoNode应该被移除"
print("[OK] 测试2通过: 所有节点类型已正确定义(使用普通记忆节点)")
# 测试3: 检查边类型
assert "NEXT_TASK" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到NEXT_TASK"
assert "HAS_STATE" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到HAS_STATE"
assert "CONTAINS_INFO" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到CONTAINS_INFO"
assert "SUB_TASK" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到SUB_TASK"
print("[OK] 测试3通过: 所有边类型已定义")
# 测试4: 检查强制执行规则
assert "强制执行规则" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到强制执行规则"
assert "每轮对话开始时" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到每轮对话开始时"
assert "每轮对话结束时" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到每轮对话结束时"
print("[OK] 测试4通过: 强制执行规则已定义")
# 测试5: 检查连续性任务处理
assert "连续性任务处理" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到连续性任务处理"
assert "成语接龙" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到成语接龙示例"
print("[OK] 测试5通过: 连续性任务处理已定义")
# 测试6: 检查任务状态转换
assert "State_进行中" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到State_进行中"
assert "State_已完成" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到State_已完成"
assert "State_已暂停" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到State_已暂停"
print("[OK] 测试6通过: 任务状态转换已定义")
# 测试7: 检查核心职责更新
assert "维护工作记忆链" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到维护工作记忆链"
print("[OK] 测试7通过: 核心职责已更新")
# 测试8: 检查示例说明
assert "第一轮:用户发起游戏" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到第一轮示例"
assert "第二轮:话题被打断" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到第二轮示例"
assert "第三轮:用户要求继续游戏" in OPTIMIZED_SYSTEM_PROMPT, "[ERROR] 未找到第三轮示例"
print("[OK] 测试8通过: 完整示例已添加")
print("=" * 60)
print("所有测试通过! 工作记忆链机制已成功添加到提示词中")
print("=" * 60)
# 统计信息
total_length = len(OPTIMIZED_SYSTEM_PROMPT)
working_memory_length = len("工作记忆链机制")
print(f"\n提示词总长度: {total_length} 字符")
print(f"工作记忆链机制部分约占: {working_memory_length / total_length * 100:.2f}%")
return True
if __name__ == "__main__":
try:
test_working_memory_chain()
print("\n[SUCCESS] 测试成功!")
except AssertionError as e:
print(f"\n[ERROR] 测试失败: {e}")
sys.exit(1)
except Exception as e:
print(f"\n[ERROR] 发生错误: {e}")
sys.exit(1)