@@ -12,29 +12,10 @@ VeADK 的长期记忆通常存储在数据库中,通过如下方式定义一
1212``` python
1313from veadk.memory.long_term_memory import LongTermMemory
1414
15- long_term_memory = LongTermMemory(backend = ... ) # 默认的数据库为`opensearch`
16-
17- # 装配到Agent中,同时会自动挂载`load_memory_tool`工具
18- agent = Agent(long_term_memory = long_term_memory)
19-
20- # 运行时可选将某个session存储到长期记忆中
21- session = await session_service.get_session(
22- app_name = app_name,
23- user_id = user_id,
24- session_id = session_id,
25- ) # 获取当前session
26- await self .long_term_memory.add_session_to_memory(session) # 添加
15+ long_term_memory = LongTermMemory()
2716```
2817
29- 长期记忆中的 backend 字段定义如下:
30-
31- | backend | 说明 |
32- | --- | --- |
33- | local | GIGO 模式的内存存储,不具备向量检索功能,仅用于测试 |
34- | viking | 火山引擎 [ Viking 记忆库] ( https://www.volcengine.com/docs/84313/1783345 ) 服务 |
35- | opensearch | OpenSearch 数据库 |
36- | redis | Redis 数据库,但不具备向量搜索功能 |
37- | mysql | MySQL 数据库,但不具备向量搜索功能 |
18+ 通过如下例子说明长期记忆:
3819
3920以下示例展示了如何在 VeADK 中使用长期记忆实现跨会话的信息保留与调用。开发者可以通过 ` save_session_to_long_term_memory ` 方法,将某一会话中的知识性信息存入长期记忆存储后端。在新的会话中,即使上下文为空,Agent 依然能够基于长期记忆准确回忆并回答相关问题。
4021
@@ -66,3 +47,43 @@ student_prompt = "..."
6647response = await runner.run(messages = student_prompt, session_id = new_session_id)
6748print (response)
6849```
50+
51+ ## 后端适配
52+
53+ 通过设置初始化 ` LongTermMemory ` 时的 ` backend ` 参数来指定不同的长期记忆存储后端:
54+
55+ | 类别 | 说明 |
56+ | :- | :- |
57+ | ` local ` | 内存跨 Session 记忆,程序结束后即清空 |
58+ | ` opensearch ` | 使用 OpenSearch 作为长期记忆存储,可实现持久化和检索 |
59+ | ` redis ` | 使用 Redis 作为长期记忆存储,Redis 需要支持 Redisearch 功能 |
60+ | ` viking ` | 使用 VikingDB 记忆库产品作为长期记忆存储 |
61+ | ` viking_mem ` | 已废弃,设置后将会自动转为 ` viking ` |
62+
63+ :: warning
64+ 后端选项 ` database ` 已废弃。
65+ ::
66+
67+ ## 详细参数
68+
69+ :: field-group
70+ :: field { name =" backend " type =" Literal['local','opensearch','redis','viking','viking_mem'] | BaseLongTermMemoryBackend " }
71+ 默认为` opensearch ` - 长期记忆后端类型
72+ ::
73+
74+ :: field { name =" backend_config " type =" dict " }
75+ 长期记忆后端配置,默认空字典。
76+ ::
77+
78+ :: field { name =" top_k " type =" int " }
79+ 默认 5 - 检索时返回最相似的文档数量。
80+ ::
81+
82+ :: field { name =" app_name " type =" string " }
83+ Agent 应用名称,用于多应用区分。默认空字符串。
84+ ::
85+
86+ :: field { name =" user_id " type =" string " }
87+ Agent 用户 ID,用于区分不同用户的长期记忆。默认空字符串。
88+ ::
89+ ::
0 commit comments