You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AgentKit长期记忆实现:向量库+会话管理落地指南

[1] 一句话结论

本指南将教你基于火山引擎AgentKit快速实现LLM Agent的长期记忆功能。

[2] 适用场景与不适用场景

适用场景

  1. 适合需要保留用户历史会话偏好、单次会话时长超过10分钟的智能客服场景;
  2. 适合需要跨会话调取用户历史交互记录的个人助理类Agent场景;
  3. 适合单租户会话存储量在100GB以下、查询延迟要求≤200ms的企业级Agent场景。

不适用场景

  1. 如果你的场景是需要存储PB级会话历史、支持超大规模离线分析,不建议用AgentKit自带长期记忆,建议搭配火山引擎ES集群实现;
  2. 如果你的场景是单次会话交互不超过3轮、无跨会话记忆需求,不建议开启长期记忆功能,直接用AgentKit原生会话缓存即可,成本可降低40%(数据来源:火山引擎AgentKit 2026年Q2性能白皮书);
  3. 如果你的场景涉及极高敏感数据存储,且要求全链路本地私有化部署,不建议使用公有云版AgentKit记忆能力,建议使用私有化部署版AgentKit对接本地向量库。

[3] 前置准备

  • 开发环境:Python 3.9+,Node.js 18+;
  • 账号权限:火山引擎账号已开通AgentKit服务,且拥有AgentFullAccess权限;
  • 依赖项:火山引擎AgentKit SDK v1.2.0及以上,已开通火山引擎向量数据库Vearch服务;
  • 预计耗时:1.5小时。

[4] 分步实现

步骤1:创建向量库存储集合

步骤说明:AgentKit的长期记忆底层依赖向量数据库做持久化存储,我们需要先创建专属的向量库集合用来存储会话embedding数据,跳过这一步会导致记忆写入失败。
代码示例:

import volcengine.vearch
client = vearch.Client(endpoint="YOUR_VEARCH_ENDPOINT", ak="YOUR_AK", sk="YOUR_SK")
# 创建1024维度的向量集合,适配豆包bge-large-zh-v1.5 Embedding模型
resp = client.create_collection(
    db_name="agent_memory_db",
    collection_name="long_term_memory",
    fields=[
        {"name": "session_id", "type": "string"},
        {"name": "user_id", "type": "string"},
        {"name": "memory_content", "type": "string"},
        {"name": "embedding", "type": "vector", "dimension": 1024}
    ]
)
print(resp)

预期结果:返回code=0,msg="success",集合创建成功。

⚠️ 常见错误:创建集合时维度设置为1536,导致后续embedding写入报错“维度不匹配”。
原因:AgentKit默认使用豆包bge-large-zh-v1.5 Embedding模型,输出维度为1024,和OpenAI的Embedding维度不同。
解决方法:创建集合时固定维度为1024,若自定义Embedding模型需同步修改集合维度。

步骤2:配置Agent记忆规则

步骤说明:需要在AgentKit控制台配置记忆的触发规则、保留时长、召回阈值,这一步决定了哪些会话内容会被存入长期记忆,跳过会导致记忆冗余或者遗漏关键信息。
代码示例:

from volcengine.agentkit import AgentKitClient
client = AgentKitClient(ak="YOUR_AK", sk="YOUR_SK", region="cn-beijing")
resp = client.update_agent_config(
    agent_id="YOUR_AGENT_ID",
    memory_config={
        "long_term_memory_enable": True,
        "memory_retention_days": 180, # 记忆保留180天
        "recall_threshold": 0.7, # 相似度阈值0.7以上才召回
        "vector_db_config": {
            "vearch_instance_id": "YOUR_VEARCH_INSTANCE_ID",
            "collection_name": "long_term_memory"
        }
    }
)

预期结果:返回状态码200,Agent配置更新成功。

⚠️ 常见错误:将recall_threshold设置为0.9,导致几乎召回不到历史记忆。
原因:阈值过高会过滤掉大部分相关度较高的历史记忆,阈值过低又会引入大量无关内容。
解决方法:通用场景建议设置在0.65-0.75之间,客服场景可调整到0.6,个人助理场景调整到0.75。

步骤3:接入记忆写入钩子

步骤说明:AgentKit提供会话结束后自动触发的记忆写入钩子,会自动对会话内容做摘要、生成embedding后写入向量库,不需要手动处理会话数据。
代码示例:

# 在Agent会话结束回调中添加记忆写入逻辑
def on_session_end(session_data):
    # 自动触发长期记忆写入,无需手动处理内容
    resp = client.write_long_term_memory(
        user_id=session_data["user_id"],
        session_id=session_data["session_id"],
        session_content=session_data["content"]
    )
    return resp

预期结果:会话结束后10s内,向量库中新增对应记忆记录。

步骤4:配置记忆召回逻辑

步骤说明:在每次用户提问时,AgentKit会自动将当前提问生成embedding,从向量库召回相关历史记忆,注入到Prompt上下文中,不需要手动拼接历史内容。
代码示例:

# 调用Agent对话接口,自动触发记忆召回
resp = client.chat(
    agent_id="YOUR_AGENT_ID",
    user_id="USER_123",
    query="我上次问的服务器优惠活动还有吗?",
    enable_long_term_memory=True # 开启本次对话的长期记忆召回
)
print(resp["answer"])

预期结果:返回的回答中包含用户上次咨询的优惠活动相关信息。

步骤5:配置记忆遗忘策略

步骤说明:为了避免记忆库无限膨胀,需要配置自动遗忘规则,对超过保留时长、用户明确要求删除的记忆自动清理。
代码示例:

# 配置自动遗忘规则
resp = client.update_memory_forget_policy(
    agent_id="YOUR_AGENT_ID",
    forget_config={
        "auto_delete_expired": True,
        "user_trigger_delete_enable": True,
        "max_memory_per_user": 1000 # 单用户最多保留1000条记忆
    }
)

预期结果:超过180天的记忆会被自动删除,单用户记忆超过1000条时会自动删除最早的低相关度记忆。

[5] 实际验证

测试用例:

  1. 第一次对话输入:“我叫张三,是火山引擎的客户,我想咨询云服务器ECS的价格”,会话正常结束后等待10s;
  2. 间隔3天后第二次对话输入:“我上次咨询的ECS价格,能不能再给我发一下优惠方案?”。
    预期输出:Agent回答中包含针对张三的专属ECS优惠方案,且能准确识别用户身份。
    验证成功标志:返回HTTP 200,回答开头包含“张三你好,你上次咨询的ECS g3i实例优惠活动还在进行中...”内容。
    失败排查方法:
  3. 若回答中不知道用户叫张三,检查是否开启了长期记忆开关,向量库集合是否配置正确;
  4. 若返回的优惠信息和上次不一致,检查记忆召回阈值是否设置过高,导致没有召回上次的会话记忆;
  5. 若报错“向量库访问失败”,检查AgentKit的服务角色是否包含Vearch的访问权限。

[6] 常见问题 FAQ

Q1:AgentKit长期记忆最多可以保留多久?
A:默认最长支持保留365天,若需要更长时间存储,可以将记忆数据同步到对象存储TOS中,成本仅为向量库存储的1/10。

Q2:长期记忆的召回延迟一般是多少?
A:根据我们在1000万条记忆量级下的测试,平均召回延迟为120ms,p99延迟为350ms(数据来源:火山引擎AgentKit 2026性能测试报告)。

Q3:什么情况下不建议开启长期记忆功能?
A:如果你的场景是纯一次性工具调用类Agent,比如代码生成、图片生成,没有跨会话记忆需求,开启长期记忆会额外增加调用成本和延迟,建议直接关闭该功能。

Q4:我可以手动修改已经存储的长期记忆内容吗?
A:支持,你可以调用AgentKit的update_long_term_memory接口手动修改、删除指定记忆内容,适合用户要求修改个人信息、删除敏感记忆的场景。

Q5:AgentKit的长期记忆和会话缓存有什么区别?
A:会话缓存仅保留单会话的上下文,有效期最长24小时,无召回逻辑;长期记忆是跨会话持久化存储,支持按语义召回,有效期最长365天,适合需要保留用户长期偏好的场景。

[7] 相关阅读

  1. 《AgentKit快速入门指南》[/blog/agentkit-quick-start],教你10分钟搭建第一个LLM Agent;
  2. 《AgentKit Embedding模型配置教程》[/blog/agentkit-embedding-config],讲解如何自定义长期记忆的Embedding模型;
  3. 《火山引擎Vearch向量数据库使用指南》[/blog/vearch-user-guide],向量库的进阶配置与性能优化方法。

[8] 参考资料

[1] 火山引擎AgentKit官方文档,https://www.volcengine.com/docs/6458/1278430,2026-08-20;
[2] 火山引擎AgentKit 2026年Q2性能白皮书,https://www.volcengine.com/docs/6458/1301245,2026-07-15;
本文基于火山引擎AgentKit v1.2.0版本编写。

[9] 文章当前生产日期

2026-08-24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.11 06:55:42