Python版Agnoアプリケーションを、Pydantic AIに移行します。必要に応じてPydantic AI Harness(Pydantic AIの実行環境統合ツール)も使用します。 次のような場合に使用: - ソースコードが`agno`をインポートしている - Agnoエージェント(自動で判断・行動するAI)、チーム機能、ワークフロー(作業の流れ)、セッション(やり取りの記録)、メモリ(過去の学習)、知識ベース、ツール、フック(処理の割り込み)、ガードレール(安全上の制限)、承認機能、スキル(特定の能力)、ストリーミング(リアルタイム通信)、またはAgentOS(Agnoの基盤環境)に依存している
Migrate Python Agno applications to Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports `agno` or relies on Agno agents, teams, workflows, sessions, memory, knowledge, tools, hooks, guardrails, approvals, skills, streaming, or AgentOS.
Agno のオブジェクトモデルではなく、外部から見える動作を保持します。最小限の完全な呼び出しパスを移行し、アプリケーション基盤はそのまま保ちます。
リポジトリの説明、依存関係、テスト、実行時エントリーポイントを読みます。インストール済みの Agno、Pydantic AI、Harness のバージョンを記録します。
実際のリクエストを Agent.run() / arun()、Team.run() / arun()、Workflow、または AgentOS エンドポイントから、指示、モデル呼び出し、ツール呼び出し、フック、セッション読み込み、メモリまたはナレッジ取得、イベント、結果、状態、副作用を通じて最後まで追跡します。焦点を絞ったベースラインテストまたは特性テストを確立します。
以下のソース契約(仕様)を分離します:
観察された各契約、その所有者、意味的な違い、実行可能な証拠を記録します。未使用の Agno 機能は移行スコープに含まれません。
「Research and concept mapping」で検出された機能を読みます。実装前に「Verification and cutover」を読みます。
Core(コア): エージェントループ、型付き依存関係、ツール、出力、正規化されたメッセージ、汎用フック、ストリーミング、MCP クライアント、承認、使用量制限、計測、リアルタイム、耐久性のあるランタイム連携には pydantic_ai.Agent を使用します。
Graph(グラフ): 明示的な型付きノード、分岐、結合が有用な場合のみ pydantic_graph を使用します。単純で固定的な制御フローは通常の非同期 Python を使用します。
Harness(ハーネス): メモリノート、計画、モデル指向の部分エージェント、エージェントスキル、コーディングツール、ガードレール(制限事項)、モデル非依存の圧縮、ステップの永続性など、観察された再利用可能なポリシーがある場合のみ pydantic-ai-harness を追加します。Harness の機能はコアエージェントループを通じて構成されます。Harness は第二のランタイムではありません。
Evals(評価): 観察されたデータセットと評価器がある場合、別の pydantic-evals パッケージを追加します。
Application(アプリケーション): 認証、データベース、ベクトル検索、キュー、AgentOS/API ルート、ストレージスキーマ、デプロイメント、プロダクト状態、UI 転送は保持します(要求されたスライスに含まれていない限り)。
Gap(ギャップ): サポートされている公開インターフェイスで保持できない動作に名前を付け、その影響を説明し、限定的なアダプタをテストします。Agno のレジストリ、データベース抽象化、イベント分類法、AgentOS を単なる違いを隠すために再構築しないでください。
通常の移行は、再利用可能な Agent 1 つ、アプリケーションサービスが型付き依存関係を通じて提供される構成です。型付きツールと出力、シリアル化された result.all_messages() をアプリケーション保有のストレージに保存して後続のターンで使用します。既存の HTTP、ジョブ、UI 境界を小さなアダプタとその現在のフィールド名で保持します。
Agno の dependencies、user_id、session_id、認証済みアイデンティティは、信頼できるランタイムコンテキストであり、モデル引数ではありません。型付き依存関係に配置し、ストレージまたは副作用の認可はアプリケーションコードで行います。
Agno セッションは異なる所有者を組み合わせています。チャット履歴をシリアル化された Pydantic AI メッセージにマップします。変更可能なプロダクト/セッション状態はアプリケーションストアに保ちます。要約、ユーザーメモリ、ナレッジ取得、ワークフローチェックポイント、Harness Memory は別の契約として扱います。レコード変換、リードスルーアダプタ、または新規開始を選択してテストします。
Team の実際の委譲モードと呼び出し側に見えるメンバーイベントを検査します。Harness SubAgents はモデル指向で隔離されたタスク委譲の場合のみ使用します。ルーティング、ブロードキャスト、決定論的な展開、共有コンテキスト協業、集約、再試行はアプリケーションまたはグラフコードに保ちます(パリティが証明されていない限り)。
Agno Workflow のステップ、条件、ルーター、ループ、並列結合を決定論的に保ちます。エージェントプロンプトに移動しないでください。グラフ状態だけは永続化されたチェックポイントではありません。
Agno の確認、ユーザー入力、外部実行のための一時停止はペイロード(データ形式)と所有者が異なります。コアの遅延ツールはペンディング中のモデルツール呼び出しを保持できます。アプリケーションは引き続きアイデンティティ、認可、UI、監査、永続性、関連付け、べき等性(同じ操作の繰り返しが安全)を所有します。ソース一時停止がもう 1 つ存在する場合、再開時を証明します。
前処理/後処理フック、ツールフック、ガードレールを発火ポイント、変更、短絡動作、順序、再試行、ストリーミング可視性、永続性でマップします。フック名が似ていても、ライフサイクルのパリティは証明されません。
ストリーミングのコンシューマー意図をマップします。Pydantic AI 出力ストリーミング、実行イベントストリーミング、機能イベント、UI アダプタ、グラフ反復は異なるサーフェスです。いずれも Agno の実行イベント分類法またはレジュームカーソルを保証しません。
Agno Skills は指示、参照、スクリプトを公開できます。Harness Skills はオンデマンドで SKILL.md 指示を読み込みますが、バンドルされたリソースは読み込まず、スクリプトを実行しません。観察された信頼できる動作に対してのみ、明示的な FileSystem、Shell、またはアプリケーションツールを追加してください。
AgentOS ルート、認証、セッション API、テレメトリ、制御プレーン、データベース選択、デプロイメントはプロダクト基盤です。エージェントポートを AgentOS ポートとして扱うのではなく、各々を意図的に保持または置き換えてください。
ツール許可リスト、パスチェック、ガードレールはポリシーであり、OS 隔離ではありません。信頼できない実行がスコープ内にある場合、コンテナ、VM、クラウドサンドボックスを使用します。
サポートされている呼び出し側境界を保持し、エージェント所有の内部だけを置き換えます。
コアのみから始めます。pydantic_graph、Harness、Evals、または耐久性のあるランタイムはソース契約が必要になった後でのみ追加します。
その境界で入力、型付き出力、エラー、イベント順序、ツール引数/結果、フック判定、ターン間の状態、副作用をテストします。決定論的モデルと偽のアプリケーションサービスをオフラインで使用します。プロバイダーの動作が契約である場合のみ、焦点を絞った記録済みまたはライブテストを追加します。
永続性、一時停止、並行ワークフロー、外部副作用の場合、Agno が約束した正確な境界で中断と再開、系統、認可、障害集約、べき等性をテストします。
保持されたパスがどれも必要としない場合のみ、agno、AgentOS セットアップ、Agno ストレージまたはイベントアダプタを削除します。
実装する前に、重大な意味的変更について説明します:ソース動作、対象動作、呼び出し側への影響、推奨される選択肢、残存リスクを述べてください。
「Verification and cutover」の完了基準を適用します。偽物、記録、ライブプロバイダー、運用テストからの証拠に正確にラベルを付けます。
Preserve observable behavior, not Agno's object model. Migrate the smallest complete caller path and keep application infrastructure in place.
Agent.run() / arun(), Team.run() / arun(), a Workflow, or an AgentOS endpoint through instructions, model and tool calls, hooks, session loading, memory or knowledge retrieval, events, results, state, and side effects. Establish a focused baseline or characterization test.Read Research and concept mapping for the detected features. Read Verification and cutover before implementation.
pydantic_ai.Agent for the agent loop, typed dependencies, tools, outputs, normalized messages, generic hooks, streaming, MCP clients, approvals, usage limits, instrumentation, realtime, and durable-runtime integrations.pydantic_graph only when explicit typed nodes, branches, and joins remain useful; use plain async Python for simple fixed control flow.pydantic-ai-harness only for observed reusable policy such as memory notebooks, planning, model-directed subagents, Agent Skills, coding tools, guardrails, model-agnostic compaction, or step persistence. Harness capabilities compose through the core agent loop; Harness is not a second runtime.pydantic-evals package for observed datasets and evaluators.The normal migration is one reusable Agent, application services supplied through typed dependencies, typed tools and output, and application-owned storage of serialized result.all_messages() for later turns. Preserve an existing HTTP, job, or UI boundary with a small adapter and its current field names.
dependencies, user_id, session_id, and authenticated identity are trusted runtime context, not model arguments. Put them in typed dependencies and authorize storage or effects in application code.Memory as separate contracts. Choose and test record conversion, a read-through adapter, or starting fresh as an accepted change.Team's actual delegation mode and caller-visible member events. Use Harness SubAgents only for model-directed, isolated task delegation. Keep routing, broadcast, deterministic fan-out, shared-context collaboration, aggregation, and retries in application or graph code unless parity is proved.Workflow steps, conditions, routers, loops, and parallel joins deterministic. Do not move them into an agent prompt. Graph state alone is not a persisted checkpoint.Skills loads SKILL.md instructions on demand but does not load bundled resources or execute scripts; add explicit FileSystem, Shell, or application tools only for observed, trusted behavior.pydantic_graph, Harness, Evals, or a durable runtime only after a source contract requires it.agno, AgentOS setup, and Agno storage or event adapters only after no retained path needs them.Explain any consequential semantic change before implementing it: state the source behavior, target behavior, caller impact, recommended choice, and remaining risk.
Apply the completion criterion in Verification and cutover. Label evidence from fakes, recordings, live providers, and operational tests accurately.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。