更新时间:2026-06-10 GMT+08:00
示例:构建记忆库并集成SDK进行对话管理
本示例描述了如何在AgentArts智能体平台上创建记忆库,并通过SDK与记忆库进行交互。记忆库用于存储和管理智能体与用户之间的对话历史,以便于后续的对话管理和个性化服务。
前提条件
- 操作系统:Linux ARM64,服务器可访问公网。
需使用ARM64系统制作的Agent镜像,使用X86系统制作的镜像在调用智能体运行时时会调用失败。
- 安装Python:请确保Python 3.10及以上版本已安装。
大多数Linux发行版(如Ubuntu)都预装了Python,您可以先通过python3 --version检查。如未安装,可以使用如下命令安装:
sudo apt update sudo apt install python3
- 安装Docker:请确保Docker 18.06及以上版本已安装。如未安装,可以使用如下命令安装:
# 查询 Docker 版本 docker --version # 安装Docker sudo apt update sudo apt install docker.io
华为云SWR基础版不支持OCI镜像格式,如果您使用的是Docker 27及以上版本,并且需要处理OCI镜像,可以通过设置环境变量来关闭OCI支持。
export DOCKER_BUILDKIT=0 # 或者 export BUILDKIT_USE_OCI_MEDIA_TYPES=0
- 执行以下命令安装SDK(建议在Python虚拟环境中安装,以避免与系统包产生冲突)。
# 创建并激活虚拟环境 (linux) python3 -m venv venv source venv/bin/activate # 安装sdk pip install agentarts-sdk
- 执行以下命令配置华为云凭证,获取华为云凭证请参考认证鉴权。
export HUAWEICLOUD_SDK_AK="your-access-key" export HUAWEICLOUD_SDK_SK="your-secret-key"
构建记忆库并集成SDK进行对话管理
- 登录AgentArts智能体平台。
- 在左侧导航栏选择“开发中心 > 组件库 ”,单击左上角“记忆库”页签,进入记忆库界面。
- 单击右上角“创建记忆库”。
- 参考图1配置记忆库的基本信息和网络配置。
- 参考图2配置记忆策略。
- 短期记忆:90天。
- 长期记忆提取策略:选择情景记忆 Episodic Memory。
- 长期记忆提取触发条件:
- 空闲时间:10秒。
- 最大累计token数量:4096。
- 最大累计消息数:10。
- 单击“创建记忆库”,在“API Key”弹框中,请复制或下载API Key,然后单击“继续创建”。
建议下载保存在本地,API Key一旦丢失只能通过重置方式解决。
图3 复制或下载API Key
- 返回至记忆库列表,获取记忆库ID (对应space_id)。 图4 获取记忆库ID
- 配置环境变量。
# 通过 console 创建记忆库后,可以进行记忆操作。 # 首先需要配置 API Key,配置方式: # 方式一:环境变量配置,若不传入,SDK会尝试从环境变量中获取apikey export HUAWEICLOUD_SDK_MEMORY_API_KEY="your-memory-api-key" # 方式二:代码中直接传入 from agentarts.sdk.memory import MemoryClient client = MemoryClient(api_key="your-memory-api-key") 其次可以配置访问端点(私网访问模式下需要配置),例如: export AGENTARTS_MEMORY_DATA_ENDPOINT = "https://memory-{space_id}.cn-southwest-2.huaweicloud-agentarts.com" 也可通过配置region信息, SDK会自行拼接如下域名"https://memory.{region_name}.huaweicloud-agentarts.com" client = MemoryClient(region_name="cn-southwest-2")
- 在项目目录中创建test.py文件,参考如下示例代码,将SDK集成在应用项目中。请将 “space_id” 和“api_key”替换为实际使用的值。
import time from agentarts.sdk.memory import MemoryClient from agentarts.sdk.memory.inner.config import TextMessage def client_mode_example(): """Client 模式完整示例(假设已通过Console创建记忆库,并获取spaceId和api-key) 本示例仅作使用参考""" space_id = "your_space_id" # 使用页面上复制的记忆库ID api_key = "your_api_key" # 使用保存的apikey值 with MemoryClient(api_key=api_key) as client: # 1. 创建会话 print("\ncreate session...") session_data = client.create_memory_session( space_id=space_id, actor_id="user-001", assistant_id="assistant-001" ) session_id = session_data.id print(f"Session ID: {session_id}") # 2. 添加消息 print("\nadd chat message...") messages = [ TextMessage( role="user", content="你好,我想了解机器学习的基础知识", actor_id="user-001" ), TextMessage( role="assistant", content="机器学习是人工智能的一个分支,主要研究如何让计算机从数据中学习规律。", actor_id="assistant-001" ) ] client.add_messages( space_id=space_id, session_id=session_id, messages=messages ) print("add message succeed") # 3. 等待记忆生成 print("\nwait for memory...") time.sleep(120) # 4. 查询记忆 print("\nsearch memory list...") memories = client.list_memories(space_id=space_id, limit=10) print(f"find {len(memories.items)} memories") # 5. 搜索记忆 print("\nsearch memories...") from agentarts.sdk.memory.inner.config import MemorySearchFilter search_results = client.search_memories( space_id=space_id, filters=MemorySearchFilter(query="机器学习", top_k=3) ) print(f"find {len(search_results.results)} memories") return space_id, session_id if __name__ == "__main__": client_mode_example() - 执行如下Python命令启动项目应用,向记忆库批量插入与大型语言模型进行交互时的消息。
python3 test.py
- 进入记忆库界面,在记忆库列表中单击已创建的记忆库名称,在“记忆检索”页签,配置检索条件后单击“确定”,可查看到保存的交互消息已经生成对应的长期记忆。
父主题: 记忆库


