Agent 一个简洁但常见的用例是为用户管理列表、项目和其他“信息”。例如,购物列表、待办事项列表、愿望清单等。可以使用
session_state 轻松管理。Agent 在工具调用中更新 session_state,并在 description 和 instructions 中将其暴露给模型。Agent具有session_state参数。- 我们将状态变量添加到此
session_state字典中。 - 我们在工具调用或其他函数中更新
session_state字典。 - 我们在
description和instructions中与模型共享当前的session_state。 session_state与 Agent 会话一起存储,并持久化到数据库中。这意味着它在执行周期之间可用。
session_state.py
在多个运行中维护状态
会话的一个巨大优势是能够跨多次运行维护状态。例如,假设 Agent 正在帮助用户跟踪他们的购物列表。通过设置
add_state_in_messages=True,session_state 字典的键可以在 description 和 instructions 中作为变量使用。使用此模式将 shopping_list 直接添加到指令中。shopping_list.py
在指令中使用状态
通过设置add_state_in_messages=True,您可以在指令中使用来自会话状态的变量。
state_in_instructions.py
在数据库中持久化状态
session_state 是 Agent 会话的一部分,如果提供了 storage 驱动程序,它会在每次运行后保存到数据库中。
以下 Agent 维护购物列表并将其状态持久化到数据库的示例。多次运行此脚本以查看状态的持久化。
session_state_storage.py