You need to enable JavaScript to run this app.
文档中心
AgentKit

AgentKit

复制全文
下载 pdf
SDK参考
Memory
复制全文
下载 pdf
Memory
本文以mem0记忆库为例,指导您安装依赖项和使用VeADK构建一个带长期记忆能力的智能体。​
前提条件​
步骤一:构建智能体​
您无需从0~1构建veadk项目,推荐您使用agentkit-cli,从Basic Agent App模版来创建项目(模板使用VeADK框架)。在模版创建完成后,您需要做以下修改:​
  • 为Agent添加LongTermMemory。​
  • 配置上个章节获取的环境变量到agentkit.yaml。​
  • 增加mem0ai==0.1.118到requirements.txt。​
  • 在每一轮对话结束后显式调用runner.save_session_to_long_term_memory,将对话结果保存到长期记忆库。​
修改后的代码文件如下所示:​
​
'''​
**simple agent demo app**​
​
Before running, the user must set the following environment variables; otherwise, runtime exceptions will inevitably occur:​
- MODEL_AGENT_NAME # model id in Volcano Engine Ark platform​
- MODEL_AGENT_API_KEY # model api key in Volcano Engine Ark platform​
​
MODEL_AGENT_NAME and MODEL_AGENT_API_KEY are used to access the model service of the Volcano Engine Ark platform.​
'''​
import logging​
import os​
​
from veadk import Agent, Runner​
from veadk.memory.long_term_memory import LongTermMemory​
​
​
from agentkit.apps import AgentkitSimpleApp​
​
logger = logging.getLogger(__name__)​
​
index = "simple_app" # required for viking backend, arbitrary for mem0 backend​
​
backend = "mem0" # one of "mem0", "viking_mem"​
if backend == "viking_mem":​
collection_name = os.getenv("DATABASE_VIKINGMEM_COLLECTION")​
if not collection_name:​
raise ValueError("DATABASE_VIKINGMEM_COLLECTION environment variable is not set")​
index = collection_name​
​
app = AgentkitSimpleApp()​
long_term_memory = LongTermMemory(​
backend=backend,​
index=index​
)​
​
agent = Agent(​
name="simple_app_agent",​
instruction="You are a helpful assistant.",​
long_term_memory=long_term_memory​
)​
runner = Runner(agent=agent)​
​
​
@app.entrypoint​
async def run(payload: dict, headers: dict) -> str:​
prompt = payload["prompt"]​
user_id = headers["user_id"]​
session_id = headers["session_id"]​
​
logger.info(​
f"Running agent with prompt: {prompt}, user_id: {user_id}, session_id: {session_id}"​
)​
response = await runner.run(messages=prompt, user_id=user_id, session_id=session_id)​
​
logger.info(f"Run response: {response}")​
​
# save the teaching prompt and answer in long term memory​
await runner.save_session_to_long_term_memory(session_id=session_id, user_id=user_id)​
​
return response​
​
​
@app.ping​
def ping() -> str:​
return "pong!"​
​
​
if __name__ == "__main__":​
app.run(host="0.0.0.0", port=8000)​
​
步骤二:环境配置​
在agentkit.yaml文件中添加如下配置:​
​
# 当长期记忆后端为mem0记忆库时,添加如下配置​
launch_types:​
cloud:​
runtime_envs:​
DATABASE_MEM0_BASE_URL: <your mem0 url>​
DATABASE_MEM0_API_KEY: <your mem0 api key>​
​
# 当长期记忆后端为Viking记忆库时,添加如下配置​
launch_types:​
cloud:​
runtime_envs:​
DATABASE_VIKINGMEM_COLLECTION: <your vikingdb collection name>​
DATABASE_VIKINGMEM_MEMORY_TYPE: <your vikingdb memory type, defaults to "event_v1", separate multiple by comma, e.g. event_v1,event_v2>​
​
步骤三:启动服务​
运行agentkit launch。构建好Runtime链接信息将被自动保存在agentkit.yaml文件中。​
步骤四:发起调用​
将自动使用user_id="agentkit_user", session_id="agentkit_sample_session"来发起调用。​
​
agentkit invoke "My secret is 0xabcd"​
​
步骤五:验证记忆策略成效​
首轮调用已完成密码保存。需更换session_id发起新一轮调用,以此验证Agent是否能够正确读取记忆库中的数据。建议等待约 1 分钟,待长期记忆完成抽取后,再执行调用操作。​
​
agentkit invoke \​
--payload '{"prompt": "What is my secret?"}' \​
--headers '{"user_id": "agentkit_user", "session_id": "s123"}'​
​
执行结束后,您将看到Agent成功读取到记忆库中的信息,并告诉您密码。​
最近更新时间:2026.01.08 10:02:18
这个页面对您有帮助吗?
有用
有用
无用
无用