AI 代理内存

通过内存,AI 代理可以记住来自对话中早期或以前对话的信息。 这样,代理就可以提供上下文感知响应,并随着时间的推移生成个性化体验。 使用完全托管的 Postgres OLTP 数据库 Databricks Lakebase 管理聊天状态和历史记录。

要求

短期与长期记忆

短期记忆负责捕获在单个会话中的上下文,而长期记忆负责提取和存储在多个会话中的关键信息。 可以使用任一种类型的内存或两种类型的内存来构建代理。

具有短期和长期内存的代理

短期内存 长期记忆
使用线程 ID 和检查点在单个会话中捕获上下文
维护会话中后续问题的上下文
跨多个会话自动提取和存储密钥见解
基于过去的首选项个性化交互
构建一个关于用户的知识库,以随时间推移改进响应

开始

若要在 Databricks Apps 上创建具有内存的代理,请克隆一个预构建的应用模板,并遵循 “创作 AI 代理”中所述的开发工作流,并将其部署到应用上。 以下模板演示如何使用常用框架向代理添加短期和长期内存。

LangGraph

克隆 代理-langgraph 高级 模板,以生成具有短期内存和长期内存的 LangGraph 代理。 该模板使用 LangGraph 的内置检查点功能与 Lakebase 来进行持久状态管理,包括基于线程的对话上下文和跨会话的持久用户见解。

git clone https://github.com/databricks/app-templates.git
cd app-templates/agent-langgraph-advanced
OpenAI 代理 SDK

克隆 agent-openai-advanced 模板,以使用具有短期内存的 OpenAI 代理 SDK 生成代理。 该模板使用 Lakebase 进行持久状态管理,通过自动聊天历史记录管理启用有状态多轮对话。

git clone https://github.com/databricks/app-templates.git
cd app-templates/agent-openai-advanced

长时间运行代理的后台执行

Databricks Apps 强制实施大约 300 秒的 HTTP 连接超时。 后台执行允许超过此限制的代理任务在连接关闭后保持运行;客户端从单独的终结点检索结果,或重新连接以恢复流式处理。

高级模板 agent-langgraph-advancedagent-openai-advanced 通过 databricks-ai-bridgeLongRunningAgentServer 扩展基本模板,增加了短期记忆和长时间后台运行功能,从而提供:

  • 后台模式:在请求正文中设置 background=true 以立即返回响应 ID 并异步运行代理。
  • 检索端点:发送GET /responses/{id}以提取最终结果,或打开与正在进行的操作的流连接。
  • 可恢复流式处理:每个服务器发送的事件都包含一个 sequence_number。 如果连接断开,请重新连接 starting_after=N 以从下一个事件恢复。
  • TASK_TIMEOUT_SECONDS 限制后台任务持续时间的环境变量。 这独立于 120 秒 Databricks Apps HTTP 连接超时,该超时仅适用于单个 HTTP 请求。 (默认值:1 小时)

高级模板自述文件显示了五种客户端模式的请求示例:

  • 调用:标准的非流模式 POST。
  • :标准的流式 POST。
  • 背景,然后轮询background=true POST,然后轮询 GET /responses/{id},直到完成。
  • 后台流媒体传输,通过流恢复:使用background=truestream=true进行POST;如果连接断开,请使用GET /responses/{id}重新连接至stream=true
  • 后台流式传输,通过轮询恢复:启动相同,如果连接断开,则轮询GET /responses/{id}以获得最终结果。

部署和查询代理

使用内存配置代理后,请按照 在应用上编著 AI 代理并部署 中的步骤,在本地运行代理,评估代理,并将其部署到 Databricks 应用。

后续步骤