测试火山引擎AgentKit记忆库和踩坑问题记录

环境准备

作者使用本地个人PC(Win11系统),基于火山AgentKit提供的记忆库Demo,使用Python代码进行测试。

步骤一:安装python依赖

按照官方集成指导文档,需要先使用 pip install veadk-python mem0ai==0.1.118命令安装依赖,没想到的是第一步就出现了问题。 官方指导如下:

碰到的问题一:无法安装veadk-pyton 报错如下:

根据报错信息可以看到是编译安装psycopg2-binary报错,这里项目依赖并没有选择binary的方式进行安装,而是使用了直接编译依赖代码的方式,容易出现报错。

最终使用ClaudeCode进行分析,选择了先跳过psycopg2-binary,安装完成其他的依赖之后,手动使用pip命令安装psycopg2依赖。这里要吐槽一下火山的文档,虽然mem0是免费的记忆库,但是依赖的veadk是火山自己发布的,此处对于安装的成功率有待提升。

步骤二:运行测试Demo

以下这段代码是火山提供的最新mem0记忆库的接入示例:

python 复制代码
# 参考如下 memory 示例集成代码,修改 agent 代码
import asyncio
import os

from veadk import Agent, Runner
from veadk.memory.long_term_memory import LongTermMemory
from dotenv import load_dotenv

load_dotenv()

if os.getenv("DATABASE_MEM0_API_KEY") is None:
    raise ValueError("MEM0_API_KEY is not set")
if os.getenv("DATABASE_MEM0_BASE_URL") is None:
    raise ValueError("DATABASE_MEM0_BASE_URL is not set")

# Replace the following from your own user & session management system
app_name = "ltm_demo"
user_id = "temp_user"
teaching_session_id = "teaching_session"
student_session_id = "student_session"

long_term_memory = LongTermMemory(backend="mem0", app_name=app_name)

agent = Agent(long_term_memory=long_term_memory)

runner = Runner(
    agent=agent,
    app_name=app_name,
    user_id=user_id,
)

teaching_prompt = "My secret is 0xabcd"
asyncio.run(runner.run(messages=teaching_prompt, session_id=teaching_session_id))

# save the teaching prompt and answer in long term memory
asyncio.run(runner.save_session_to_long_term_memory(session_id=teaching_session_id, user_id=user_id))

# now, let's validate this in a new session, with the same user_id configured in the Runner
student_prompt = "What is my secret?"
response = asyncio.run(
    runner.run(messages=student_prompt, session_id=student_session_id)
)
print(response)

在完成环境变量DATABASE_MEM0_API_KEY和DATABASE_MEM0_BASE_URL的配置后,发现无法直接运行,报错如下:

分析可以看到是 碰到的问题二:缺少了 MODEL_AGENT_API_KEY 的配置,因为在记忆库使用过程中会依赖到火山引擎的模型服务,因此需要额外对该变量进行配置,提供模型服务进行调用。这里得再吐槽一下火山的文档,可以在注释或者代码示例中把需要依赖的所有配置都展示出来。

测试结果

碰到的问题三:示例代码第一次调用,系统输出有问题,显示没有找到相关的记忆内容,输出内容如下:

第二次执行改代码则不会有对应的问题,初步分析因为示例代码中提交长期记忆、teaching_session和student_session都是异步执行的,后端响应需要一定的实践,在并发提交的时候第一次测试的结果可能出现无法获取到正确的结果的问题。此处火山的文档也有一个改进点,可简单粗暴可以直接增加Sleep,或者同步等待设置长期记忆结束之后再调用student_session进行查询。

最终测试结果如下:

Python代码中已经可以看到记忆库长期记忆设置成功,同时可以在界面上查询到对应的长期记忆条目:

同时可以看到在测试数据量较小的情况下记忆召回的时延一般为100ms级别,详情如下

未来计划

后续有空作者会尝试对火山的记忆库进行压测,同时测试火山自研的Viking记忆库。

相关推荐
余衫马11 小时前
Agent Skills 实战(.NET):理论 × 代码 × 企业案例
人工智能·.net·agent·skill·openclaw
小编12 小时前
Agent 时代,App 会消失吗?
agent
Gale2World12 小时前
OpenClaw 技术专题 (三):行动层与现实世界交互 (The Hands)
agent
ljq12 小时前
LLM大模型会话ID身份跟踪标识原理解构:从模型无状态下的会话ID(Session ID)原理分析以及自主实现会话跟踪
agent·ai编程
大模型真好玩13 小时前
大模型训练全流程实战指南工具篇(九)——LLamaFactory大模型训练工具使用指南
人工智能·agent·deepseek
Flittly13 小时前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(9)Agent Teams (智能体团队)
python·agent
cuguanren15 小时前
MuleRun vs OpenClaw vs 网页服务:云端安全与本地自由的取舍之道
安全·大模型·llm·agent·智能体·openclaw·mulerun
马克Markorg15 小时前
OpenClaw架构学习与思考
大模型·agent·openclaw·小龙虾
星始流年16 小时前
AI Agent 开发系列 之 01 🔎重新认识 LLM
人工智能·llm·agent
熊猫钓鱼>_>18 小时前
AI语料投毒与信息证伪:当生成式引擎成为攻击向量
人工智能·ai·agent·geo·skills·agent skills·openclaw