如果把過去兩年的 Agent 熱潮濃縮成一句話,大概就是:大家都會做 demo,但真正能進 production 的不多。原因也不神祕,問題通常不在「模型不夠聰明」,而在整條系統太像拼裝車:prompt 一坨、tool schema 一坨、輸出格式靠祈禱、除錯時再看 trace 猜模型剛剛到底在想什麼。
Pydantic AI 值得看,不是因為它又發明了新的 Agent 名詞,而是它試著把一件很樸素但很重要的事做紮實:讓 Agent 開發回到熟悉的軟體工程語境。用型別、驗證、dependency injection、可觀測性、測試與 graph,把原本容易漂浮的 LLM workflow,壓回比較能維運的形狀。
如果已經在 Python 團隊裡做內部助理、客服流程、資料抽取、審批工作流,這個方向很有參考價值;但如果還停留在「先做個聊天機器人看看會不會紅」,Pydantic AI 也可能太重,像是先把工業用骨架搭好,再發現業務題目其實還沒成形。
English TL;DR:
- Pydantic AI is an open-source Python agent framework that treats agents as typed, validated, testable software components rather than prompt-only scripts.
- Its main appeal is structured output, typed dependencies, tool schemas, observability, evals, and graph-based orchestration under one engineering model.
- It fits production-minded Python teams that need reliability, auditability, and maintainability.
- Its limits are equally real: Python-first adoption cost, added abstraction, model behavior still being probabilistic, and type safety not automatically solving product quality.
Pydantic AI 是什麼?
Pydantic AI 是 Pydantic 團隊做的開源 Python Agent Framework。從 README 與官方文件的定位來看,它不是把自己包成「萬能 Agent 平台」,而是想提供一套比較一致的開發模型:用 Agent 當主要容器,把 instructions、tools、dependencies、output schema、model 與 execution flow 放在同一個工程抽象裡。
這件事聽起來不花俏,實際上卻很關鍵。因為很多 Agent 專案卡住的地方,不是能力做不出來,而是越做越難維護:今天多接一個 tool,明天換模型,後天要補 approval flow,下週 PM 又說結果要輸出成固定 JSON,然後整包邏輯就慢慢長成一盆義大利麵。
Pydantic AI 想做的,就是把這種混亂降到比較能治理的程度。它的關鍵賣點大致有幾個:
- structured output:不是請模型「盡量回 JSON」,而是直接用 Pydantic model 做輸出型別
- typed dependencies:把執行期需要的資料、連線、上下文,明確注入 agent
- tool schema validation:tool 參數與輸出可以被驗證,不再全靠模型自由發揮
- model-agnostic:可以切不同 provider 與 model,不想整個應用一起重寫
- observability / evals / durable execution:把 production 常見需求拉進官方一等公民範圍
如果要用一句話形容,它比較像:FastAPI 之於 Web API 的那種開發感,搬到 LLM agent/workflow 上。
為什麼這種框架現在開始變重要
Agent 產品剛起步時,大家都忍得了很多不優雅:prompt 寫死、函式直接 call、錯了就 retry、輸出炸掉就手動 parse。因為在早期,目標是先證明這東西能跑。
但一旦真的往產品化走,需求會開始變質:
- 結果要進資料庫,格式不能飄
- tool 可能碰到金流、訂單、CRM、內部文件,不能亂打
- 出問題時要知道是哪個 step 壞掉
- 換模型或供應商時,不想整個 pipeline 跟著解體
- 要能寫測試、做 eval、追 token/cost、保留審計線索
這時候,單純的 prompt orchestration 很快就不夠用。真正缺的不是又一個「很會 call LLM 的 wrapper」,而是一個能把模型的不確定性包進工程邊界裡的框架。
Pydantic AI 的重要性就在這裡:它不是保證模型會變聰明,而是讓系統在模型仍然不穩定的前提下,維持某種可控性。
哪些團隊會很有感,哪些其實先不用急
這類框架的判斷標準,不是星星多不多,而是你的問題是不是已經從「做出來」進展到「做穩它」。不過如果要快速看這個專案在開發者社群裡的升溫速度,星星曲線確實是一個很好用的輔助指標。
Pydantic AI 為什麼突然變多人在看?
下圖是 pydantic/pydantic-ai 的 GitHub star growth。這種圖不能直接等於產品價值,更不能替代實際 adoption、issue quality、release cadence 或文件成熟度;但它很適合拿來看一件事:這個專案是不是正在快速進入更多工程團隊的視野。
如果把這張圖跟 Pydantic 既有品牌、Python 生態位置,以及最近一波「把 agent 從 demo 拉回 production」的需求一起看,Pydantic AI 的討論度上升其實不意外。它吃到的不只是 agent 熱潮,而是一群本來就不喜歡把關鍵流程寫成 prompt spaghetti 的 Python 工程師,開始想要一套更像正式軟體開發的做法。
適合的團隊
- 已經有 Python 主力團隊,熟悉 Pydantic、FastAPI、typing、生產環境治理
- Agent 不只是聊天,而是要接資料源、接 tool、回結構化結果
- 需要清楚的 output contract,不能容忍每次 schema 都飄
- 想做可測試、可觀測、可審批的人機協作流程
- 未來可能換模型供應商,但不想把核心 agent 邏輯重寫一次
其實先不用急的團隊
- 還在找 PMF,只想先驗證某個 AI 功能會不會有人用
- 團隊主要不是 Python 生態,硬上會增加學習與整合成本
- 使用情境非常單純,只是單輪問答或簡單摘要
- 內部其實沒有測試、治理、觀測文化,卻期待框架自動補齊這些能力
比較務實的說法是:Pydantic AI 比較像「系統長大後需要的骨架」,不是靈感剛冒出來時最輕巧的紙飛機。
三個值得看的場景
場景一:客服或內部助理,需要穩定輸出而不是漂亮胡說
假設在做客服分流、內部 IT 支援、或 HR 助理。這種場景通常不只要一句回答,而是要把結果送往下一個系統,例如:分類、風險等級、是否需要人工介入、該觸發哪一種 workflow。
Pydantic AI 在這裡的價值,不是讓模型「講話更像人」,而是讓最後產出的資料結構更可信。用 output_type 去約束輸出,驗證失敗就反射重試,這比把模型輸出當字串再自己 parse,一開始就少很多 maintenance 債。
場景二:企業工作流有工具調用,但權限邊界不能糊掉
很多 Agent 一旦開始接工具,就會踩到真實世界的邊界:查資料還好,真的去改 CRM、發退款、關閉帳號、建立採購單,就不能再是「模型覺得可以就可以」。
Pydantic AI 文件裡把 human-in-the-loop approval、deferred tools、durable execution 做成正式能力,這件事的意義很大。因為企業真正要的不是 Agent 自由奔跑,而是Agent 可以跑,但重要動作要經過制度化節點。這種流程如果一開始就沒有框架支持,之後通常只會變成一堆 if/else 補丁。
場景三:抽取、轉換、驗證型 pipeline,需要把 LLM 當一個不穩定但可控的元件
另一種很適合的場景,是文件抽取、研究整理、表單理解、內容審核輔助。這類任務的特徵是:LLM 很有用,但又不能完全信它。
Pydantic AI 的 typed output、tool schema、測試模型與 evals,在這裡很實際。因為你通常不是追求一段「很像人寫的話」,而是希望系統能把非結構化輸入,整理成可以被 downstream 程式安全接住的物件。這種情境比起純聊天,更能感受到框架設計的價值。
它的底層結構,大致是怎麼運作的
如果把 Pydantic AI 的核心運作抽象化,大概可以畫成下面這樣:
flowchart LR
A[User prompt] --> B[Agent]
B --> C[Instructions]
B --> D[Dependencies]
B --> E[Model]
E --> F{Need tools?}
F -- Yes --> G[Validated tool call]
G --> H[Tool result]
H --> E
F -- No --> I[Structured output validation]
E --> I
I --> J[Typed result]
這張圖背後代表的是一種設計哲學:
- Agent 不是 prompt 字串,而是一個有結構的容器
- 模型可以是可替換的執行端,不是整個應用的唯一中心
- tool call 與 output 都要過 schema / validation
- 執行期需要的環境資料,透過 dependency injection 明確傳入
這種設計最大的好處,是把「模型到底做了什麼」從一團隱性的魔法,往可解釋的執行流程靠近。
尤其對 Python 團隊來說,deps_type 與 output_type 很有感。因為它不是只在 runtime 補救,而是把一部分錯誤往編輯器、自動完成、靜態檢查階段前移。這不會讓 LLM 變 deterministic,但會讓 surrounding code 比較少靠猜。
它真正值錢的地方,不只是型別安全
如果只把 Pydantic AI 理解成「LLM + Pydantic」,其實低估了它。真正有意思的是,它把很多 production 需要的東西放在同一套語言裡談:
1. 模型可替換,但介面不必跟著崩
官方文件很強調 model-agnostic。這個價值不是方便大家每週追新模型,而是當供應商價格、延遲、配額、法務條件改變時,你的 agent 程式不需要整片拆掉。
2. 觀測與測試不再是外掛思維
很多 LLM 專案一開始只管會不會跑,等上線後才發現根本看不懂 trace。Pydantic AI 把 Logfire、OTel、evals、測試模型這些能力一起放進來,代表它一開始就假設你遲早會需要 debug、benchmark、監控成本與品質。
3. graph 與 durable execution 是在承認現實世界的 workflow 很醜
Agent demo 都喜歡看起來很順,但真實工作流通常很碎:等待人工批准、API timeout、重試、長任務中斷、狀態恢復、分支決策。Pydantic AI 提供 graph 與 durable execution,不是為了炫技,而是在承認 production workflow 本來就不是一條線。
但它的限制也很明確,甚至有些團隊會被它反咬
這部分反而最值得先講,不然很容易把它看成銀彈。
1. 它首先是一個 Python 生態的解法
如果主系統不是 Python,或團隊對 typing / Pydantic / async tooling 不熟,導入成本會比 README 看起來高。這不是框架的錯,但它確實決定了適用面。
2. 型別安全不等於產品可靠
Pydantic model 可以保證欄位長得對,不能保證內容判斷就一定對。模型仍然可能用很工整的 JSON,包裝一個很錯的推論。也就是說,它解的是資料介面可靠性,不是認知品質保證。
3. 抽象越完整,學習曲線與心智負擔也越高
對簡單任務來說,直接 call provider SDK 加幾個 helper 也許就夠了。Pydantic AI 的 agent、deps、toolsets、graph、durable execution、observability 全部上來之後,會帶來框架理解成本。不是每個題目都值得一開始就扛這套重量。
4. 你還是得面對模型與供應商的現實限制
就算框架很整齊,底層模型仍會有 rate limit、schema 支援差異、tool calling 差異、輸出長度限制與成本問題。Pydantic AI 能幫你包裝這些差異,但不會讓差異消失。
5. 官方生態整合很強,也意味著你要小心不要被幸福綁架
例如 Logfire 整合做得順,對很多團隊是好事;但如果本來就有既有 observability stack,還是要確認是否真的符合現場。否則很容易變成框架體驗很好,組織整體技術版圖卻更分裂。
如果不用 Pydantic AI,還有哪些路線?
1. 直接用 provider SDK 自己組
最自由,也最容易在半年後長成難以維護的腳手架。適合很早期、很小型的驗證。
2. LangGraph / LangChain 系列
優點是生態成熟、組件多、社群大;缺點是抽象層多、變化快,有時候會讓人覺得框架本身比業務需求還忙。
3. OpenAI Agents SDK / AutoGen 類方案
如果主要壓在特定供應商或特定 multi-agent 協作模式,這些方案可能更直覺;但在供應商中立、typed engineering experience 這條路上,Pydantic AI 的風格很不一樣。
4. 自己維持「薄框架」
對有能力的團隊,最穩的做法有時不是選最大框架,而是維持一層內部 abstraction:自己定 schema、trace、tool registry、retry policy。只是這條路的前提,是團隊真的願意長期維護,而不是今天寫爽、明天忘光。
結論:這不是最炫的 Agent 專案,但很可能是比較像工程團隊會留下來用的那一種
比較務實的結論是:Pydantic AI 的價值,不在於它讓 Agent 看起來更厲害,而在於它讓 Agent 比較像一個能被團隊接手、測試、觀測、替換與治理的系統。
這對已經走到 production 門口的 Python 團隊,很有吸引力。因為真正昂貴的從來不是寫出第一個 demo,而是把第三十個 workflow、第五種模型供應商、第一百次 schema 變更,還能繼續維持秩序。
但如果題目還很早、流程還很短、團隊還沒被 reliability 打過臉,那它也可能過重。這不是缺點,而是邊界。好的框架不是拿來包全部問題,而是要在對的階段解對的痛。
所以更好的問題不是「Pydantic AI 強不強」,而是:你的 Agent,現在只是要會動,還是已經輪到它該像系統一樣活下去。
來源
- GitHub:pydantic/pydantic-ai
https://github.com/pydantic/pydantic-ai - README
https://raw.githubusercontent.com/pydantic/pydantic-ai/main/README.md - Docs:Overview / Agent / Tools / Models
https://ai.pydantic.dev/
https://ai.pydantic.dev/agent/
https://ai.pydantic.dev/tools/
https://ai.pydantic.dev/models/overview/ - GitHub API repo metadata(檢查近期 push 時間)
https://api.github.com/repos/pydantic/pydantic-ai