Pydantic AI 快速入门:类型化 Agent 从第一个请求到生产部署

Python 类型化 Agent 框架:换模型只改一个字符串、结构化输出、工具与依赖注入、供应商自动 fallback;配套 Evals 评估与 Harness 编码助手。

📅 收录: 2026-11-10 🔄 更新: 2026-11-10

这是什么?适合谁?

Pydantic AI 是 Pydantic 团队推出的 Python Agent 框架,用类型注解把「模型、依赖、工具、输出」固定成可检查的代码。 换模型只需要改一个字符串;供应商失败可以自动 fallback 到备用模型;同一个 Agent 可以跑在 Web 前端、终端、语音通话、持久化后台队列与 GitHub Actions 里。

适合已经有 Python 工程习惯、想让 LLM 调用像写普通函数一样可测试可维护的开发者。 如果你只是想网页上聊天,它不是给你的;如果你在写会进生产、要过代码评审的 Agent 服务,它值得先试一个 demo。

核验日期:2026-11-10。本文基于官方文档(pydantic.dev/docs/ai)与 GitHub / PyPI 公开元数据整理,AI 辅助生成,尚未完成独立实测。

前置条件与安全边界

  • Python 3.9+(建议 3.10 以上);先 python --version 确认解释器,不要假设系统自带。
  • 一个模型供应商的 API key(OpenAI、Anthropic、Google、DeepSeek、Groq、Ollama 本地模型等均支持)。
  • key 放环境变量,不要写进代码或提交进仓库。
  • Agent 会真的执行你注册的工具函数;涉及文件、Shell、网络请求的工具先在小范围授权内试。
  • 阅读所用模型供应商的数据政策:框架本地运行不等于所有数据都留在本机。

安装与第一个任务

python -m venv .venv && source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install pydantic-ai
export OPENAI_API_KEY=你的key      # 或 ANTHROPIC_API_KEY / GOOGLE_API_KEY

写一个最小的结构化输出 Agent(hello.py):

from pydantic_ai import Agent
from pydantic import BaseModel

class Result(BaseModel):
    city: str
    temperature_c: float

agent = Agent('openai:gpt-4o-mini', output_type=Result,
              instructions='回答天气问题,温度只给数字。')

result = agent.run_sync('北京今天大约多少度?')
print(result.output)   # Result(city='北京', temperature_c=12.0)
print(result.usage())  # token 用量

成功判定:输出是带类型的 Result 对象而不是裸字符串,且 usage() 能打印请求数与 token 数。

初级用法:工具调用与依赖注入

给 Agent 注册普通 Python 函数当工具,运行期类型注解会转成 JSON Schema 交给模型:

from pydantic_ai import Agent, RunContext
from dataclasses import dataclass

@dataclass
class Deps:
    db_conn: object  # 你的数据库连接或任意对象

def get_balance(ctx: RunContext[Deps], user_id: str) -> float:
    return ctx.deps.db_conn.get(user_id).balance

agent = Agent('openai:gpt-4o-mini', deps_type=Deps, tools=[get_balance])
result = agent.run_sync('查一下 user_42 的余额', deps=Deps(db_conn=my_conn))

要点:依赖对象不进提示词,模型拿不到;工具返回值会作为工具消息回给模型继续推理。

高级玩法

1. 一行换模型与 fallback

把 'openai:gpt-4o-mini' 改成 'anthropic:claude-sonnet-4' 或 'google-gla:gemini-2.0-flash' 即可切换;配合 FallbackModel 可在主供应商 429/超时自动换备用模型,不必自己写重试循环。

2. Pydantic Evals 评估输出

用 pydantic_evals 对同一批输入跑多个模型/多个 Agent 版本,按输出与工具调用轨迹打分,把「改了提示词效果变没变」变成可回归的测试用例。

3. Pydantic Graph 编排多步控制流

把多步流程写成类型化节点图,节点间传递的数据也是 Pydantic 模型;适合审批流、研究流水线这类「LLM 调用只是其中一环」的场景。

4. Pydantic AI Harness 组装编码/研究助手

Harness 以 capability 形式挂载 memory、guardrails、sub-agents、planning、context compaction、persistence,配合沙箱执行环境(Docker、E2B 等)可组装出完整编码 Agent;也可直接用内置 Coder / Researcher harness。

小技巧

  • run_sync 是同步入口;Web 服务里用 agent.run(async)避免阻塞。
  • output_type 给简单类型(如 str)就退化为普通文本回复,先跑通再加结构。
  • instrumentation 钩子可以把每次调用接入 OpenTelemetry/Logfire,生产排障必备。
  • 用 result.all_messages() 导出完整消息历史,方便离线复盘模型行为。
  • 本地开发接 Ollama(ollama:qwen3 一类模型名)可做到零 API 费用调试。

常见踩坑

1. 拿到的是空输出或校验报错

output_type 模型字段太复杂或 instructions 没说清格式时,模型可能给不出合法 JSON。先用最简模型跑通,字段一个个加。

2. 工具函数抛异常导致整轮失败

在工具函数内部 try/except,把错误信息作为返回值交给模型,让模型自己决定重试还是换路。

3. 忘记 deps 类型对齐

Agent(..., deps_type=Deps) 与 run_sync(..., deps=...) 传的类型不一致会直接报校验错;两边都来自同一个 dataclass 定义即可。

4. 同步入口用在 async 框架里

FastAPI 等环境用 run_sync 会阻塞事件循环;改用 await agent.run(...)。

5. 把 key 写进代码

环境变量或 .env 管理;提交前 git grep API_KEY 自查一遍。

常见问题 FAQ

Q1: Pydantic AI 和 LangChain 有什么区别?

A: Pydantic AI 主打类型安全与简洁 API,围绕 Pydantic 的校验体系组织输入输出;LangChain 生态面更宽、抽象层更多。按团队熟悉度选,不要按星数选。

Q2: 支持哪些模型供应商?

A: 官方文档 Models & Providers 列出 OpenAI、Anthropic、Google、AWS Bedrock、Azure/Foundry、DeepSeek、Groq、Mistral、Moonshot/Kimi、Ollama、OpenRouter、xAI、Z.AI 等,也支持任意 OpenAI 兼容 API。

Q3: 商用要付费吗?

A: 框架 MIT 开源免费;你调用的模型 API、托管沙箱等第三方资源按各自计费。

Q4: 会不会把我的数据传出去?

A: 框架只在你配置的供应商之间转发;数据边界取决于所选供应商,用本地 Ollama 可完全离线。

Q5: 能脱离 Pydantic 库单独用吗?

A: 它基于 Pydantic v2 构建,结构化输出、校验都依赖 Pydantic;单独用意义不大。

权限、成本与免责声明

  • 模型 API 按 token 计费;工具里的副作用(下单、发邮件、写文件)由你授权范围决定,框架不替你兜底。
  • 沙箱执行环境(Docker/E2B 等)按平台各自计费。
  • 本文基于公开资料整理,功能细节以官方文档为准,MagicNetWorld 尚未完成独立实测。

参考链接

📊 评分与标签

核验口径:已按现行口径通过,待按新证据契约复核 · 证据状态:仅公开资料 · 核验日期:

评分说明

总分 9.0/10 · P_优选

核验日期:2026-11-10。对象是 pydantic/pydantic-ai 的框架文档、GitHub / PyPI 公开元数据与官方功能清单。 评分依据可追溯至公开来源,每项分数均有明确理由和数据支撑。 本站没有在本环境安装运行 Pydantic AI,没有跑通基准,不声称完成独立实测。

可观测社区指标

GitHub API 返回 21,105 stars、3,138 forks、MIT 许可,pushed_at 为 2026-11-09(核验日前一天仍有推送),仓库未归档。 PyPI 当前版本 2.66.0,共 359 个历史版本,发布节奏密集。 这些是仓库快照,不等于生产采用率或质量证明。

⚙️ 功能完整度:2.3/2.5

官方文档覆盖 Agents、依赖注入、结构化输出、工具与工具集、多 Agent 模式、MCP、模型供应商(OpenAI/Anthropic/Google/DeepSeek/Groq/Ollama/OpenRouter 等十余家)、FallbackModel 供应商容错、持久化与可观测性。 Pydantic AI Harness 以 capability 形式挂载 memory、guardrails、sub-agents、planning、context compaction、persistence;配套 Pydantic Evals(输出与工具轨迹评估)、Pydantic Graph(类型化多步控制流)。 生态面几乎覆盖 Python Agent 开发全链路;未亲测各能力间的成熟度差异,保留 0.2 分。

  • 竞品对比 1(LangChain):生态与集成数量更宽,但抽象层更多;Pydantic AI 以类型安全和简洁 API 组织同样的核心能力,两者按团队习惯取舍。
  • 竞品对比 2(OpenAI Agents SDK):绑定 OpenAI 协议为先;Pydantic AI 供应商切换是一行字符串改动,跨厂商一致性更好。

✨ 输出质量:2.2/2.5

结构化输出直接落到 Pydantic 模型,校验失败在边界处暴露而不是沉到下游;类型注解生成的工具 Schema 减少「模型瞎猜参数」类错误。 这是设计层面的质量保障,本站没有用同一组任务与其它框架做对比实测,不据此断言生成内容本身更准。

  • 竞品对比 1(LangChain):输出解析依赖各自的输出解析器,出错时机更靠后;Pydantic AI 把校验放进类型系统,错误更早暴露。
  • 竞品对比 2(LlamaIndex):面向 RAG 检索链路的组件质量高;Pydantic AI 的强项在 Agent 循环与结构化结果,场景侧重不同。

🖐️ 易用性:1.3/1.5

pip install pydantic-ai + 几行代码即可跑通第一个结构化 Agent;run_sync 同步入口对新手友好,async 也有完整支持。 扣分点在 Harness、Graph、Evals 等进阶面的概念较多,且依赖类型系统理解,非 Python 背景用户有门槛。

  • 竞品对比 1(CrewAI):角色式多 Agent 上手演示更「故事化」;Pydantic AI 更像写普通函数,工程化团队更好接手。
  • 竞品对比 2(LangChain):文档量大但入口分散;Pydantic AI 文档结构集中,单一供应商起步路径清晰。

💰 性价比:1.5/1.5

框架 MIT 开源免费,GitHub API 许可字段为 MIT;成本只来自模型 API 与可选托管资源,且支持 Ollama 本地模型做零 API 费开发调试。

  • 竞品对比 1(LangChain):同样开源,但可选付费云服务更多,实际成本取决于集成深度。
  • 竞品对比 2(商业 Agent 平台):按席位或调用计费;自建栈用 Pydantic AI 的边际成本主要是模型费与人力。

🔒 稳定性:0.9/1.0

pushed_at 2026-11-09、359 个 PyPI 版本表明发布节奏密集、维护活跃;FallbackModel 内建供应商级容错。 仅文档判断,未做长时间运行与故障注入实测,保留 0.1。

  • 竞品对比 1(LangChain):版本迭代快、破坏性变更多;Pydantic AI 目前处于 2.x 主线,稳定性承诺以官方文档为准。
  • 竞品对比 2(OpenAI Agents SDK):单厂商背书、变更由一家控制;多供应商场景下 Pydantic AI 的容错设计更显性。

🛡️ 隐私安全:0.8/1.0

本地运行、依赖不进提示词、可完全离线接 Ollama;guardrails、spend limits、artifact scanning 等安全能力以文档列出。 但没有做代码审计,不能确认全部数据流边界;模型供应商侧的数据政策仍需逐家核对。

  • 竞品对比 1(LangChain):数据边界同样取决于所接供应商;两者都不应把「本地框架」理解成「全链路不外发」。
  • 竞品对比 2(商业 SaaS Agent 平台):数据经平台中转,边界由平台条款决定;自托管栈的边界控制权更多在你手里。

标签说明

  • 开源工具:MIT 许可,见 GitHub API。
  • Agent框架:类型化 Agent 循环、工具调用、多 Agent 模式与 Harness,见官方文档。
  • Python开发:基于 Pydantic v2、以 Python 类型注解为核心 API,见PyPI。

限制与未实测声明

未安装运行框架,未验证各供应商实际连通性、fallback 触发行为、Evals 评估效果或 Harness 编码能力。 stars/版本数是核验日快照。本文基于公开资料整理,AI 辅助生成,MagicNetWorld 尚未完成独立实测。

来源核实

  • 官方文档:功能清单、供应商列表、Harness/Evals/Graph 说明(2026-11-10 抓取,HTTP 200)。
  • GitHub API:21,105★ / 3,138 forks / MIT / pushed_at 2026-11-09。
  • PyPI JSON API:2.66.0,359 releases。

同分类推荐

AI开发平台 分类下的其他工具

)}