|
|
#!/usr/bin/env python3
|
|
|
# -*- coding: utf-8 -*-
|
|
|
"""
|
|
|
代码示例 01: MemoryTool基础操作
|
|
|
展示MemoryTool的核心execute方法和基本操作
|
|
|
"""
|
|
|
|
|
|
from datetime import datetime
|
|
|
from typing import List
|
|
|
from hello_agents.tools import MemoryTool
|
|
|
|
|
|
def memory_tool_execute_demo():
|
|
|
"""MemoryTool execute方法演示"""
|
|
|
print("🧠 MemoryTool基础操作演示")
|
|
|
print("=" * 50)
|
|
|
|
|
|
# 初始化MemoryTool
|
|
|
memory_tool = MemoryTool(
|
|
|
user_id="demo_user",
|
|
|
memory_types=["working", "episodic", "semantic", "perceptual"]
|
|
|
)
|
|
|
|
|
|
print("✅ MemoryTool初始化完成")
|
|
|
print(f"📋 支持的操作: add, search, summary, stats, update, remove, forget, consolidate, clear_all")
|
|
|
|
|
|
return memory_tool
|
|
|
|
|
|
def add_memory_demo(memory_tool):
|
|
|
"""添加记忆演示 - 模拟人类记忆编码过程"""
|
|
|
print("\n📝 添加记忆演示")
|
|
|
print("-" * 30)
|
|
|
|
|
|
# 添加工作记忆
|
|
|
result = memory_tool.execute(
|
|
|
"add",
|
|
|
content="正在学习HelloAgents框架的记忆系统",
|
|
|
memory_type="working",
|
|
|
importance=0.7,
|
|
|
task_type="learning"
|
|
|
)
|
|
|
print(f"工作记忆: {result}")
|
|
|
|
|
|
# 添加情景记忆
|
|
|
result = memory_tool.execute(
|
|
|
"add",
|
|
|
content="2024年开始深入研究AI Agent技术",
|
|
|
memory_type="episodic",
|
|
|
importance=0.8,
|
|
|
event_type="milestone",
|
|
|
location="研发中心"
|
|
|
)
|
|
|
print(f"情景记忆: {result}")
|
|
|
|
|
|
# 添加语义记忆
|
|
|
result = memory_tool.execute(
|
|
|
"add",
|
|
|
content="记忆系统包括工作记忆、情景记忆、语义记忆和感知记忆四种类型",
|
|
|
memory_type="semantic",
|
|
|
importance=0.9,
|
|
|
concept="memory_types",
|
|
|
domain="cognitive_science"
|
|
|
)
|
|
|
print(f"语义记忆: {result}")
|
|
|
|
|
|
# 添加感知记忆
|
|
|
result = memory_tool.execute(
|
|
|
"add",
|
|
|
content="查看了记忆系统的架构图和实现代码",
|
|
|
memory_type="perceptual",
|
|
|
importance=0.6,
|
|
|
modality="document",
|
|
|
source="technical_documentation"
|
|
|
)
|
|
|
print(f"感知记忆: {result}")
|
|
|
|
|
|
def search_memory_demo(memory_tool):
|
|
|
"""搜索记忆演示 - 实现语义理解的检索"""
|
|
|
print("\n🔍 搜索记忆演示")
|
|
|
print("-" * 30)
|
|
|
|
|
|
# 基础搜索
|
|
|
print("基础搜索 - '记忆系统':")
|
|
|
result = memory_tool.execute("search", query="记忆系统", limit=3)
|
|
|
print(result)
|
|
|
|
|
|
# 按类型搜索
|
|
|
print("\n按类型搜索 - 语义记忆中的'记忆':")
|
|
|
result = memory_tool.execute(
|
|
|
"search",
|
|
|
query="记忆",
|
|
|
memory_type="semantic",
|
|
|
limit=2
|
|
|
)
|
|
|
print(result)
|
|
|
|
|
|
# 设置重要性阈值
|
|
|
print("\n高重要性记忆搜索:")
|
|
|
result = memory_tool.execute(
|
|
|
"search",
|
|
|
query="AI Agent",
|
|
|
min_importance=0.7,
|
|
|
limit=3
|
|
|
)
|
|
|
print(result)
|
|
|
|
|
|
def memory_summary_demo(memory_tool):
|
|
|
"""记忆摘要演示 - 提供系统全貌"""
|
|
|
print("\n📋 记忆摘要演示")
|
|
|
print("-" * 30)
|
|
|
|
|
|
# 获取记忆摘要
|
|
|
result = memory_tool.execute("summary", limit=5)
|
|
|
print("记忆摘要:")
|
|
|
print(result)
|
|
|
|
|
|
# 获取统计信息
|
|
|
print("\n📊 统计信息:")
|
|
|
result = memory_tool.execute("stats")
|
|
|
print(result)
|
|
|
|
|
|
def memory_management_demo(memory_tool):
|
|
|
"""记忆管理演示 - 遗忘和整合"""
|
|
|
print("\n⚙️ 记忆管理演示")
|
|
|
print("-" * 30)
|
|
|
|
|
|
# 添加一个低重要性记忆用于遗忘测试
|
|
|
memory_tool.execute(
|
|
|
"add",
|
|
|
content="这是一个临时的测试记忆,重要性很低",
|
|
|
memory_type="working",
|
|
|
importance=0.1
|
|
|
)
|
|
|
|
|
|
# 基于重要性的遗忘
|
|
|
print("基于重要性的遗忘 (阈值=0.2):")
|
|
|
result = memory_tool.execute(
|
|
|
"forget",
|
|
|
strategy="importance_based",
|
|
|
threshold=0.2
|
|
|
)
|
|
|
print(result)
|
|
|
|
|
|
# 记忆整合 - 将重要的工作记忆转为情景记忆
|
|
|
print("\n记忆整合 (working → episodic):")
|
|
|
result = memory_tool.execute(
|
|
|
"consolidate",
|
|
|
from_type="working",
|
|
|
to_type="episodic",
|
|
|
importance_threshold=0.6
|
|
|
)
|
|
|
print(result)
|
|
|
|
|
|
def main():
|
|
|
"""主函数"""
|
|
|
print("🚀 MemoryTool基础操作完整演示")
|
|
|
print("展示记忆系统的核心功能和操作方法")
|
|
|
print("=" * 60)
|
|
|
|
|
|
try:
|
|
|
# 1. 初始化MemoryTool
|
|
|
memory_tool = memory_tool_execute_demo()
|
|
|
|
|
|
# 2. 添加记忆演示
|
|
|
add_memory_demo(memory_tool)
|
|
|
|
|
|
# 3. 搜索记忆演示
|
|
|
search_memory_demo(memory_tool)
|
|
|
|
|
|
# 4. 记忆摘要演示
|
|
|
memory_summary_demo(memory_tool)
|
|
|
|
|
|
# 5. 记忆管理演示
|
|
|
memory_management_demo(memory_tool)
|
|
|
|
|
|
print("\n" + "=" * 60)
|
|
|
print("🎉 MemoryTool基础操作演示完成!")
|
|
|
print("=" * 60)
|
|
|
|
|
|
print("\n✨ 演示的核心功能:")
|
|
|
print("1. 🧠 四种记忆类型的添加和管理")
|
|
|
print("2. 🔍 智能语义搜索和过滤")
|
|
|
print("3. 📋 记忆摘要和统计分析")
|
|
|
print("4. ⚙️ 记忆整合和选择性遗忘")
|
|
|
|
|
|
print("\n🎯 设计特点:")
|
|
|
print("• 统一的execute接口,操作简洁一致")
|
|
|
print("• 丰富的元数据支持,便于分类和检索")
|
|
|
print("• 智能的重要性评估和时间衰减机制")
|
|
|
print("• 模拟人类认知的记忆管理策略")
|
|
|
|
|
|
except Exception as e:
|
|
|
print(f"\n❌ 演示过程中发生错误: {e}")
|
|
|
import traceback
|
|
|
traceback.print_exc()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
main() |