2.6 小结和复习
核心概念回顾
通过 Module 2,你已经掌握了 Python 的核心数据结构,这些是构建 AI Agent 状态系统的基础。
🎯 小白总结:这章学了什么?
我们学了 Python 的 6 种"容器",每种都有自己的特点和用途:
你学会的 生活中的比喻 AI Agent 中的用途 列表 list 聊天记录 记住对话历史 元组 tuple 身份证信息 存储不变的配置 字典 dict 通讯录 管理 Agent 状态 集合 set 签到表 任务去重 TypedDict 表格模板 定义状态结构 Pydantic 表单验证 确保数据正确
数据结构速查
| 数据结构 | 特点 | 适用场景 |
|---|---|---|
| list | 有序、可变 | 消息历史、任务队列 |
| tuple | 有序、不可变 | 配置常量、坐标 |
| dict | 键值对、快速查找 | Agent 状态、配置 |
| set | 无序、去重 | 去重、成员检查 |
| TypedDict | 类型安全的字典 | 状态定义 |
| Pydantic | 数据验证 | Tool 参数、配置 |
与 LangGraph 的联系
🎯 小白理解指南:这些知识点怎么串起来的?
LangGraph 的 State 就是把我们学的东西组合使用:
AgentState(TypedDict 定义结构) ├── messages(list 存对话历史) ├── context(dict 存各种配置) └── tools_used(set 记录用过的工具)所以学好数据结构 = 学会管理 AI Agent 的记忆!
python
# LangGraph State 本质上是 TypedDict
from typing import TypedDict
from langgraph.graph import StateGraph
class AgentState(TypedDict):
messages: list[BaseMessage] # 列表:消息历史
context: dict[str, Any] # 字典:上下文信息
tools_used: set[str] # 集合:已使用工具🔥 高难度编码挑战
挑战:构建完整的 LangGraph State 系统(难度:⭐⭐⭐⭐⭐)
🎯 小白提示:这个挑战在练什么?
这个挑战要你实现一个"生产级"的状态管理系统。在真实项目中,你需要:
- 状态回滚:用户说"撤销刚才的操作",你得能恢复到之前的状态
- 状态持久化:服务器重启后,对话历史不能丢失
- 状态合并:多个用户同时操作,不能互相覆盖
这是把本章所有知识综合运用的终极练习!
实现一个production-ready的状态管理系统,包含:
- 状态定义(TypedDict + Pydantic)
- 状态更新机制
- 状态持久化(JSON)
- 状态回滚(撤销功能)
- 状态合并(处理并发更新)
python
from typing import TypedDict, List, Dict, Any
from pydantic import BaseModel
import json
class Message(BaseModel):
role: str
content: str
class AgentState(TypedDict):
messages: List[Message]
step: str
metadata: Dict[str, Any]
class StateManager:
"""实现完整的状态管理系统"""
def __init__(self):
# TODO: 实现初始化
pass
def update_state(self, updates: Dict) -> AgentState:
"""更新状态"""
# TODO: 实现
pass
def save_checkpoint(self) -> str:
"""保存检查点"""
# TODO: 实现
pass
def rollback(self, checkpoint_id: str) -> None:
"""回滚到检查点"""
# TODO: 实现
pass
def merge_states(self, state1: AgentState, state2: AgentState) -> AgentState:
"""合并两个状态(处理并发)"""
# TODO: 实现
pass下一章:Module 3: 面向对象编程