Skip to main content

インストール

対応バージョン:pydantic-ai-slim 2.0〜3.0。バージョン 2.0 で Agent(instrument=...) が削除され、このアダプターが依拠するケイパビリティプロトコルが導入されたため、1.x はこの方法では計測できません。

計測の設定

instrument()Agent を構築する前に実行する必要があります。ケイパビリティは構築時に付与されるため、それより前に作成されたエージェントにはケイパビリティが存在せず、何も記録されません。エラーも発生しないため原因が分かりにくいですが、このアダプターで空のトレースになる最も多い原因はこれです。
モジュールスコープのエージェントはこの問題が起きやすい典型例です:
正しく設定されたか確認するには:
Pydantic AI は渡したリストを単一の root_capability にマージするため、agent.capabilities 属性は存在しません。 計測中に構築されたエージェントはケイパビリティを保持するため、uninstrument() して再計測してもエージェントを再構築する必要はありません。

記録される内容

このアダプターにはフックペアやヒューマン・イン・ザ・ループのペアはありません。Pydantic AI にはブラケット対象となるノードやステップの境界がなく、組み込みの人間による一時停止機能もないため、対応するものが存在しません。いずれかを実装する場合は、イベントを自分で発行してください — カスタムエージェントを参照。 output_type はトレースに影響しません。型付き実行と文字列実行では同じイベントが生成されます。

使用例

トレースでは、restock_eta はエラーを持つ tool_result として表示され、その後にエージェントが回避策を取る別のモデル呼び出しが続き、実行は最終的に success で終了します。両方の事実が保存されます。

エラー、リトライ、制御フロー

Pydantic AI は 3 種類の例外を発生させますが、アダプターはそれらを区別します: ModelRetry を意図的に最初のグループに含めているのは、それが「試行が実際に失敗し、モデルに再試行が要求された」ことを意味するためです。これはまさにツールスパンのエラーフィールドが想定する内容です。制御フローとして分類してしまうと、実際のツール失敗が成功した実行の陰に隠れてしまいます。

スパンに名前を付ける

Pydantic AI 独自の実行スパンは agent という名前です。任意のラベルを付けるには呼び出しをラップします:
フレームワークのスパンは inventory の配下にネストされ、モデルとツールのイベントはそこに紐付けられます。 agent_id は低カーディナリティに保ってください。すべてのダッシュボード画面での主要なファセットとして使用されるため、UUID や実行ごとの文字列ではなくロール名を使用してください。

セッションの制御

以下の順序で解決され、最初に一致したものが使用されます:
  1. instrument("pydantic_ai", session_id=...)
  2. 囲む failproofai_sdk.session() スコープ
  3. 実行の conversation_id、次に run_id
  4. 生成された uuid4().hex

オプション

よくある問題

instrument() が実行される前に Agent が構築されています。上記の警告を確認し、agent.root_capability.capabilities をチェックしてください。
裸の raise はそのまま伝播します。これは Pydantic AI の設計によるものです。モデルに回避させるには、対処できるメッセージと共に ModelRetry を raise してください。失敗はどちらの場合でも記録されます。
その子スパンは Pydantic AI 独自の実行スパンであり、モデルとツールのイベントはそこに紐付けられます。カスタム名を犠牲にして単一スパンにしたい場合は、自分のスコープを省略してください。
Pydantic AI の非同期グラフスタックはペイロードフィールドの上限より長く、トレースバックの最後の行は例外そのものです。このフィールドは末尾ではなく先頭から切り詰められるため、必要な行は残ります。

次のステップ

仕組みを理解する

ペア、ID、セッションのライフサイクル、デリバリーについて。

トレースを読む

取得したセッションを通じて因果関係を追跡します。

他のフレームワーク

LangGraph、CrewAI、LlamaIndex、カスタムエージェント。