Storage 驱动程序,Agno 会处理其余部分。你可以使用 Sqlite、Postgres、Mongo 或任何你想要的数据库。
下面是一个演示跨执行周期持久化的简单示例:
storage.py
Storage 的优势
Storage 通常是 Agent Engineering 中一个讨论较少的环节——但我们认为它是生产环境中 Agent 应用的幕后英雄。 在生产环境中,你需要 storage 来:- 延续会话:检索会话历史记录并接续之前的进度。
- 获取会话列表:要延续之前的会话,你需要维护一个可用于该 Agent 的会话列表。
- 保存运行之间的状态:将 Agent 的状态保存到数据库或文件中,以便稍后进行检查。
- Storage 保存我们的 Agent 会话数据以供检查和评估。
- Storage 帮助我们提取 few-shot 示例,可用于改进 Agent。
- Storage 使我们能够构建内部监控工具和仪表板。
示例:使用 Postgres 进行存储
1
运行 Postgres
安装 docker desktop 并使用以下命令在端口 5532 上运行 Postgres:
2
创建带有 Storage 的 Agent
创建一个名为
agent_with_storage.py 的文件,内容如下:3
运行 Agent
安装库运行 Agent现在 Agent 可以跨会话延续了。问一个问题:然后输入
bye 退出,重新启动应用程序并提问:4
开始新的运行
使用
--new 标志运行 agent_with_storage.py 文件以开始新的运行。Schema Upgrades
在使用AgentStorage 时,基于 SQL 的存储类具有固定的模式。随着新 Agno 功能的发布,模式可能需要更新。
升级可以手动或自动完成。
自动升级
自动升级是在存储类的构造函数中将auto_upgrade_schema 参数设置为 True 时完成的。
你只需要为 Agent 运行设置一次,模式就会被升级。
手动升级
可以通过在存储类上调用upgrade_schema 方法来手动升级模式。
Params
开发者资源
- 查看 Cookbook