Skip to content

总结与展望

本章作为 Module 21 的总结,回顾 PydanticAI 的核心要点,提供选型建议,并展望 AI Agent 框架的未来发展。

本章概览

  • 全章知识回顾
  • 框架选型决策指南
  • 最佳实践总结
  • 未来发展趋势
  • 学习资源推荐

1. 全章知识回顾

1.1 PydanticAI 核心价值

┌─────────────────────────────────────────────────────────────────┐
│                    PydanticAI 核心价值金字塔                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│                         ┌───────────┐                           │
│                         │  生产就绪  │                           │
│                         │ Production│                           │
│                         │   Ready   │                           │
│                         └─────┬─────┘                           │
│                               │                                  │
│                    ┌──────────┴──────────┐                      │
│                    │      可观测性        │                      │
│                    │   Observability     │                      │
│                    └──────────┬──────────┘                      │
│                               │                                  │
│              ┌────────────────┴────────────────┐                │
│              │          开发者体验              │                │
│              │    Developer Experience         │                │
│              └────────────────┬────────────────┘                │
│                               │                                  │
│       ┌───────────────────────┴───────────────────────┐         │
│       │                 类型安全                       │         │
│       │              Type Safety                      │         │
│       └───────────────────────┴───────────────────────┘         │
│                               │                                  │
│    ┌──────────────────────────┴──────────────────────────┐      │
│    │                    Pydantic 基因                     │      │
│    │               验证 • 序列化 • Schema                 │      │
│    └─────────────────────────────────────────────────────┘      │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

1.2 章节知识图谱

章节核心内容关键收获
21.1 介绍框架背景、设计理念理解 PydanticAI 的定位
21.2 架构分层设计、执行流程掌握内部工作原理
21.3 概念Agent、Tools、Deps熟练使用核心 API
21.4 对比与 LangGraph 比较明确选型依据
21.5 集成协同集成方案实现框架协作
21.6 实践完整案例应用到实际项目

1.3 核心概念速查

python
# Agent - 核心控制器
agent = Agent(
    'openai:gpt-4o',          # 模型
    output_type=MyOutput,      # 输出类型
    deps_type=MyDeps,          # 依赖类型
    instructions='...',        # 指令
)

# Tools - 能力扩展
@agent.tool
async def my_tool(ctx: RunContext[MyDeps]) -> str:
    return ctx.deps.data

# Dependencies - 运行时注入
result = await agent.run('prompt', deps=MyDeps(...))

# Output - 结构化输出
class MyOutput(BaseModel):
    field: str
    score: float

2. 框架选型决策指南

2.1 决策矩阵

┌─────────────────────────────────────────────────────────────────┐
│                        选型决策矩阵                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  项目特征评分(每项 1-5 分)                                       │
│                                                                  │
│  ┌───────────────────────────┬─────────────┬─────────────────┐  │
│  │         特征              │ PydanticAI  │   LangGraph     │  │
│  ├───────────────────────────┼─────────────┼─────────────────┤  │
│  │ 类型安全重要性            │     5       │       3         │  │
│  │ 快速开发需求              │     5       │       3         │  │
│  │ 简单 Agent 场景           │     5       │       4         │  │
│  │ 复杂多 Agent 协作         │     3       │       5         │  │
│  │ 精确流程控制              │     2       │       5         │  │
│  │ 状态管理复杂度            │     3       │       5         │  │
│  │ 检查点/恢复需求           │     2       │       5         │  │
│  │ 企业级需求                │     3       │       5         │  │
│  │ 团队熟悉 Pydantic        │     5       │       3         │  │
│  │ 团队熟悉 LangChain       │     2       │       5         │  │
│  └───────────────────────────┴─────────────┴─────────────────┘  │
│                                                                  │
│  计算方法:根据项目需求对每项加权,得分高者优先                     │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

2.2 场景推荐

选择 PydanticAI

✅ 最佳场景:

1. API 服务 + AI 功能
   • FastAPI 项目集成
   • 需要结构化响应
   • 类型安全优先

2. 快速原型开发
   • 验证想法
   • MVP 构建
   • 时间紧迫

3. 单 Agent + 工具
   • 聊天机器人
   • 内容生成
   • 数据提取

4. 数据验证密集型
   • 表单处理
   • 数据转换
   • 报告生成

选择 LangGraph

✅ 最佳场景:

1. 复杂多 Agent 系统
   • Supervisor 架构
   • 层级 Agent
   • 动态团队

2. 长流程工作流
   • 审批系统
   • 任务编排
   • 状态机

3. 高可靠性需求
   • 检查点恢复
   • 错误处理
   • 事务管理

4. 企业级应用
   • 合规要求
   • 审计追踪
   • 复杂集成

两者协同

✅ 协同场景:

1. 混合复杂度
   • 简单任务用 PydanticAI
   • 复杂编排用 LangGraph

2. 渐进式演进
   • 原型用 PydanticAI
   • 扩展用 LangGraph

3. 团队分工
   • 业务逻辑团队用 PydanticAI
   • 架构团队用 LangGraph

2.3 快速决策流程图

开始选型

    ├─── 是否需要复杂多 Agent 协作?
    │       │
    │       ├── 是 ──► 考虑 LangGraph
    │       │           │
    │       │           ├── 是否需要类型安全的子 Agent?
    │       │           │       │
    │       │           │       └── 是 ──► LangGraph + PydanticAI 协同
    │       │           │
    │       │           └── 否 ──► 纯 LangGraph
    │       │
    │       └── 否 ──┐
    │                │
    ├─── 是否重视类型安全和验证?
    │       │
    │       ├── 是 ──► PydanticAI
    │       │
    │       └── 否 ──┐
    │                │
    ├─── 是否需要精确控制执行流程?
    │       │
    │       ├── 是 ──► LangGraph
    │       │
    │       └── 否 ──► PydanticAI(更简单)

    └── 评估团队技术栈后做最终决定

3. 最佳实践总结

3.1 PydanticAI 最佳实践

python
# ✅ 推荐做法

# 1. 始终定义输出类型
class OutputModel(BaseModel):
    result: str
    confidence: float

agent = Agent('openai:gpt-4o', output_type=OutputModel)

# 2. 使用依赖注入
@dataclass
class AppDeps:
    db: Database
    user_id: int

agent = Agent('openai:gpt-4o', deps_type=AppDeps)

# 3. 分离工具定义
@agent.tool
async def get_data(ctx: RunContext[AppDeps]) -> str:
    """获取数据(描述清晰)"""
    return await ctx.deps.db.query(ctx.deps.user_id)

# 4. 使用 TestModel 测试
def test_agent():
    with agent.override(model=TestModel()):
        result = agent.run_sync("test")
        assert result.output is not None

# 5. 集成 Logfire
import logfire
logfire.configure()
logfire.instrument_pydantic_ai()
python
# ❌ 避免的做法

# 1. 不定义输出类型(丢失类型安全)
agent = Agent('openai:gpt-4o')  # output_type 默认 str

# 2. 在工具中硬编码配置
@agent.tool_plain
def bad_tool():
    api_key = "hardcoded"  # ❌ 应该用依赖注入
    return call_api(api_key)

# 3. 忽略错误处理
result = agent.run_sync("prompt")  # ❌ 没有 try-except

# 4. 工具文档不清晰
@agent.tool_plain
def x(a, b):  # ❌ 无文档、命名不清
    return a + b

# 5. 在生产环境不配置可观测性

3.2 协同集成最佳实践

python
# ✅ 协同最佳实践

# 1. 职责分离
# PydanticAI:处理具体任务
task_agent = Agent('openai:gpt-4o', output_type=TaskResult)

# LangGraph:管理流程
graph = StateGraph(WorkflowState)
graph.add_node("task", lambda s: task_agent.run_sync(...))

# 2. 共享类型定义
from shared.models import SharedOutput  # 统一类型

# 3. 统一错误处理
async def safe_node(state):
    try:
        result = await agent.run(...)
        return {"result": result.output}
    except Exception as e:
        return {"error": str(e)}

# 4. 并行执行
import asyncio
results = await asyncio.gather(
    agent1.run(...),
    agent2.run(...),
)

4. 未来发展趋势

4.1 AI Agent 框架演进

┌─────────────────────────────────────────────────────────────────┐
│                    AI Agent 框架演进趋势                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  2023                2024                2025+                  │
│    │                   │                   │                    │
│    ▼                   ▼                   ▼                    │
│                                                                  │
│  ┌─────────┐      ┌─────────┐        ┌─────────┐              │
│  │ 单模型  │ ──► │ 多 Agent │ ──►  │ Agent   │              │
│  │ 调用    │      │  系统    │        │  生态   │              │
│  └─────────┘      └─────────┘        └─────────┘              │
│                                                                  │
│  特点:            特点:              特点:                    │
│  • 简单 API       • 复杂编排          • 标准协议                │
│  • 单次调用       • 状态管理          • 互操作性                │
│  • 结果返回       • 工具使用          • Agent 市场              │
│                                                                  │
│  ─────────────────────────────────────────────────────────────  │
│                                                                  │
│  趋势预测:                                                      │
│                                                                  │
│  1. 标准化        MCP、A2A 等协议成为标准                        │
│  2. 类型安全      更多框架采用类似 PydanticAI 的设计             │
│  3. 可组合        框架之间更容易互操作                           │
│  4. 原生 AI       AI 成为应用基础设施,而非附加功能              │
│  5. 安全优先      内置安全、审计、合规能力                       │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

4.2 PydanticAI 发展方向

基于当前特性和社区反馈,预期发展方向:

领域当前状态预期发展
多 Agent基础支持更强大的原生多 Agent
Graphpydantic-graph与主框架深度整合
MCP支持更多内置工具
A2A支持标准化扩展
可观测性LogfireOpenTelemetry 原生
测试TestModel更丰富的测试工具

4.3 协同生态展望

未来协同生态:

┌─────────────────────────────────────────────────────────────────┐
│                        AI 应用层                                 │
│  ┌────────────────────────────────────────────────────────────┐ │
│  │                    Business Logic                          │ │
│  └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│                      Agent 框架层                                │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────┐  │
│  │  PydanticAI  │  │  LangGraph   │  │  其他框架...          │  │
│  │  (类型安全)   │  │  (编排)      │  │                      │  │
│  └──────┬───────┘  └──────┬───────┘  └──────────────────────┘  │
│         │                 │                                     │
│         └────────┬────────┘                                     │
│                  │                                               │
│         ┌────────▼────────┐                                     │
│         │  互操作协议     │                                     │
│         │  MCP / A2A      │                                     │
│         └─────────────────┘                                     │
└─────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│                      模型服务层                                  │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────────────────┐│
│  │ OpenAI  │  │Anthropic│  │ Gemini  │  │  本地模型 (Ollama)  ││
│  └─────────┘  └─────────┘  └─────────┘  └─────────────────────┘│
└─────────────────────────────────────────────────────────────────┘

5. 学习资源推荐

5.1 官方资源

资源链接说明
PydanticAI 文档https://ai.pydantic.dev官方完整文档
PydanticAI GitHubgithub.com/pydantic/pydantic-ai源码和示例
Pydantic 文档https://docs.pydantic.dev基础库文档
Logfirehttps://logfire.pydantic.dev可观测性平台

5.2 LangGraph 对比学习

资源链接
LangGraph 文档https://langchain-ai.github.io/langgraph
LangChain 文档https://python.langchain.com
LangSmithhttps://smith.langchain.com

5.3 推荐学习路径

入门阶段(1-2 周)

    ├── 1. 学习 Pydantic 基础
    │      • BaseModel
    │      • Field 验证
    │      • 类型注解

    ├── 2. 完成 Hello World
    │      • 基本 Agent
    │      • 简单工具

    └── 3. 结构化输出
           • 定义输出类型
           • 验证流程

进阶阶段(2-4 周)

    ├── 4. 依赖注入
    │      • 设计依赖
    │      • RunContext

    ├── 5. 流式处理
    │      • 文本流
    │      • 结构化流

    └── 6. 测试和可观测
           • TestModel
           • Logfire

高级阶段(4+ 周)

    ├── 7. 多 Agent
    │      • 委托模式
    │      • 工具调用

    ├── 8. 与 LangGraph 协同
    │      • 集成模式
    │      • 架构设计

    └── 9. 生产部署
           • FastAPI 集成
           • 性能优化

6. 写在最后

6.1 作为 LangChain 首席科学家的观点

经过对 PydanticAI 的深入分析,我有以下几点思考:

1. PydanticAI 填补了重要空白

在 AI Agent 框架领域,类型安全和验证一直被低估。PydanticAI 将 Pydantic 的成熟验证体系带入 AI 开发,这是一个重要的进步。

2. 两个框架并非竞争关系

LangGraph 专注于复杂编排,PydanticAI 专注于类型安全执行。它们解决不同层次的问题,可以也应该协同使用。

3. 行业正在走向标准化

MCP、A2A 等协议的出现表明,AI Agent 生态正在走向标准化。选择支持这些标准的框架是明智的。

4. 选择合适的工具而非最热门的

框架选型应该基于项目需求,而非流行度。有时候,"够用"比"强大"更重要。

6.2 行动建议

给不同角色的建议:

┌─────────────────────────────────────────────────────────────────┐
│                                                                  │
│  初学者                                                          │
│  ────────                                                        │
│  • 从 PydanticAI 开始,学习曲线更平缓                             │
│  • 掌握类型系统和验证概念                                         │
│  • 逐步了解 LangGraph                                            │
│                                                                  │
│  有经验的开发者                                                   │
│  ─────────────                                                   │
│  • 评估当前项目需求                                               │
│  • 尝试协同集成方案                                               │
│  • 建立团队最佳实践                                               │
│                                                                  │
│  架构师                                                          │
│  ──────                                                          │
│  • 设计灵活的技术架构                                             │
│  • 预留框架切换/扩展空间                                          │
│  • 关注标准协议演进                                               │
│                                                                  │
│  团队负责人                                                       │
│  ──────────                                                       │
│  • 评估团队技术栈匹配度                                           │
│  • 制定渐进式采用策略                                             │
│  • 投资可观测性和测试基础设施                                      │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

6.3 结语

AI Agent 开发正处于快速发展期。PydanticAI 和 LangGraph 代表了两种不同但互补的设计哲学。

PydanticAI 告诉我们:AI 开发可以像 Web 开发一样简单、类型安全。

LangGraph 告诉我们:复杂的 AI 系统需要精确的控制和编排。

作为开发者,我们应该:

  • 理解两种工具的设计理念
  • 根据场景选择合适的工具
  • 必要时让它们协同工作
  • 持续关注行业演进

AI Agent 的未来不是单一框架的天下,而是多元工具协同的生态。


章节总结

本 Module 完整覆盖了 PydanticAI 框架:

章节核心内容
21.1框架介绍、背景、核心特性
21.2架构设计、执行流程、类型系统
21.3Agent、Tools、Dependencies 详解
21.4与 LangGraph 深度对比分析
21.5四种协同集成模式及完整示例
21.6五个完整实践案例
21.7总结、选型指南、未来展望

希望本章内容能够帮助你:

  • 掌握 PydanticAI 的使用
  • 做出正确的框架选型
  • 构建高质量的 AI 应用

感谢阅读!

上一章:实践案例返回:Module 21 首页

基于 MIT 许可证发布。内容版权归作者所有。