PydanticAI 使用介绍:功能、价格与上手指南

PydanticAI 是由 Pydantic 团队推出的 Python Agent 框架,旨在将 FastAPI 式的开发体验带入生成式 AI 应用。本文介绍其核心功能、价格模式与快速上手指南,适合希望构建类型安全、可维护 AI 应用的开发者阅读。

PydanticAI 是 Pydantic 团队推出的 Python Agent 框架,目标是把 FastAPI 的开发体验带入生成式 AI 领域。它让开发者用熟悉的 Pydantic 模型定义输出结构,从而构建类型安全、可验证、易维护的 LLM 应用。

PydanticAI 是什么

PydanticAI 是一个基于 Python 的 Agent 开发框架,核心思路是"以 Pydantic 为中心"。你只需定义数据模型,框架就能自动处理提示词、工具调用、结果校验和重试逻辑。

它并不是要取代 LangChain 或 LlamaIndex,而是提供一个更轻量、更贴近 Python 类型系统的选择。

核心功能

1. 类型安全的输出校验

通过 Pydantic 模型定义 LLM 的返回结构,框架会自动验证结果。如果模型输出不符合预期,PydanticAI 会自动重试或抛出明确错误。

2. 依赖注入系统

类似 FastAPI 的 Depends,PydanticAI 支持在 Agent 中注入数据库连接、API 客户端等依赖,便于测试和解耦。

3. 工具调用与函数注册

使用 @agent.tool 装饰器即可注册工具函数,框架自动生成 JSON Schema 并处理调用流程。

4. 流式输出与结构化流

支持 run_stream 方法,既能流式返回文本,也能流式返回结构化数据。

5. 多模型支持

内置对 OpenAI、Anthropic、Gemini、Groq、Ollama 等模型的支持,切换模型只需修改一行代码。

6. 日志与可观测性

集成 Logfire,可追踪每次 Agent 运行的提示词、工具调用和 token 消耗。

价格方案

PydanticAI 本身是开源免费的,采用 MIT 许可证。你只需为实际使用的 LLM API 付费。

项目费用
PydanticAI 框架免费
LLM API 调用按各厂商定价
Logfire 可观测性有免费额度,超出后按量计费
商业支持可联系 Pydantic 团队

对于个人开发者和小型项目,整体成本主要集中在模型调用上。

快速上手指南

环境准备

需要 Python 3.9 或更高版本。

pip install pydantic-ai

第一个 Agent

from pydantic_ai import Agent

agent = Agent(
    'openai:gpt-4o-mini',
    system_prompt='你是一个简洁的助手。'
)

result = agent.run_sync('用一句话解释什么是 PydanticAI。')
print(result.data)

使用结构化输出

from pydantic import BaseModel
from pydantic_ai import Agent

class CityInfo(BaseModel):
    name: str
    country: str
    population: int

agent = Agent('openai:gpt-4o-mini', result_type=CityInfo)
result = agent.run_sync('介绍一下杭州。')
print(result.data)

注册工具

@agent.tool
def get_weather(city: str) -> str:
    return f'{city} 今天晴,25°C'

result = agent.run_sync('杭州天气如何?')

配置 API Key

推荐使用环境变量:

export OPENAI_API_KEY=your_key

适用场景

  • 需要严格输出结构的 AI 应用
  • 已有 FastAPI 项目想集成 LLM
  • 需要可测试、可维护的 Agent 逻辑
  • 多模型切换的实验项目

注意事项

  1. PydanticAI 仍处于快速迭代阶段,API 可能变化。
  2. 复杂多 Agent 协作场景,可能需要搭配其他框架。
  3. 生产环境建议配合 Logfire 做监控。

结论

PydanticAI 为 Python 开发者提供了一个类型安全、轻量且符合工程习惯的 Agent 框架。它免费开源,学习曲线平缓,特别适合已经熟悉 Pydantic 和 FastAPI 的团队。如果你的项目需要结构化输出和清晰的依赖管理,PydanticAI 值得一试。

返回 AI 教程列表