j9九游会登录/ 智果(agentarts)智能体平台/ 高代码开发/ / / 示例:构建记忆库并集成sdk进行对话管理
更新时间:2026-07-17 gmt 08:00

示例:构建记忆库并集成sdk进行对话管理-j9九游会登录

本示例描述了如何在agentarts智能体平台上创建记忆库,并通过sdk与记忆库进行交互。记忆库用于存储和管理智能体与用户之间的对话历史,以便于后续的对话管理和个性化服务。

前提条件

  • 操作系统:linux arm64,服务器可访问公网。

    需使用arm64系统制作的agent镜像,使用x86系统制作的镜像在调用智能体运行时时会调用失败。

    可以使用华为云ecs服务购买服务器,购买时需要选择鲲鹏架构(arm64)。

  • 安装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

    安装完成后,建议立即配置国内镜像加速器。在后续执行agentarts launch构建镜像时,docker需要拉取python:3.10-slim基础镜像,默认从docker.io官方仓库下载,可能超时失败。提前配置加速器可避免此问题。

    执行以下命令创建docker配置目录:

    sudo mkdir -p /etc/docker

    执行以下命令配置国内镜像源(直接复制并回车执行):

    sudo tee /etc/docker/daemon.json <<-'eof'
    {
      "registry-mirrors":[
        "https://docker.m.daocloud.net",
        "https://dockerproxy.net",
        "https://mirror.baidubce.com"
      ]
    }
    eof

    依次执行以下命令重启docker服务,使配置生效:

    sudo systemctl daemon-reload
    sudo systemctl restart docker

    华为云swr基础版不支持oci镜像格式,如果您使用的是docker 27及以上版本,并且需要处理oci镜像,可以通过设置环境变量来关闭oci支持。

    export docker_buildkit=0
    # 或者
    export buildkit_use_oci_media_types=0
  • 执行以下命令安装sdk(建议在python虚拟环境中安装,以避免与系统包产生冲突)。
    # 安装依赖包
    apt install python3.12-venv
    # 创建并激活虚拟环境 (linux) 
    python3 -m venv venv
    source venv/bin/activate
    # 安装sdk
    pip install agentarts-sdk
    • 执行pip install agentarts-sdk命令下载缓慢、超时可以更改为使用如下命令
      pip install agentarts-sdk -i https://repo.huaweicloud.com/repository/pypi/simple --trusted-host repo.huaweicloud.com
    • 如果系统缺少python3-venv包,导致无法创建虚拟环境,请按照命令回显提示安装python3-venv包。

  • 执行以下命令配置华为云凭证,获取华为云凭证请参考认证鉴权
    export huaweicloud_sdk_ak="your-access-key"
    export huaweicloud_sdk_sk="your-secret-key"

构建记忆库并集成sdk进行对话管理

  1. 登录。
  2. 在左侧导航栏选择“开发中心 > 组件库 ”,单击“记忆库”页签,进入记忆库界面。
  3. 单击右上角“创建记忆库”。
  4. 参考图1配置记忆库的基本信息和网络配置。
    • 记忆库名称:memory-test
    • 网络配置:勾选私有网络,选择业务所在的vpc及子网

      公网访问根据业务场景可选择开启

    • 数据加密配置:可自定义选择
      图1 配置记忆库的基本信息和网络配置
  5. 参考图2配置记忆策略。
    • 短期记忆:90天
    • 长期记忆提取策略:选择情景记忆 episodic memory
    • 长期记忆提取触发条件:
      • 空闲时间:10秒
      • 最大累计token数量:4096
      • 最大累计消息数:10
      图2 配置记忆策略
  6. 单击“创建记忆库”,在“api key”弹框中,请复制或下载api key,然后单击“继续创建”。

    建议下载保存在本地,api key一旦丢失只能通过重置方式解决。

    图3 复制或下载api key
  1. 返回至记忆库列表,获取记忆库id (对应space_id)
    图4 获取记忆库id
  1. 配置环境变量。
    # 通过 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_endpoint}"
    endpoint为基本信息内展示的公网域名、公网ip、私网ip或私网访问域名
    例如:
    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")
  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()
  3. 执行如下python命令启动项目应用,向记忆库批量插入与大型语言模型进行交互时的消息。

    python3 test.py

  4. 进入记忆库界面,在记忆库列表中单击已创建的记忆库名称,在“记忆检索”页签,配置检索条件后单击“确定”,可查看到保存的交互消息已经生成对应的长期记忆。

相关文档

网站地图