3.3 在Agent运行图中访问长期记忆

我们可以在工具或中间件中访问长期记忆。
3.3.1 在工具中访问长期记忆
① 基于InMemoryStore

图片[1]-3.3 在Agent运行图中访问长期记忆-大赛人网
图片[2]-3.3 在Agent运行图中访问长期记忆-大赛人网
图片[3]-3.3 在Agent运行图中访问长期记忆-大赛人网
图片[4]-3.3 在Agent运行图中访问长期记忆-大赛人网

其中,CustomState扩展了 Agent 的标准状态。除了默认的 messages (历史消息列表)之外,还额外增加了一个 user_id 字段。这样,Agent 在运行过程中随时随地都能知道当前和它说话的用户 ID 是什么。

两次invoke没有通过config串联为起来,是两个独立的会话,但第二个会话可以访问第一个会话写入长期记忆的内容。
② 基于PostgresStore

图片[5]-3.3 在Agent运行图中访问长期记忆-大赛人网
图片[6]-3.3 在Agent运行图中访问长期记忆-大赛人网
图片[7]-3.3 在Agent运行图中访问长期记忆-大赛人网

查看PostgresSQL数据表
打开Xshell客户端

图片[8]-3.3 在Agent运行图中访问长期记忆-大赛人网

查看表

图片[9]-3.3 在Agent运行图中访问长期记忆-大赛人网

新增两张Store相关的表store 和store_migrations 。
3.3.2 在中间件中访问长期记忆
① Node-style hooks中访问
以before_model 为例,其钩子函数签名如下

图片[10]-3.3 在Agent运行图中访问长期记忆-大赛人网

Runtime 定义如下

图片[11]-3.3 在Agent运行图中访问长期记忆-大赛人网

所以,我们可以通过runtime.store 在中间件中访问长期记忆。
② Wrap-style hooks中访问

  1. wrap_model_call
    钩子函数签名如下
图片[12]-3.3 在Agent运行图中访问长期记忆-大赛人网

ModelRequest 定义如下

图片[13]-3.3 在Agent运行图中访问长期记忆-大赛人网

所以,可以通过request.runtime.store 访问长期记忆。
2. wrap_tool_call
钩子函数签名如下

图片[14]-3.3 在Agent运行图中访问长期记忆-大赛人网

ToolCallRequest 定义如下

图片[15]-3.3 在Agent运行图中访问长期记忆-大赛人网
图片[16]-3.3 在Agent运行图中访问长期记忆-大赛人网

ToolRuntime 定义如下

图片[17]-3.3 在Agent运行图中访问长期记忆-大赛人网

所以,可以通过request.runtime.store 访问长期记忆。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容