migrating-google-adk-to-pydantic-ai について
Google ADK アプリケーションを、呼び出し側から見える動作を保ちながら Pydantic AI に移行するためのスキルです。実際のリクエスト経路の追跡、小さな単位での移行、意味上の差異の検証を案内します。
主な機能
- 01リクエスト経路と契約の追跡
- 02ADK と Pydantic AI の概念対応
- 03状態とワークフローの差異特定
- 04切り替え前の動作検証
活用シーン
- 01ADK エージェントの Pydantic AI 移行
- 02セッションとワークフロー移行リスクの評価
- 03ツール、イベント、状態の動作検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pydantic/ skills --skill migrating-google-adk-to-pydantic-aiインストール後、Claude Code で/migrating-google-adk-to-pydantic-aiを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/CONCEPT-MAPPING.mdSEMANTIC-GAPS.mdVERIFICATION-AND-CUTOVER.md詳細
Google ADK から Pydantic AI への移行
ADK のクラスツリーではなく、呼び出し元から見える動作を維持してください。完全なリクエスト経路のうち、最小の範囲を移行し、プロダクトのインフラストラクチャはアプリケーション側に残してください。
実行中のアプリケーションを起点に作業する
- リポジトリの指示、依存関係、テスト、実行時のエントリーポイントを確認します。インストール済みの Google ADK、Pydantic AI、オプションの
pydantic-ai-harnessのバージョンを記録します。 Runner.run_async()またはデプロイ済みエンドポイントから、ルートエージェント、指示、コラボレーションモード、モデル呼び出し、ツール、ワークフローノード、コールバック/プラグイン、セッションサービス、出力イベント、状態/アーティファクトの差分、最終レスポンスまで、実際のリクエストを1つ追跡します。その経路で使用する動作のみを記録します。- 移行先を選ぶ前に、以下の契約を切り分けます。
- モデルコンテキストとして使用される
Session.events - セッション、ユーザー、アプリケーション、呼び出しの各スコープの状態
- 検索可能な長期メモリ
- ワークフロー/ノードのチェックポイントと再開 ID
- バージョン管理されたアーティファクトと外部副作用
- モデルコンテキストとして使用される
- 対象のスライスを分類します。
- 通常の
LlmAgent: 通常は、型付き依存関係、ツール、出力を持つ再利用可能なAgentを1つ使用します。 - ADK のグラフまたは動的ワークフロー: 単純で決定的な制御フローは通常の非同期 Python に残します。明示的な型付きノード、分岐、またはグラフの検査が引き続き有用な場合は、
pydantic_graphを使用します。 - マルチエージェントへの委譲: Python 2.x では ADK のコラボレーション
modeを確認します。1.x のsub_agentsはchat動作を使用します。chatの引き継ぎセマンティクスには、コアのマルチエージェントパターンを使用します。Harness のSubAgentsは、分離されたコンテキスト、戻り値、対話、並行処理の動作が一致する場合に限り、taskまたはsingle_turnに適合する可能性があります。 - プロダクトのランタイム: 明示的に対象範囲に含まれない限り、認証、セッション/状態ストア、アーティファクトストア、キュー、トランスポート、A2A エンドポイント、評価、可観測性、デプロイはそのまま維持します。
- 通常の
- 決定的な動作特性テストを追加し、既存の呼び出し元との境界の内側で、垂直スライスを1つ移行します。
- 元のテストと対象を絞った同等性テストを実行します。検証していない動作には
unverifiedと記載します。同じような名前であることは、同等性の根拠にはなりません。
対象スライスで使用する機能については、概念の対応関係を確認してください。ワークフロー、状態、再開、確認、コールバック/プラグイン、イベントストリーム、スキル、実行環境については、セマンティクスの差異を確認してください。ADK を削除したり、本番トラフィックを変更したりする前に、検証と切り替えを確認してください。
高リスクのゲート
- ADK の
Sessionオブジェクトや可変状態辞書を、モデルが選択するツール引数を介して渡さないでください。認証済みの ID とサービスクライアントは型付き依存関係に格納し、製品およびワークフローの状態はアプリケーション所有のストアを通じて永続化してください。 message_historyはモデルのコンテキストを継続します。ADK のセッション状態、メモリ、アーティファクト、イベント記録、ノードのチェックポイント、呼び出しの再開に代わるものではありません。- ADK の再開機能は記録済みのノード/ツールの結果を再生し、ツールを複数回実行する場合があります。耐久実行の設計を明示的に選択し、副作用について再起動と冪等性を検証してください。
- 会話入力、承認、認可を明確に区別してください。ツールの確認は保留中のツール承認に対応付け、ID とアクセスのチェックは信頼されたアプリケーションコード内に保持してください。
- コールバック/プラグインの順序と短絡ルールを意図的に維持してください。Pydantic AI のフックには独自の機能順序と、例外に基づくスキップ/復旧のセマンティクスがあります。見た目が似たフックを並べるだけでは同等性を保てません。
- ADK の部分イベントは状態差分を適用せずに配信され、部分イベントでない各イベントは追加時に差分が適用されます。アーティファクトの書き込みはアーティファクト操作中、現在のイベントに返されたバージョンが記録される前に行われます。呼び出し側が ADK のイベントフィールドや最終イベントの判定を利用する場合は、境界アダプターを維持し、正確なストリームと永続化の順序をテストしてください。
- Harness は、再利用可能な機能が確認された場合にのみ使用してください。通常のエージェントにはコアのみで十分です。また、コマンドの許可リストは OS のセキュリティ境界ではありません。
Pydantic AI のデフォルト
instructionをinstructionsに対応付けてください。信頼された実行時データに依存する場合は、RunContextの instructions 関数を使用してください。- 関数ツールは、型付きの Pydantic AI ツールに対応付けてください。呼び出し側が依存する範囲に限り、ツール名、説明、検証動作、エラー形式、再試行、確認、並行性を維持してください。
- 終端出力の契約が構造化されている場合は、
output_schemaをoutput_typeに対応付けてください。応答形式の変更によって移行範囲が広がる場合は、既存のワイヤーアダプターを維持してください。 ModelMessageの履歴は、ワークフローおよび製品の状態とは分けて永続化してください。新たな永続化サブシステムを追加する前に、アプリケーションの既存のストアを再利用してください。- ローカルなライフサイクルのインターセプトには
Hooksを使用してください。ツール、指示、設定、イベントも管理する再利用可能なポリシーには、カスタム機能を使用してください。 - 変更が依頼されていない限り、アクティブなモデル/プロバイダーを維持してください。プロバイダーのプレフィックスが付いた Pydantic AI のモデル ID を使用し、インストール済みの API に照らして、プロバイダー固有のツール、設定、ストリーミング、リアルタイム動作を検証してください。
完了条件
このスライスが完了となるのは、確認されたすべての呼び出し側の契約が、実行可能な証拠によって preserved と示されるか、明示的に changed として承認されるか、not applicable となった場合に限ります。unverified と blocked の契約は未完了として扱ってください。保持されるランタイム、セッション移行、デプロイコマンド、評価、互換性パスのいずれかが引き続き google-adk をインポートまたは呼び出している間は、google-adk を削除しないでください。
コメント
Markdown 対応