150 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
| #!/usr/bin/env python3
 | ||
| """
 | ||
| 详细查看和测试Vertex AI Memory Bank功能
 | ||
| """
 | ||
| 
 | ||
| import sys
 | ||
| import os
 | ||
| import asyncio
 | ||
| import json
 | ||
| from datetime import datetime
 | ||
| sys.path.append('src')
 | ||
| 
 | ||
| from jixia.memory.factory import get_memory_backend
 | ||
| from config.doppler_config import get_google_genai_config
 | ||
| 
 | ||
| async def test_memory_bank_functionality():
 | ||
|     print("🧠 详细测试Memory Bank功能")
 | ||
|     print("=" * 60)
 | ||
|     
 | ||
|     # 获取配置
 | ||
|     config = get_google_genai_config()
 | ||
|     project_id = config.get('project_id')
 | ||
|     location = config.get('location', 'us-central1')
 | ||
|     
 | ||
|     print(f"📊 项目ID: {project_id}")
 | ||
|     print(f"📍 位置: {location}")
 | ||
|     print(f"🕐 测试时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
 | ||
|     print()
 | ||
|     
 | ||
|     try:
 | ||
|         # 获取Memory Bank后端
 | ||
|         memory_backend = get_memory_backend()
 | ||
|         print(f"✅ Memory Bank后端: {type(memory_backend).__name__}")
 | ||
|         print()
 | ||
|         
 | ||
|         # 选择一个智能体进行详细测试
 | ||
|         test_agent = "lvdongbin"
 | ||
|         print(f"🧙♂️ 测试智能体: {test_agent} (吕洞宾)")
 | ||
|         print("-" * 40)
 | ||
|         
 | ||
|         # 1. 创建/获取Memory Bank
 | ||
|         print("1️⃣ 创建Memory Bank...")
 | ||
|         memory_bank_id = await memory_backend.create_memory_bank(
 | ||
|             agent_name=test_agent,
 | ||
|             display_name=f"测试Memory Bank - {test_agent}"
 | ||
|         )
 | ||
|         print(f"   ✅ Memory Bank ID: {memory_bank_id}")
 | ||
|         print()
 | ||
|         
 | ||
|         # 2. 添加不同类型的记忆
 | ||
|         print("2️⃣ 添加测试记忆...")
 | ||
|         
 | ||
|         # 添加对话记忆
 | ||
|         conversation_memory = await memory_backend.add_memory(
 | ||
|             agent_name=test_agent,
 | ||
|             content="在关于AI伦理的辩论中,我强调了技术发展应该以人为本,不能忽视道德考量。",
 | ||
|             memory_type="conversation",
 | ||
|             debate_topic="AI伦理与技术发展",
 | ||
|             metadata={"opponent": "铁拐李", "stance": "支持伦理优先"}
 | ||
|         )
 | ||
|         print(f"   📝 对话记忆: {conversation_memory}")
 | ||
|         
 | ||
|         # 添加偏好记忆
 | ||
|         preference_memory = await memory_backend.add_memory(
 | ||
|             agent_name=test_agent,
 | ||
|             content="我偏好使用古典哲学的智慧来论证现代问题,特别是道家思想。",
 | ||
|             memory_type="preference",
 | ||
|             metadata={"philosophy": "道家", "style": "古典智慧"}
 | ||
|         )
 | ||
|         print(f"   ⚙️ 偏好记忆: {preference_memory}")
 | ||
|         
 | ||
|         # 添加知识记忆
 | ||
|         knowledge_memory = await memory_backend.add_memory(
 | ||
|             agent_name=test_agent,
 | ||
|             content="区块链技术的核心是去中心化和不可篡改性,这与道家'无为而治'的理念有相通之处。",
 | ||
|             memory_type="knowledge",
 | ||
|             debate_topic="区块链技术应用",
 | ||
|             metadata={"domain": "技术", "connection": "哲学"}
 | ||
|         )
 | ||
|         print(f"   📚 知识记忆: {knowledge_memory}")
 | ||
|         
 | ||
|         # 添加策略记忆
 | ||
|         strategy_memory = await memory_backend.add_memory(
 | ||
|             agent_name=test_agent,
 | ||
|             content="在辩论中,当对手使用激进论点时,我会用温和的反问来引导思考,而不是直接对抗。",
 | ||
|             memory_type="strategy",
 | ||
|             metadata={"tactic": "温和引导", "effectiveness": "高"}
 | ||
|         )
 | ||
|         print(f"   🎯 策略记忆: {strategy_memory}")
 | ||
|         print()
 | ||
|         
 | ||
|         # 3. 测试记忆搜索
 | ||
|         print("3️⃣ 测试记忆搜索...")
 | ||
|         
 | ||
|         # 搜索关于AI的记忆
 | ||
|         ai_memories = await memory_backend.search_memories(
 | ||
|             agent_name=test_agent,
 | ||
|             query="AI 人工智能 伦理",
 | ||
|             limit=5
 | ||
|         )
 | ||
|         print(f"   🔍 搜索'AI 人工智能 伦理': 找到 {len(ai_memories)} 条记忆")
 | ||
|         for i, memory in enumerate(ai_memories, 1):
 | ||
|             print(f"      {i}. {memory.get('content', '')[:50]}...")
 | ||
|         print()
 | ||
|         
 | ||
|         # 搜索策略相关记忆
 | ||
|         strategy_memories = await memory_backend.search_memories(
 | ||
|             agent_name=test_agent,
 | ||
|             query="辩论 策略",
 | ||
|             memory_type="strategy",
 | ||
|             limit=3
 | ||
|         )
 | ||
|         print(f"   🎯 搜索策略记忆: 找到 {len(strategy_memories)} 条记忆")
 | ||
|         for i, memory in enumerate(strategy_memories, 1):
 | ||
|             print(f"      {i}. {memory.get('content', '')[:50]}...")
 | ||
|         print()
 | ||
|         
 | ||
|         # 4. 获取智能体上下文
 | ||
|         print("4️⃣ 获取智能体上下文...")
 | ||
|         context = await memory_backend.get_agent_context(
 | ||
|             agent_name=test_agent,
 | ||
|             debate_topic="AI伦理与技术发展"
 | ||
|         )
 | ||
|         print(f"   📋 上下文长度: {len(context)} 字符")
 | ||
|         print(f"   📋 上下文预览: {context[:200]}...")
 | ||
|         print()
 | ||
|         
 | ||
|         # 5. 显示所有记忆类型的统计
 | ||
|         print("5️⃣ 记忆统计...")
 | ||
|         memory_types = ["conversation", "preference", "knowledge", "strategy"]
 | ||
|         for mem_type in memory_types:
 | ||
|             memories = await memory_backend.search_memories(
 | ||
|                 agent_name=test_agent,
 | ||
|                 query="",
 | ||
|                 memory_type=mem_type,
 | ||
|                 limit=100
 | ||
|             )
 | ||
|             print(f"   📊 {mem_type}: {len(memories)} 条记忆")
 | ||
|         
 | ||
|         print()
 | ||
|         print("🎉 Memory Bank功能测试完成!")
 | ||
|         print("=" * 60)
 | ||
|         
 | ||
|     except Exception as e:
 | ||
|         print(f"❌ 测试失败: {e}")
 | ||
|         import traceback
 | ||
|         traceback.print_exc()
 | ||
| 
 | ||
| if __name__ == "__main__":
 | ||
|     asyncio.run(test_memory_bank_functionality()) |