记忆长期记忆
VikingDB(viking)
viking 后端(VikingDBLTMBackend)使用火山引擎 VikingDB 记忆库作为长期记忆存储。它是托管服务,无需自建向量库或本地 embedding,生产推荐。该后端还支持获取用户画像(get_user_profile)。
何时使用
- 生产环境、需要持久化与托管运维;
- 希望使用火山引擎的记忆库能力(含用户画像)。
配置
可以通过 VikingDB 记忆库 API Key 或火山引擎 AK/SK 鉴权。VeADK 会优先使用 api_key / DATABASE_VIKINGMEM_API_KEY 访问已有 collection 中的记忆数据;未设置时使用 AK/SK,仍未设置时尝试从 VeFaaS IAM 获取凭证(云上部署场景)。创建、列举、删除 collection 等管理操作仍需要 AK/SK 或 IAM 凭证。
| 配置项 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
api_key | DATABASE_VIKINGMEM_API_KEY | — | VikingDB 记忆库 API Key,用于访问已有 collection 中的记忆数据。 |
volcengine_access_key | VOLCENGINE_ACCESS_KEY | — | 火山引擎 Access Key。 |
volcengine_secret_key | VOLCENGINE_SECRET_KEY | — | 火山引擎 Secret Key。 |
volcengine_project | DATABASE_VIKINGMEM_PROJECT | default | VikingDB 记忆库项目。 |
region | DATABASE_VIKING_REGION | cn-beijing(byteplus 为 cn-hongkong) | 区域。 |
memory_type | DATABASE_VIKINGMEM_MEMORY_TYPE | ["sys_event_v1", "sys_profile_v1"] | 记忆类型列表,逗号分隔的环境变量会被解析为列表。 |
用法
from veadk import Agent
from veadk.memory.long_term_memory import LongTermMemory
# index 必须以字母开头,仅含字母、数字、下划线,长度 1–128
ltm = LongTermMemory(backend="viking", app_name="ltm_demo")
agent = Agent(name="demo", long_term_memory=ltm)初始化时若集合(collection)不存在,VeADK 会按 memory_type 自动创建。
获取用户画像
profile = ltm.get_user_profile(user_id="user-42")
print(profile)index(即集合名)需满足 VikingDB 命名规则:以英文字母开头,仅包含字母、数字和下划线,长度 1–128。