教程5:记忆代理——会话、状态与事件


文档摘要

教程 5:记忆代理——会话、状态与事件 欢迎来到记忆与会话管理教程!本教程将教你如何创建能够记住对话、保持上下文并在多次交互中提供个性化体验的 AI 代理。 你将学到的内容 会话管理:代理如何保持对话上下文 状态持久化:存储和检索对话数据 事件追踪:理解对话流程与历史记录 记忆类型:内存、数据库以及云端记忆解决方案 个性化:创建能记住用户偏好的代理 核心概念 会话——对话容器 会话就像一条对话线程,用于记录用户与代理之间所有的交互内容。 示例:当你开始与旅行代理聊天时,一个会话便被创建。你关于航班、酒店及偏好的所有问题都会保存在这个会话中。 状态——当前上下文 状态代表代理在对话过程中需要记住的当前上下文与数据。

教程 5:记忆代理——会话、状态与事件

欢迎来到记忆与会话管理教程!本教程将教你如何创建能够记住对话、保持上下文并在多次交互中提供个性化体验的 AI 代理。

你将学到的内容

  • 会话管理:代理如何保持对话上下文
  • 状态持久化:存储和检索对话数据
  • 事件追踪:理解对话流程与历史记录
  • 记忆类型:内存、数据库以及云端记忆解决方案
  • 个性化:创建能记住用户偏好的代理

核心概念

1. 会话——对话容器

会话就像一条对话线程,用于记录用户与代理之间所有的交互内容。

┌─────────────────────────────────────────────────────────────┐ │ SESSION LIFECYCLE │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ CREATE │───▶│ ACTIVE │───▶│ CLOSED │ │ │ │ SESSION │ │ CONVERSATION│ │ SESSION │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ User ID │ │ Events │ │ Memory │ │ │ │ Created │ │ State │ │ Stored │ │ │ │ Timestamp │ │ History │ │ Archived │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────────────┘

示例:当你开始与旅行代理聊天时,一个会话便被创建。你关于航班、酒店及偏好的所有问题都会保存在这个会话中。

2. 状态——当前上下文

状态代表代理在对话过程中需要记住的当前上下文与数据。

┌─────────────────────────────────────────────────────────────┐ │ SESSION STATE │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │ │ │ USER STATE │ │ AGENT STATE │ │ APP STATE │ │ │ ├─────────────────┤ ├─────────────────┤ ├─────────────┤ │ │ │ • User ID │ │ • Agent Name │ │ • Session ID│ │ │ │ • Preferences │ │ • Current Task │ │ • Timestamp │ │ │ │ • History │ │ • Tools Used │ │ • Status │ │ │ │ • Context │ │ • Memory │ │ • Metadata │ │ │ └─────────────────┘ └─────────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────────────┘

示例:旅行代理的状态可能包括:

  • 用户偏好的目的地
  • 预算限制
  • 出行日期
  • 之前的推荐信息

3. 事件——对话历史

事件是构成对话历史的单个交互内容。

┌─────────────────────────────────────────────────────────────┐ │ EVENT FLOW │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ USER │───▶│ AGENT │───▶│ RESPONSE │ │ │ │ MESSAGE │ │ PROCESSING │ │ GENERATED │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Event Type: │ │ Event Type: │ │ Event Type: │ │ │ │ user_input │ │ processing │ │ response │ │ │ │ Timestamp │ │ Timestamp │ │ Timestamp │ │ │ │ Content │ │ Duration │ │ Content │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────────────┘

示例事件序列

  1. 用户事件:“我想去巴黎”
  2. 代理事件:处理请求,检查偏好
  3. 响应事件:“太棒了!我看到你喜欢豪华酒店。以下是一些选项……”

4. 会话运行流程

┌─────────────────────────────────────────────────────────────┐ │ SESSION RUNTIME FLOW │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 1. SESSION CREATION │ │ ┌─────────────┐ │ │ │ User starts │───▶ Create Session with User ID │ │ │ conversation│ Initialize State & Memory │ │ └─────────────┘ │ │ │ │ 2. CONVERSATION LOOP │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ User │───▶│ Agent │───▶│ Update │ │ │ │ Input │ │ Processes │ │ State │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Record │ │ Use Context │ │ Store │ │ │ │ Event │ │ & Memory │ │ Response │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ 3. SESSION CLOSURE │ │ ┌─────────────┐ │ │ │ User ends │───▶ Save Final State │ │ │ conversation│ Archive Session │ │ └─────────────┘ Store in Memory Bank │ └─────────────────────────────────────────────────────────────┘

教程结构

本教程分为三个循序渐进的级别:

  1. 5_1_in_memory_conversation——基础会话管理

    • InMemorySessionService 用于临时对话
    • 简单状态管理
    • 事件追踪基础
  2. 5_2_persistent_conversation——数据库持久化

    • DatabaseSessionService 与 SQLite
    • 持久化状态存储
    • 跨会话的对话历史记录

️ 先决条件

在开始本教程之前,请确保你已具备以下条件:

  • 安装了 Python 3.11+
  • Google AI Studio 获取的 Google AI API 密钥
  • SQLite(通常随 Python 一起安装)
  • 对数据库的基本了解(适用于教程 5_2)

如何使用本课程

每个教程都遵循一致的结构:

  • README.md:概念讲解与学习目标
  • agent.py:包含代理的实现代码
  • requirements.txt:教程所需的依赖项
  • app.py:Streamlit 网页界面(如适用)

学习方法:

  1. 阅读 README,理解记忆概念
  2. 查看代码,了解会话管理的实现方式
  3. 运行示例,观察记忆的实际效果
  4. 动手实验,进行多轮对话
  5. 进入下一教程,待准备就绪时再继续

教程特色

每个教程都包含:

  • 清晰的概念讲解
  • 简洁可用的代码示例
  • 真实场景的应用案例
  • 分步操作指南
  • 记忆持久化的演示

下一步

完成本教程后,你将准备好:

  • 高级代理模式——多代理系统
  • 自定义记忆实现——构建自己的记忆服务
  • 生产环境部署——扩展记忆代理的能力

专业提示

  • 从小处着手:先从内存会话开始,再过渡到持久化存储
  • 测试对话:进行多轮对话,观察记忆的实际效果
  • 监控状态:使用 ADK 网页界面检查会话状态
  • 规划记忆策略:根据你的使用场景选择合适的记忆服务

免责声明
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的原始文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


发布者: 作者: 转发
评论区 (0)
U