2.0 本章介绍
Agent 的"记忆":状态管理的艺术
如果说函数是 Agent 的"技能",那么数据结构就是 Agent 的"记忆"。一个智能的 Agent 需要:
- 记住对话历史(列表)
- 维护当前状态(字典)
- 去重已处理的任务(集合)
- 管理复杂的嵌套数据(TypedDict/Pydantic)
在 LangGraph 中,状态(State) 是核心概念。每个节点接收状态,处理后返回新状态。理解数据结构,就是理解如何设计和管理 Agent 的状态。
🎯 小白理解指南:什么是"数据结构"?
想象你在整理房间:
- 列表(List)就像一个排队的队伍——每个人有固定位置,先来后到
- 字典(Dict)就像你的通讯录——通过名字(键)快速找到电话号码(值)
- 集合(Set)就像一个签到表——只关心谁来过,不关心顺序,也不会重复记录
- 元组(Tuple)就像身份证信息——一旦确定就不能改动
在 AI Agent 中,这些"容器"帮助机器人记住对话、管理任务、存储配置。没有它们,AI 就像一个失忆的人,每次对话都从头开始!
本章学习目标
1. 列表(List):Agent 的时间线
- ✅ 列表的创建和操作
- ✅ 列表推导式和切片
- ✅ 管理消息历史
- ✅ 实战:实现对话历史管理器
2. 字典(Dict):Agent 的配置中心
- ✅ 字典的高级用法
- ✅ 嵌套字典处理
- ✅ defaultdict 和 Counter
- ✅ 实战:构建配置管理系统
3. 集合(Set):Agent 的去重引擎
- ✅ 集合操作(并、交、差)
- ✅ 去重和成员检查
- ✅ 实战:任务去重系统
4. TypedDict:类型安全的状态
- ✅ TypedDict 基础
- ✅ 可选字段和必需字段
- ✅ 与 LangGraph State 的联系
5. Pydantic:数据验证的利器
- ✅ Pydantic BaseModel
- ✅ 字段验证和默认值
- ✅ 在 LangChain 中的应用
6. 实战:LangGraph 状态管理
- ✅ 设计 AgentState
- ✅ 状态更新机制
- ✅ 完整的 Agent 状态系统
本章内容导航
Module 2: 数据结构与状态管理
│
├── 2.0 本章介绍 (你在这里)
├── 2.1 列表与元组:管理 Agent 的消息历史
├── 2.2 字典:Agent 状态的核心数据结构
├── 2.3 集合:数据去重与成员检查
├── 2.4 TypedDict 与 Pydantic:类型安全的状态管理
├── 2.5 实战:构建 LangGraph 状态系统
└── 2.6 小结和复习与 AI Agent 的联系
| 数据结构 | 在 Agent 中的用途 |
|---|---|
| list | 消息历史、工具列表、步骤记录 |
| dict | Agent 状态、配置参数、API 响应 |
| set | 已处理任务、去重 |
| tuple | 不可变配置、坐标 |
| TypedDict | 类型安全的状态定义 |
| Pydantic | 数据验证、Tool 参数 |
🎯 小白理解指南:为什么 AI Agent 需要这些?
把 AI Agent 想象成一个智能客服:
- 用 list 记录和用户的聊天记录("刚才他说了什么?")
- 用 dict 存储用户信息("他叫什么名字?订单号是多少?")
- 用 set 记录已经处理过的问题("这个问题我回答过了吗?")
- 用 TypedDict 确保状态格式统一("每个用户信息都必须有姓名和电话")
- 用 Pydantic 检查数据是否合法("电话号码必须是 11 位数字")
这些工具让 AI 能够有条理地工作,而不是一团乱麻!
预期学习时间
- 快速阅读:3-4 小时
- 深度学习(含实践):10-14 小时
- 完成所有挑战题:额外 5-7 小时
准备好了吗?让我们开始探索 Agent 的"记忆系统"!