# 概述
在智能体中集成记忆库，实现智能体与记忆库的快速对接。记忆库创建完成后，需要通过SDK将记忆能力集成到Agent代码中。集成后Agent具备：
- 在对话中自动存储每轮交互（短期记忆）
- 跨会话检索用户历史和偏好（长期记忆）
- 基于记忆给出个性化响应
#### 完整集成示例
以下示例展示了通过memory SDK将记忆库集成到Agent 中的完整流程：创建会话、添加消息（短期记忆）、等待记忆生成、查询和搜索记忆（长期记忆）。请将 "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(90)
        # 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()
```
同样的代码可以在记忆库调用代码下的记忆操作完整案例中进行复制
![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002750680049.png "点击放大")
执行如下 Python 命令启动项目应用，向记忆库批量插入与大型语言模型进行交互时的消息：
**python3 test.py**
根据打印日志检查执行结果。当触发条件满足时，短期记忆自动通过策略提取为长期记忆；下次该用户对话时，可检索到这些长期记忆并注入上下文。
![](https://support.huaweicloud.com/highcode-agentarts/public_sys-resources/note_3.0-zh-cn.png)
长期记忆提取是异步的，建议短期记忆写入 3\~5 min 后再进行长期记忆查询。
