agent_framework パッケージ
モジュール
| exceptions | |
| observability |
クラス
| AIFunction |
PYTHON 関数をラップして AI モデルで呼び出し可能にするツール。 このクラスは、Python 関数をラップして、自動パラメーター検証と JSON スキーマ生成を使用して AI モデルで呼び出し可能にします。 AIFunction を初期化します。 |
| AgentExecutor |
メッセージを処理するためのエージェントをラップする組み込み Executor。 AgentExecutor は、ワークフロー実行モードに基づいて動作を調整します。
executor は、WorkflowContext.is_streaming() を介してモードを自動的に検出します。 一意識別子を使用して Executor を初期化します。 |
| AgentExecutorRequest |
エージェント実行プログラムに対する要求。 |
| AgentExecutorResponse |
エージェント実行プログラムからの応答。 |
| AgentInputRequest |
エージェントが高度なビルダー ワークフローで実行される前に、人間による入力を要求します。 エージェントの実行前にワークフローが一時停止したときに RequestInfoEvent を介して出力されます。 応答は、エージェントの動作を誘導するためにユーザー メッセージとして会話に挿入されます。 これは、SequentialBuilder、ConcurrentBuilder、GroupChatBuilder、HandoffBuilder で .with_request_info() によって使用される標準的な要求の種類です。 |
| AgentMiddleware |
エージェント呼び出しをインターセプトできるエージェント ミドルウェアの抽象基本クラス。 エージェント ミドルウェアを使用すると、実行の前後にエージェント呼び出しをインターセプトして変更できます。 メッセージの検査、コンテキストの変更、結果のオーバーライド、または実行の早期終了を行うことができます。 注 AgentMiddleware は抽象基底クラスです。 サブクラス化して実装する必要があります カスタム エージェント ミドルウェアを作成する process() メソッド。 |
| AgentProtocol |
呼び出すことができるエージェントのプロトコル。 このプロトコルは、ID のプロパティや実行メソッドなど、すべてのエージェントが実装する必要があるインターフェイスを定義します。 注 プロトコルでは、構造サブタイピング (アヒル型指定) が使用されます。 クラスは必要ありません このプロトコルから明示的に継承する場合は互換性と見なされます。 これにより、使用せずに完全にカスタム エージェントを作成できます。 任意の Agent Framework 基底クラス。 |
| AgentRunContext |
エージェント ミドルウェア呼び出しのコンテキスト オブジェクト。 このコンテキストはエージェント ミドルウェア パイプラインを介して渡され、エージェント呼び出しに関するすべての情報が含まれます。 AgentRunContext を初期化します。 |
| AgentRunEvent |
エージェントの実行が完了したときにトリガーされるイベント。 エージェントの実行イベントを初期化します。 |
| AgentRunResponse |
エージェントの実行要求に対する応答を表します。 1 つ以上の応答メッセージと、応答に関するメタデータを提供します。 一般的な応答には 1 つのメッセージが含まれますが、関数呼び出し、RAG 取得、または複雑なロジックを含むシナリオでは複数のメッセージが含まれる場合があります。 AgentRunResponse を初期化します。 |
| AgentRunResponseUpdate |
エージェントからの単一のストリーミング応答チャンクを表します。 AgentRunResponseUpdate を初期化します。 |
| AgentRunUpdateEvent |
エージェントがメッセージをストリーミングしているときにトリガーされるイベント。 エージェント ストリーミング イベントを初期化します。 |
| AgentThread |
エージェント スレッド クラス。これは、ローカルで管理されるスレッドまたはサービスによって管理されるスレッドの両方を表すことができます。
AgentThread を初期化します。このメソッドは手動で使用しないでください。常に次を使用します: 注 service_thread_idまたはmessage_storeを設定できますが、両方を設定することはできません。 |
| AggregateContextProvider |
複数のコンテキスト プロバイダーを含む ContextProvider。 イベントは複数のコンテキスト プロバイダーに委任され、返される前にそれらのイベントからの応答が集計されます。 これにより、複数のコンテキスト プロバイダーを 1 つのプロバイダーに結合できます。 注 1 つのコンテキストを渡すと、AggregateContextProvider が自動的に作成されます プロバイダーまたはエージェント コンストラクターへのコンテキスト プロバイダーのシーケンス。 コンテキスト プロバイダーを使用して AggregateContextProvider を初期化します。 |
| BaseAgent |
すべての Agent Framework エージェントの基本クラス。 このクラスは、コンテキスト プロバイダー、ミドルウェアのサポート、スレッド管理など、エージェント実装のコア機能を提供します。 注 BaseAgent は、〘〘を実装していないため、直接インスタンス化することはできません。 run()、run_stream()、および AgentProtocol に必要なその他のメソッド。 ChatAgent などの具象実装を使用するか、サブクラスを作成します。 BaseAgent インスタンスを初期化します。 |
| BaseAnnotation |
すべての AI 注釈型の基本クラス。 BaseAnnotation を初期化します。 |
| BaseChatClient |
チャット クライアントの基本クラス。 この抽象基本クラスは、ミドルウェアのサポート、メッセージの準備、ツールの正規化など、チャット クライアント実装のコア機能を提供します。 注 BaseChatClient は抽象基底クラスであるため、直接インスタンス化することはできません。 サブクラスは、_inner_get_response() と _inner_get_streaming_response() を実装する必要があります。 BaseChatClient インスタンスを初期化します。 |
| BaseContent |
AI サービスで使用されるコンテンツを表します。 BaseContent を初期化します。 |
| Case |
スイッチ ケース述語とそのターゲットを組み合わせたランタイム ラッパー。 各 ケース は、述語が True に評価されたときにメッセージを処理する必要がある Executor とブール述語を結合します。 ランタイムは、この軽量コンテナーをシリアル化可能な SwitchCaseEdgeGroupCase とは別に保持するため、永続化された状態を汚染することなく、ライブ呼び出し可能な呼び出し可能な状態で実行を実行できます。 |
| ChatAgent |
チャット クライアント エージェント。 これは、チャット クライアントを使用して言語モデルと対話する主要なエージェント実装です。 ツール、コンテキスト プロバイダー、ミドルウェア、およびストリーミング応答と非ストリーミング応答の両方がサポートされています。 ChatAgent インスタンスを初期化します。 注 frequency_penaltyからrequest_kwargsまでのパラメーターのセットは、 チャット クライアントを呼び出します。 両方の実行メソッドに渡すこともできます。 両方を設定すると、実行メソッドに渡されたものが優先されます。 |
| ChatClientProtocol |
応答を生成できるチャット クライアントのプロトコル。 このプロトコルは、ストリーミング応答と非ストリーミング応答の両方を生成するためのメソッドを含め、すべてのチャット クライアントが実装する必要があるインターフェイスを定義します。 注 プロトコルでは、構造サブタイピング (アヒル型指定) が使用されます。 クラスは必要ありません このプロトコルから明示的に継承する場合は互換性と見なされます。 |
| ChatContext |
チャット ミドルウェア呼び出しのコンテキスト オブジェクト。 このコンテキストは、チャット ミドルウェア パイプラインを通じて渡され、チャット要求に関するすべての情報が含まれます。 ChatContext を初期化します。 |
| ChatMessage |
チャット メッセージを表します。 ChatMessage を初期化します。 |
| ChatMessageStore |
メッセージをリストに格納する ChatMessageStoreProtocol のメモリ内実装。 この実装では、シリアル化と逆シリアル化をサポートするチャット メッセージ用の単純なリスト ベースのストレージが提供されます。
ストアはメッセージをメモリ内に保持し、永続化のために状態をシリアル化および逆シリアル化するメソッドを提供します。 スレッドで使用する ChatMessageStore を作成します。 |
| ChatMessageStoreProtocol |
特定のスレッドに関連付けられたチャット メッセージを格納および取得するためのメソッドを定義します。 このプロトコルの実装は、必要に応じてメッセージを切り捨てたり要約したりして大量のデータを処理するなど、チャット メッセージのストレージを管理する役割を担います。 |
| ChatMiddleware |
チャット クライアント要求をインターセプトできるチャット ミドルウェアの抽象基本クラス。 チャット ミドルウェアを使用すると、実行の前後にチャット クライアント要求をインターセプトして変更できます。 メッセージの変更、システム プロンプトの追加、要求のログ記録、チャット応答のオーバーライドを行うことができます。 注 ChatMiddleware は抽象基本クラスです。 サブクラス化して実装する必要があります カスタム チャット ミドルウェアを作成する process() メソッド。 |
| ChatOptions |
AI サービスの一般的な要求設定。 ChatOptions を初期化します。 |
| ChatResponse |
チャット要求への応答を表します。 指定されたパラメーターを使用して ChatResponse を初期化します。 |
| ChatResponseUpdate |
ChatClient からの単一のストリーミング応答チャンクを表します。 指定されたパラメーターを使用して ChatResponseUpdate を初期化します。 |
| CheckpointStorage |
チェックポイント ストレージ バックエンドのプロトコル。 |
| CitationAnnotation |
引用文献の注釈を表します。 CitationAnnotation を初期化します。 |
| ConcurrentBuilder |
同時実行エージェント ワークフローの概要ビルダー。
使用:
|
| Context |
ContextProvider によって提供される AI モデルに提供する必要があるコンテキストを含むクラス。 各 ContextProvider には、呼び出しごとに独自のコンテキストを提供する機能があります。 Context クラスには、ContextProvider によって提供される追加のコンテキストが含まれています。 このコンテキストは、AI モデルに渡される前に、他のプロバイダーによって提供されるコンテキストと組み合わされます。 このコンテキストは呼び出しごとであり、チャット履歴の一部として格納されません。 新しい Context オブジェクトを作成します。 |
| ContextProvider |
すべてのコンテキスト プロバイダーの基本クラス。 コンテキスト プロバイダーは、AI のコンテキスト管理を強化するために使用できるコンポーネントです。 会話の変更をリッスンし、呼び出しの直前に AI モデルに追加のコンテキストを提供できます。 注 ContextProvider は抽象基底クラスです。 サブクラス化して実装する必要があります カスタム コンテキスト プロバイダーを作成する呼び出し元 () メソッド。 理想的には、次の手順を行う必要があります。 また、会話を追跡するために invoked() メソッドと thread_created() メソッドを実装します 状態ですが、これらは省略可能です。 |
| DataContent |
関連付けられたメディアの種類 (MIME の種類とも呼ばれます) を持つバイナリ データ コンテンツを表します。 Important これは、オンライン リソースではなく、データ URI として表されるバイナリ データ用です。 オンライン リソースには UriContent を使用します。 DataContent インスタンスを初期化します。 Important これは、オンライン リソースではなく、データ URI として表されるバイナリ データ用です。 オンライン リソースには UriContent を使用します。 |
| Default |
スイッチ ケース グループ内の既定のブランチのランタイム表現。 既定の分岐は、他のケース述語が一致しない場合にのみ呼び出されます。 実際には、ルーティングによって空のターゲットが生成されないように、存在することが保証されます。 |
| Edge |
2 つの Executor の間で、必要に応じて条件付きのダイレクト ハンドオフをモデル化します。 各 エッジ は、ワークフロー グラフ内の 1 つの Executor から別の Executor にメッセージを移動するために必要な最小限のメタデータをキャプチャします。 必要に応じて、実行時にエッジを取得するかどうかを決定するブール述語を埋め込みます。 エッジをプリミティブまでシリアル化することで、元の Python プロセスに関係なくワークフローのトポロジを再構築できます。 2 つのワークフロー 実行プログラムの間で、完全に指定されたエッジを初期化します。 |
| EdgeDuplicationError |
ワークフローで重複するエッジが検出されると、例外が発生します。 |
| ErrorContent |
エラーを表します。 備考: 通常、操作の一部として問題が発生したが、操作を続行できた致命的でないエラーに使用されます。 ErrorContent インスタンスを初期化します。 |
| Executor |
メッセージを処理し、計算を実行するすべてのワークフロー 実行プログラムの基本クラス。 概要Executor はワークフローの基本的な構成要素であり、メッセージの受信、操作の実行、出力の生成を行う個々の処理ユニットを表します。 各 Executor は一意に識別され、装飾されたハンドラー メソッドを使用して特定のメッセージの種類を処理できます。 型システムExecutor には、その機能を定義する豊富な型システムがあります。 入力の種類Executor が処理できるメッセージの種類。ハンドラー メソッドシグネチャから検出されます。
input_types プロパティを使用したアクセス。 出力の種類executor が ctx.send_message()を介して他の Executor に送信できるメッセージの種類:
output_types プロパティを使用したアクセス。 ワークフロー出力の種類executor が ctx.yield_output()を介してワークフロー レベルの出力として出力できるデータの種類。
workflow_output_types プロパティを使用したアクセス。 ハンドラーの検出Executor は、装飾されたメソッドを使用して機能を検出します。 @handler デコレータ受信メッセージを処理するメソッドをマークします。
サブワークフロー要求のインターセプト@handlerメソッドを使用して、サブワークフロー要求をインターセプトします。
コンテキスト型ハンドラー メソッドは、型の注釈に基づいて異なる WorkflowContext バリアントを受け取ります。 WorkflowContext (型パラメーターなし)メッセージを送信したり出力を生成したりせずに副作用のみを実行するハンドラーの場合:
WorkflowContext[T_Out]ctx.send_message()を介してT_Out型のメッセージを送信できるようにします。
WorkflowContext[T_Out, T_W_Out]メッセージの送信 (T_Out) とワークフロー出力の生成 (T_W_Out) の両方を有効にします。
Function Executors単純関数は、 @executor デコレーターを使用して Executor に変換できます。
サブワークフローコンポジションExecutor には、WorkflowExecutor を使用してサブワークフローを含めることができます。 サブワークフローは、親ワークフローがインターセプトできる要求を行うことができます。 ワークフロー構成パターンと要求/応答処理の詳細については、WorkflowExecutor のドキュメントを参照してください。 状態管理Executor には、ワークフローの実行とチェックポイント間で保持される状態を含めることができます。 on_checkpoint_saveメソッドとon_checkpoint_restore メソッドをオーバーライドして、カスタム状態のシリアル化と復元ロジックを実装します。 実装に関する注意事項
一意識別子を使用して Executor を初期化します。 |
| ExecutorCompletedEvent |
Executor ハンドラーが完了したときにトリガーされるイベント。 Executor ID と省略可能なデータを使用して、Executor イベントを初期化します。 |
| ExecutorEvent |
Executor イベントの基本クラス。 Executor ID と省略可能なデータを使用して、Executor イベントを初期化します。 |
| ExecutorFailedEvent |
Executor ハンドラーでエラーが発生したときにトリガーされるイベント。 |
| ExecutorInvokedEvent |
Executor ハンドラーが呼び出されたときにトリガーされるイベント。 Executor ID と省略可能なデータを使用して、Executor イベントを初期化します。 |
| FanInEdgeGroup |
単一のダウンストリーム Executor を供給するエッジの収束セットを表します。 通常、ファンイン グループは、複数のアップストリーム ステージが独立して同じダウンストリーム プロセッサに到着するメッセージを生成する場合に使用されます。 複数のソースを 1 つのターゲットにマージするファンイン マッピングを構築します。 |
| FanOutEdgeGroup |
オプションの選択ロジックを使用して、ブロードキャスト スタイルのエッジ グループを表します。 ファンアウトにより、1 つのソース Executor によって生成されたメッセージが、1 つ以上のダウンストリーム Executor に転送されます。 実行時に、ペイロードを検査し、メッセージを受信する ID のサブセットを返す selection_func を実行することで、ターゲットをさらに絞り込む場合があります。 1 つのソースから多数のターゲットへのファンアウト マッピングを作成します。 |
| FileCheckpointStorage |
永続化のためのファイル ベースのチェックポイント ストレージ。 ファイル ストレージを初期化します。 |
| FinishReason |
チャット応答が完了した理由を表します。 値を使用して FinishReason を初期化します。 |
| FunctionApprovalRequestContent |
関数呼び出しのユーザー承認要求を表します。 FunctionApprovalRequestContent インスタンスを初期化します。 |
| FunctionApprovalResponseContent |
関数呼び出しのユーザー承認の応答を表します。 FunctionApprovalResponseContent インスタンスを初期化します。 |
| FunctionCallContent |
関数呼び出し要求を表します。 FunctionCallContent インスタンスを初期化します。 |
| FunctionExecutor |
ユーザー定義関数をラップする Executor。 この Executor を使用すると、ユーザーは単純な関数 (同期と非同期の両方) を定義し、完全な Executor クラスを作成しなくてもワークフロー 実行プログラムとして使用できます。 同期関数は、イベント ループをブロックしないように、asyncio.to_thread() を使用してスレッド プールで実行されます。 ユーザー定義関数を使用して FunctionExecutor を初期化します。 |
| FunctionInvocationConfiguration |
チャット クライアントでの関数呼び出しの構成。 このクラスは、関数呼び出しをサポートするすべてのチャット クライアントで自動的に作成されます。 つまり、ほとんどの場合、インスタンスの属性を変更するだけで、新しい属性を作成できます。 FunctionInvocationConfiguration を初期化します。 |
| FunctionInvocationContext |
関数ミドルウェア呼び出しのコンテキスト オブジェクト。 このコンテキストは関数ミドルウェア パイプラインを介して渡され、関数呼び出しに関するすべての情報が含まれます。 FunctionInvocationContext を初期化します。 |
| FunctionMiddleware |
関数呼び出しをインターセプトできる関数ミドルウェアの抽象基底クラス。 関数ミドルウェアを使用すると、実行の前後に関数/ツールの呼び出しをインターセプトして変更できます。 引数の検証、結果のキャッシュ、ログの呼び出し、関数の実行のオーバーライドを行うことができます。 注 FunctionMiddleware は抽象基底クラスです。 サブクラス化して実装する必要があります カスタム関数ミドルウェアを作成する process() メソッド。 |
| FunctionResultContent |
関数呼び出しの結果を表します。 FunctionResultContent インスタンスを初期化します。 |
| GraphConnectivityError |
グラフ接続の問題が検出されたときに発生する例外。 |
| GroupChatBuilder |
動的オーケストレーションを使用したマネージャー向けグループ チャット ワークフローの概要ビルダー。 GroupChat は、次に話す参加者を選択するマネージャーを使用して、マルチエージェントの会話を調整します。 マネージャーは、単純な Python 関数 (set_select_speakers_func) でも、 set_managerを介したエージェント ベースのセレクターでもかまいません。 これら 2 つのアプローチは相互に排他的です。 コア ワークフロー:
話者の選択パターン: パターン 1: 単純な関数ベースの選択 (推奨)
パターン 2: LLM ベースの選択
パターン 3: 会話中のフィードバックの情報を要求する
参加者の仕様: 参加者を指定する 2 つの方法:
状態スナップショット構造: set_select_speakers_funcに渡される GroupChatStateSnapshot には、次のものが含まれます。
重要な制約:
GroupChatBuilder を初期化します。 |
| GroupChatDirective |
グループ チャット マネージャーの実装によって出力される命令。 |
| HandoffBuilder |
コーディネーターおよびスペシャリストエージェントとの会話ハンドオフワークフローのための Fluent ビルダー。 ハンドオフ パターンを使用すると、コーディネーター エージェントは、スペシャリスト エージェントに要求をルーティングできます。 対話モードでは、各エージェントの応答後にワークフローがユーザー入力を要求するか、エージェントの応答が完了したら自律的に完了するかを制御します。 終了条件は、ワークフローが入力の要求を停止して完了するタイミングを決定します。 ルーティング パターン: Single-Tier (既定値): コーディネーターだけが専門家に引き渡すことができます。 既定では、専門家が応答した後、より多くの入力のために制御がユーザーに返されます。 これにより、ユーザー -> コーディネーター -> [省略可能なスペシャリスト] -> ユーザー -> コーディネーター -> ... という循環フローが作成されます。 with_interaction_mode("autonomous") を使用して、追加のユーザー入力の要求をスキップし、エージェントが委任せずに応答したときに最終的な会話を生成します。 多層 (詳細): スペシャリストは、 .add_handoff()を使用して他の専門家に引き渡すことができます。 これにより、複雑なワークフローの柔軟性が向上しますが、単一層パターンよりも制御が少なくなります。 ユーザーは、スペシャリストからスペシャリストへのハンドオフ中に中間ステップをリアルタイムで可視化できなくなります (ただし、すべてのハンドオフを含む完全な会話履歴は保持され、後で検査できます)。 主な機能
使用法 (Single-Tier):
.add_handoff() を使用した多層ルーティング:
状態の分離に参加要素ファクトリを使用する: カスタム終了条件:
チェックポイント:
会話ハンドオフ ワークフローを作成するために HandoffBuilder を初期化します。 ビルダーは未構成の状態で開始され、次を呼び出す必要があります。
オプションの構成方法を使用すると、コンテキスト管理、終了ロジック、永続化をカスタマイズできます。 注 ワークフローでマップされるため、参加者は安定した名前/ID を持っている必要があります。 これらの識別子に対するハンドオフ ツール引数。 エージェント名が一致する必要がある コーディネーターのハンドオフ ツールによって出力される文字列 (例: 出力 {"handoff_to": "billing"} には、billing という名前のエージェントが必要です)。 |
| HandoffUserInputRequest |
ワークフローに新しいユーザー入力が必要な場合に出力される要求メッセージ。 注: 会話フィールドは、重複を防ぐために、チェックポイントのシリアル化から意図的に除外されます。 会話はコーディネーターの状態で保持され、復元時に再構築されます。 問題 #2667 を参照してください。 |
| HostedCodeInterpreterTool |
生成されたコードを実行できるように AI サービスに指定できるホスト型ツールを表します。 このツールでは、コード解釈自体は実装されません。 これは、サービスが実行できる場合に生成されたコードの実行が許可されていることをサービスに通知するためのマーカーとして機能します。 HostedCodeInterpreterTool を初期化します。 |
| HostedFileContent |
ホストされているファイルの内容を表します。 HostedFileContent インスタンスを初期化します。 |
| HostedFileSearchTool |
AI サービスに指定してファイル検索を実行できるようにするファイル検索ツールを表します。 FileSearchTool を初期化します。 |
| HostedMCPSpecificApproval |
ホストされているツールの特定のモードを表します。 このモードを使用する場合、ユーザーは常に承認を必要としないツールを指定する必要があります。 これは、次の 2 つの省略可能なキーを持つディクショナリとして表されます。 |
| HostedMCPTool |
サービスによって管理および実行される MCP ツールを表します。 ホストされた MCP ツールを作成します。 |
| HostedVectorStoreContent |
ホストされたベクター ストアのコンテンツを表します。 HostedVectorStoreContent インスタンスを初期化します。 |
| HostedWebSearchTool |
AI サービスに指定して Web 検索を実行できるようにする Web 検索ツールを表します。 HostedWebSearchTool を初期化します。 |
| InMemoryCheckpointStorage |
テストと開発のためのメモリ内チェックポイント ストレージ。 メモリ ストレージを初期化します。 |
| InProcRunnerContext |
ローカル実行とオプションのチェックポイント処理のためのインプロセス実行コンテキスト。 インプロセス実行コンテキストを初期化します。 |
| MCPStdioTool |
stdio ベースの MCP サーバーに接続するための MCP ツール。 このクラスは、通常ローカル プロセスに使用される標準の入力/出力を介して通信する MCP サーバーに接続します。 MCP stdio ツールを初期化します。 注 引数は、StdioServerParameters オブジェクトを作成するために使用されます。 これは、stdio クライアントの作成に使用されます。 mcp.client.stdio.stdio_clientを参照してください 詳細については、mcp.client.stdio.stdio_server_parametersを参照してください。 |
| MCPStreamableHTTPTool |
HTTP ベースの MCP サーバーに接続するための MCP ツール。 このクラスは、ストリーミング可能な HTTP/SSE 経由で通信する MCP サーバーに接続します。 MCP ストリーミング可能 HTTP ツールを初期化します。 注 引数は、ストリーミング可能な HTTP クライアントを作成するために使用されます。 詳細については、mcp.client.streamable_http.streamablehttp_client を参照してください。 コンストラクターに渡される追加の引数は、〘〗〘 ストリーム可能な HTTP クライアント コンストラクター。 |
| MCPWebsocketTool |
WebSocket ベースの MCP サーバーに接続するための MCP ツール。 このクラスは、WebSocket 経由で通信する MCP サーバーに接続します。 MCP WebSocket ツールを初期化します。 注 引数は、WebSocket クライアントを作成するために使用されます。 詳細については、mcp.client.websocket.websocket_clientを参照してください。 コンストラクターに渡される追加の引数は、〘〗〘 WebSocket クライアント コンストラクター。 |
| MagenticBuilder |
Magentic One マルチエージェント オーケストレーション ワークフローを作成するための Fluent ビルダー。 Magentic One ワークフローでは、LLM を利用したマネージャーを使用して、動的なタスク計画、進行状況の追跡、アダプティブ再計画を通じて複数のエージェントを調整します。 マネージャーは計画を作成し、エージェントを選択し、進行状況を監視し、計画を再計画または完了するタイミングを決定します。 ビルダーには、参加者、マネージャー、オプションのプラン レビュー、チェックポイント処理、およびイベント コールバックを構成するための fluent API が用意されています。 Human-in-the-loop サポート: Magentic は、次を介して特殊な HITL メカニズムを提供します。
これらは、Magentic の計画ベースのオーケストレーションに適した構造化された決定オプション (APPROVE、REVISE、CONTINUE、REPLAN、GUIDANCE) を提供する MagenticHumanInterventionRequest イベントを生成します。 使用:
カスタム マネージャーの場合:
|
| MagenticContext |
マゼンティック マネージャーのコンテキスト。 |
| MagenticManagerBase |
マゼンティック One マネージャーの基本クラス。 |
| ManagerDirectiveModel |
構造化マネージャー ディレクティブ出力の Pydantic モデル。 キーワード引数からの入力データを解析して検証することで、新しいモデルを作成します。 [ValidationError][pydantic_core を発生させます。ValidationError] (入力データを検証して有効なモデルを形成できない場合)。 self は、フィールド名として self を許可するために明示的に位置指定専用です。 |
| ManagerSelectionRequest |
次に話者を選択するためにマネージャー エージェントに送信された要求。 このデータクラスは、マネージャー エージェントが話者の選択を分析して決定するための完全な会話状態とタスク コンテキストをパッケージ化します。 |
| ManagerSelectionResponse |
講演者の選択に関するマネージャー エージェントからの応答。 マネージャー エージェントは、オーケストレーターに決定を伝えるために、この構造 (または互換性のある dict/JSON) を生成する必要があります。 キーワード引数からの入力データを解析して検証することで、新しいモデルを作成します。 [ValidationError][pydantic_core を発生させます。ValidationError] (入力データを検証して有効なモデルを形成できない場合)。 self は、フィールド名として self を許可するために明示的に位置指定専用です。 |
| Message |
ワークフロー内のメッセージを表すクラス。 |
| OrchestrationState |
オーケストレーターのチェックポイント処理用の統合状態コンテナー。 このデータクラスは、メタデータを介してパターン固有の拡張機能を許可しながら、3 つのグループ チャット パターンすべてにチェックポイントのシリアル化を標準化します。 一般的な属性は、共有オーケストレーションの問題 (タスク、会話、ラウンド追跡) を対象としています。 パターン固有の状態がメタデータ ディクテーションに入ります。 |
| RequestInfoEvent |
ワークフロー 実行プログラムが外部情報を要求したときにトリガーされるイベント。 要求情報イベントを初期化します。 |
| RequestInfoInterceptor |
エージェントの実行前に人間の入力のワークフローを一時停止する内部実行プログラム。 この Executor は、 .with_request_info() が呼び出されたときにビルダーによってワークフロー グラフに挿入されます。 エージェントが実行される前に AgentExecutorRequest メッセージをインターセプトし、AgentInputRequest を 使用して ctx.request_info() を介してワークフローを一時停止します。 応答が受信されると、応答ハンドラーは入力をユーザー メッセージとして会話に挿入し、要求をエージェントに転送します。 省略可能 な agent_filter パラメーターを使用すると、一時停止をトリガーするエージェントを制限できます。 ターゲット エージェントの ID がフィルター セットにない場合、要求は一時停止せずに転送されます。 要求情報インターセプター Executor を初期化します。 |
| Role |
チャット操作内のメッセージの目的について説明します。 プロパティ: SYSTEM: AI システムの動作を指示または設定するロール。 USER: チャット操作にユーザー入力を提供するロール。 ASSISTANT: システム指示のユーザープロンプト入力への応答を提供するロール。 TOOL: ツールの使用要求に応答して追加情報と参照を提供するロール。 値を使用してロールを初期化します。 |
| Runner |
Pregel スーパーステップでワークフローを実行するクラス。 エッジ、共有状態、コンテキストを使用してランナーを初期化します。 |
| RunnerContext |
ランナーによって使用される実行コンテキストのプロトコル。 メッセージング、イベント、およびオプションのチェックポイント処理をサポートする 1 つのコンテキスト。 チェックポイント ストレージが構成されていない場合、チェックポイント メソッドが発生する可能性があります。 |
| SequentialBuilder |
共有コンテキストを持つシーケンシャル エージェント/Executor ワークフローの概要ビルダー。
使用:
|
| SharedState |
ワークフロー内の共有状態を管理するクラス。 SharedState は、ワークフローの実行中に Executor 間で共有する必要があるワークフロー状態データにスレッド セーフなアクセスを提供します。 予約キー: 次のキーは内部フレームワーク用に予約されており、ユーザー コードで変更しないでください。
Warnung アンダースコア (_) で始まるキーは予約されている可能性があるため、使用しないでください。 内部フレームワーク操作。 共有状態を初期化します。 |
| SingleEdgeGroup |
グループ API を均一に保つ、単独エッジの便利なラッパー。 2 つの Executor の間に 1 対 1 のエッジ グループを作成します。 |
| StandardMagenticManager |
ChatAgent を介して実際の LLM 呼び出しを実行する標準の Magentic マネージャー。 マネージャーは、元の Magentic One オーケストレーションをミラー化するプロンプトを作成します。
Standard Magentic Manager を初期化します。 |
| SubWorkflowRequestMessage |
サブワークフローから親ワークフローの Executor に送信され、情報を要求するメッセージ。 このメッセージは、サブワークフローの Executor によって出力された RequestInfoEvent をラップします。 |
| SubWorkflowResponseMessage |
要求された情報を提供するために、WorkflowExecutor を介して親ワークフローからサブワークフローに送信されるメッセージ。 このメッセージは、サブワークフロー 実行プログラムによって出力された元の RequestInfoEvent と共に応答データをラップします。 |
| SuperStepCompletedEvent |
スーパーステップが終了したときにトリガーされるイベント。 スーパーステップ イベントを初期化します。 |
| SuperStepStartedEvent |
スーパーステップの開始時にトリガーされるイベント。 スーパーステップ イベントを初期化します。 |
| SwitchCaseEdgeGroup |
従来のスイッチ/ケース制御フローを模倣するファンアウトバリアント。 各ケースは、メッセージ ペイロードを検査し、メッセージを処理する必要があるかどうかを決定します。 1 つのケースまたは既定のブランチが実行時にターゲットを返し、単一ディスパッチ セマンティクスを保持します。 1 つのソース Executor のスイッチ/ケース ルーティング構造を構成します。 |
| SwitchCaseEdgeGroupCase |
スイッチ ケースでの 1 つの条件付き分岐の永続化可能な説明。 ランタイム Case オブジェクトとは異なり、このシリアル化可能なバリアントは、述語のターゲット識別子とわかりやすい名前のみを格納します。 脱ダイヤル中に基になる呼び出し可能な呼び出しが使用できない場合は、大声で失敗するプロキシ プレースホルダーに置き換え、不足している依存関係がすぐに表示されるようにします。 条件付きケース ブランチのルーティング メタデータを記録します。 |
| SwitchCaseEdgeGroupDefault |
スイッチ ケース グループのフォールバック ブランチの永続化可能な記述子。 既定の分岐は存在することが保証され、他のすべてのケース述語がペイロードと一致しない場合に呼び出されます。 既定の分岐を指定された Executor 識別子に向けて指定します。 |
| TextContent |
チャット内のテキスト コンテンツを表します。 TextContent インスタンスを初期化します。 |
| TextReasoningContent |
チャット内のテキスト推論コンテンツを表します。 備考: このクラスと TextContent は表面的には似ていますが、異なります。 TextReasoningContent インスタンスを初期化します。 |
| TextSpanRegion |
注釈が付けられたテキストの領域を表します。 TextSpanRegion を初期化します。 |
| ToolMode |
チャット要求でツールを使用するかどうかを定義します。 ToolMode を初期化します。 |
| ToolProtocol |
汎用ツールを表します。 このプロトコルは、すべてのツールがエージェント フレームワークと互換性を持つよう実装する必要があるインターフェイスを定義します。 HostedMCPTool、HostedWebSearchTool、AIFunction などのさまざまなツール クラスによって実装されます。 AIFunction は通常、 ai_function デコレーターによって作成されます。 各コネクタはツールを異なる方法で解析する必要があるため、抽象化が使用できない場合、ユーザーは dict を渡してサービス固有のツールを指定できます。 |
| TypeCompatibilityError |
接続された Executor 間で型の非互換性が検出されると、例外が発生します。 |
| UriContent |
URI コンテンツを表します。 Important これは、画像やファイルなどの URI によって識別されるコンテンツに使用されます。 (バイナリ) データ URI の場合は、代わりに DataContent を使用します。 UriContent インスタンスを初期化します。 備考: これは、画像やファイルなどの URI で識別されるコンテンツに使用されます。 (バイナリ) データ URI の場合は、代わりに DataContent を使用します。 |
| UsageContent |
チャットの要求と応答に関連付けられている使用状況情報を表します。 UsageContent インスタンスを初期化します。 |
| UsageDetails |
要求/応答に関する使用状況の詳細を提供します。 UsageDetails インスタンスを初期化します。 |
| Workflow |
接続された Executor を調整するグラフ ベースの実行エンジン。 概要ワークフローは、Pregel に似たモデルを使用してエッジ グループ経由で接続された Executor の有向グラフを実行し、グラフがアイドルになるまでスーパーステップで実行されます。 ワークフローは WorkflowBuilder クラスを使用して作成されます。このクラスを直接インスタンス化しないでください。 実行モデルExecutor は、各 Executor が同期されたスーパーステップで実行されます。
Executor 間のメッセージは各スーパーステップの最後に配信され、イベント ストリームには表示されません。 呼び出し元が監視できるのは、ワークフロー レベルのイベント (出力、カスタム イベント) と状態イベントだけです。 入力/出力の種類ワークフローの種類は、実行時に次の検査によって検出されます。
実行メソッドワークフローには 2 つの主要な実行 API が用意されています。それぞれが複数のシナリオをサポートしています。
どちらの方法でも、次の機能がサポートされます。
状態管理ワークフロー インスタンスには状態が含まれており、実行とrun_streamの呼び出し間で状態が保持されます。 複数の独立した実行を実行するには、WorkflowBuilder を使用して個別のワークフロー インスタンスを作成します。 外部入力要求ワークフロー内の Executor は、 ctx.request_info()を使用して外部入力を要求できます。
チェックポイント機能チェックポイント処理は、ビルド時または実行時に構成できます。 ビルド時 (WorkflowBuilder 経由): workflow = WorkflowBuilder().with_checkpointing(storage).build() ランタイム (run/run_stream パラメーターを使用): result = await workflow.run(message, checkpoint_storage=runtime_storage) 有効にすると、各スーパーステップの最後にチェックポイントが作成され、次の情報がキャプチャされます。
組成ワークフローは、子ワークフローを Executor としてラップする WorkflowExecutor を使用して入れ子にすることができます。 入れ子になったワークフローの入力/出力型は、WorkflowExecutor の型の一部になります。 WorkflowExecutor が呼び出されると、入れ子になったワークフローが実行されて完了し、その出力が処理されます。 エッジの一覧を使用してワークフローを初期化します。 |
| WorkflowAgent |
ワークフローをラップし、エージェントとして公開する Agent サブクラス。 WorkflowAgent を初期化します。 |
| WorkflowBuilder |
ワークフローを構築するためのビルダー クラス。 このクラスは、Executor とエッジを接続し、実行パラメーターを構成することで、ワークフロー グラフを定義するための fluent API を提供します。 buildを呼び出して、変更できないWorkflow インスタンスを作成します。 エッジの空のリストを使用して WorkflowBuilder を初期化し、開始 Executor を使用しません。 |
| WorkflowCheckpoint |
ワークフロー状態の完全なチェックポイントを表します。 チェックポイントは、特定の時点でのワークフローの完全な実行状態をキャプチャし、ワークフローを一時停止および再開できるようにします。 注 shared_state dict には、フレームワークによって管理される予約キーが含まれている場合があります。 予約キーの詳細については、SharedState クラスのドキュメントを参照してください。 |
| WorkflowCheckpointSummary |
ワークフロー チェックポイントの人間が判読できる概要。 |
| WorkflowContext |
Executor がワークフローやその他の Executor と対話できるようにする実行コンテキスト。 概要WorkflowContext には、Executor がメッセージを送信し、出力を生成し、状態を管理し、より広範なワークフロー エコシステムと対話するための制御されたインターフェイスが用意されています。 内部ランタイム コンポーネントへの直接アクセスを防ぎながら、ジェネリック パラメーターを使用して型セーフを適用します。 型パラメーターコンテキストは、さまざまな操作に対して型セーフを適用するためにパラメーター化されます。 WorkflowContext (パラメーターなし)メッセージを送信したり出力を生成したりせずに副作用のみを実行する Executor の場合:
WorkflowContext[T_Out]T_Out型のメッセージを他の Executor に送信できるようにします。
WorkflowContext[T_Out, T_W_Out]メッセージの送信 (T_Out) とワークフロー出力の生成 (T_W_Out) の両方を有効にします。
共用体の型共用体表記を使用して、複数の型を指定できます。
指定されたワークフロー コンテキストを使用して Executor コンテキストを初期化します。 |
| WorkflowErrorDetails |
エラー イベント/結果に表示される構造化されたエラー情報。 |
| WorkflowEvent |
ワークフロー イベントの基本クラス。 オプションのデータを使用してワークフロー イベントを初期化します。 |
| WorkflowExecutor |
ワークフローをラップして階層型ワークフローコンポジションを有効にする Executor。 概要WorkflowExecutor は、ワークフローを親ワークフロー内で単一の Executor として動作させ、入れ子になったワークフロー アーキテクチャを有効にします。 イベント処理、出力転送、親ワークフローと子ワークフロー間の要求/応答調整など、サブワークフロー実行の完全なライフサイクルを処理します。 実行モデル呼び出されると、WorkflowExecutor:
イベント ストリーム処理WorkflowExecutor は、サブワークフローの完了後にイベントを処理します。 出力転送サブワークフローからのすべての出力は、自動的に親に転送されます。 allow_direct_outputが False の場合 (既定値):
allow_direct_outputが True の場合:要求/応答の調整サブワークフローに外部情報が必要な場合:
状態管理WorkflowExecutor は、要求/応答サイクル間で実行状態を維持します。
型システム統合WorkflowExecutor は、ラップされたワークフローから型シグネチャを継承します。 入力の種類ラップされたワークフローの開始 Executor 入力の種類と一致します。
出力の種類サブワークフロー出力と要求調整の種類を組み合わせます。
エラー処理WorkflowExecutor は、サブワークフローエラーを伝達します。
同時実行のサポートWorkflowExecutor は、複数の同時サブワークフロー実行を完全にサポートします。 Per-Execution 状態の分離サブワークフロー呼び出しごとに、分離された ExecutionContext が作成されます。
要求/応答の調整応答は、元の実行に正しくルーティングされます。
メモリ管理
重要な考慮事項共有ワークフロー インスタンス: すべての同時実行では、同じ基になるワークフロー インスタンスが使用されます。 適切に分離するために、ラップされたワークフローとその実行プログラムがステートレスであることを確認します。
親ワークフローとの統合親ワークフローは、サブワークフロー要求をインターセプトできます。 実装に関する注意事項
WorkflowExecutor を初期化します。 |
| WorkflowFailedEvent |
ワークフロー実行がエラーで終了したときに生成される組み込みのライフサイクル イベント。 |
| WorkflowOutputEvent |
ワークフロー 実行プログラムが出力を生成するときにトリガーされるイベント。 ワークフロー出力イベントを初期化します。 |
| WorkflowRunResult |
非ストリーミング ワークフローの実行中に生成されるイベントのコンテナー。 概要ワークフロー実行の完全な実行結果を表します。開始からアイドル状態まで生成されたすべてのイベントが含まれます。 ワークフローは、実行中に ctx.yield_output() 呼び出しを通じて出力を段階的に生成します。 イベント構造データ プレーン イベントとコントロール プレーン イベントの分離を維持します。
キー メソッド
|
| WorkflowStartedEvent |
ワークフロー実行の開始時に生成される組み込みのライフサイクル イベント。 オプションのデータを使用してワークフロー イベントを初期化します。 |
| WorkflowStatusEvent |
ワークフローの実行状態遷移に対して生成される組み込みのライフサイクル イベント。 新しい状態とオプションのデータを使用して、ワークフローの状態イベントを初期化します。 |
| WorkflowValidationError |
ワークフロー検証エラーの基本例外。 |
| WorkflowViz |
graphviz と人魚を使用してワークフローを視覚化するためのクラス。 ワークフローを使用して WorkflowViz を初期化します。 |
列挙型
| MagenticHumanInterventionDecision |
人間の介入応答の決定オプション。 |
| MagenticHumanInterventionKind |
要求される人間の介入の種類。 |
| ValidationTypeEnum |
ワークフロー検証の種類の列挙。 |
| WorkflowEventSource |
ワークフロー イベントがフレームワークまたは Executor から発生したかどうかを識別します。 フレームワークは、組み込みのオーケストレーション パスによって生成されるイベント (それらを発生させるコードがランナー関連のモジュールに存在する場合でも) に使用し 、開発者が提供する Executor 実装によって表示されるイベントに EXECUTOR を使用します。 |
| WorkflowRunState |
ワークフロー実行の実行レベルの状態。 意味論:
|
関数
agent_middleware
関数をエージェント ミドルウェアとしてマークするデコレーター。
このデコレーターは、AgentRunContext オブジェクトを処理するエージェント ミドルウェアとして関数を明示的に識別します。
agent_middleware(func: Callable[[AgentRunContext, Callable[[AgentRunContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[AgentRunContext, Callable[[AgentRunContext], Awaitable[None]]], Awaitable[None]]
パラメーター
| 名前 | 説明 |
|---|---|
|
func
必須
|
エージェント ミドルウェアとしてマークするミドルウェア関数。 |
戻り値
| 型 | 説明 |
|---|---|
|
エージェント ミドルウェア マーカーと同じ関数。 |
例
from agent_framework import agent_middleware, AgentRunContext, ChatAgent
@agent_middleware
async def logging_middleware(context: AgentRunContext, next):
print(f"Before: {context.agent.name}")
await next(context)
print(f"After: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
ai_function
関数を装飾して、モデルに渡して自動的に実行できる AIFunction に変換します。
このデコレーターは、関数のシグネチャから Pydantic モデルを作成します。これは、関数に渡される引数を検証し、関数のパラメーターの JSON スキーマを生成するために使用されます。
パラメーターに説明を追加するには、Annotatedのtyping型を使用し、2 番目の引数として文字列の説明を指定します。 Pydantic の Field クラスを使用して、より高度な構成を行うこともできます。
注
approval_modeが "always_require" に設定されている場合、関数は実行されません
明示的な承認が与えられるまで、これは自動呼び出しフローにのみ適用されます。
また、モデルが複数の関数呼び出しを返す場合は、承認が必要な一部の関数が返されることに注意することも重要です。
そうでない他の人は、それらのすべてに対して承認を求めます。
ai_function(func: Callable[[...], ReturnT | Awaitable[ReturnT]] | None = None, *, name: str | None = None, description: str | None = None, approval_mode: Literal['always_require', 'never_require'] | None = None, max_invocations: int | None = None, max_invocation_exceptions: int | None = None, additional_properties: dict[str, Any] | None = None) -> AIFunction[Any, ReturnT] | Callable[[Callable[[...], ReturnT | Awaitable[ReturnT]]], AIFunction[Any, ReturnT]]
パラメーター
| 名前 | 説明 |
|---|---|
|
func
|
Callable[[...], <xref:agent_framework._tools.ReturnT> | Awaitable[<xref:agent_framework._tools.ReturnT>]] | None
飾る機能。 規定値: None
|
|
name
必須
|
|
|
description
必須
|
|
|
approval_mode
必須
|
Literal['always_require', 'never_require'] | None
|
|
max_invocations
必須
|
|
|
max_invocation_exceptions
必須
|
|
|
additional_properties
必須
|
|
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
name
|
関数の名前です。 指定しない場合は、関数の 規定値: None
|
|
description
|
関数の説明。 指定しない場合は、関数の docstring が使用されます。 規定値: None
|
|
approval_mode
|
このツールを実行するために承認が必要かどうか。 既定では、承認は必要ありません。 規定値: None
|
|
max_invocations
|
この関数を呼び出すことができる最大回数。 None の場合、制限はありません。少なくとも 1 である必要があります。 規定値: None
|
|
max_invocation_exceptions
|
呼び出し中に許可される例外の最大数。 None の場合、制限はありません。少なくとも 1 である必要があります。 規定値: None
|
|
additional_properties
|
関数に設定する追加のプロパティ。 規定値: None
|
戻り値
| 型 | 説明 |
|---|---|
|
AIFunction[Any, <xref:agent_framework._tools.ReturnT>] | Callable[[Callable[[…], <xref:agent_framework._tools.ReturnT> | Awaitable[<xref:agent_framework._tools.ReturnT>]]], AIFunction[Any, <xref:agent_framework._tools.ReturnT>]]
|
例
from agent_framework import ai_function
from typing import Annotated
@ai_function
def ai_function_example(
arg1: Annotated[str, "The first argument"],
arg2: Annotated[int, "The second argument"],
) -> str:
# An example function that takes two arguments and returns a string.
return f"arg1: {arg1}, arg2: {arg2}"
# the same function but with approval required to run
@ai_function(approval_mode="always_require")
def ai_function_example(
arg1: Annotated[str, "The first argument"],
arg2: Annotated[int, "The second argument"],
) -> str:
# An example function that takes two arguments and returns a string.
return f"arg1: {arg1}, arg2: {arg2}"
# With custom name and description
@ai_function(name="custom_weather", description="Custom weather function")
def another_weather_func(location: str) -> str:
return f"Weather in {location}"
# Async functions are also supported
@ai_function
async def async_get_weather(location: str) -> str:
'''Get weather asynchronously.'''
# Simulate async operation
return f"Weather in {location}"
chat_middleware
関数をチャット ミドルウェアとしてマークするデコレーター。
このデコレーターは、ChatContext オブジェクトを処理するチャット ミドルウェアとして関数を明示的に識別します。
chat_middleware(func: Callable[[ChatContext, Callable[[ChatContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[ChatContext, Callable[[ChatContext], Awaitable[None]]], Awaitable[None]]
パラメーター
| 名前 | 説明 |
|---|---|
|
func
必須
|
チャット ミドルウェアとしてマークするミドルウェア関数。 |
戻り値
| 型 | 説明 |
|---|---|
|
チャット ミドルウェア マーカーと同じ関数。 |
例
from agent_framework import chat_middleware, ChatContext, ChatAgent
@chat_middleware
async def logging_middleware(context: ChatContext, next):
print(f"Messages: {len(context.messages)}")
await next(context)
print(f"Response: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
create_edge_runner
エッジ グループに適したエッジ ランナーを作成するファクトリ関数。
create_edge_runner(edge_group: EdgeGroup, executors: dict[str, Executor]) -> EdgeRunner
パラメーター
| 名前 | 説明 |
|---|---|
|
edge_group
必須
|
<xref:agent_framework._workflows._edge.EdgeGroup>
ランナーを作成するエッジ グループ。 |
|
executors
必須
|
Executor ID を Executor インスタンスにマップします。 |
戻り値
| 型 | 説明 |
|---|---|
|
<xref:agent_framework._workflows._edge_runner.EdgeRunner>
|
適切な EdgeRunner インスタンス。 |
executor
スタンドアロン関数を FunctionExecutor インスタンスに変換するデコレーター。
@executorデコレーターは、スタンドアロンのモジュール レベルの関数のみを対象に設計されています。 クラス ベースの Executor の場合は、インスタンス メソッドの @handler で Executor 基本クラスを使用します。
同期関数と非同期関数の両方をサポートします。 同期関数は、イベント ループをブロックしないようにスレッド プールで実行されます。
Important
スタンドアロン関数 (モジュール レベルまたはローカル関数) に @executor を使用する
@executorでstaticmethodを使用しないでください。classmethod
クラス ベースの Executor の場合は、Executor をサブクラス化し、インスタンス メソッドで @handler を使用します
使用:
# Standalone async function (RECOMMENDED):
@executor(id="upper_case")
async def to_upper(text: str, ctx: WorkflowContext[str]):
await ctx.send_message(text.upper())
# Standalone sync function (runs in thread pool):
@executor
def process_data(data: str):
return data.upper()
# For class-based executors, use @handler instead:
class MyExecutor(Executor):
def __init__(self):
super().__init__(id="my_executor")
@handler
async def process(self, data: str, ctx: WorkflowContext[str]):
await ctx.send_message(data.upper())
executor(func: Callable[[...], Any] | None = None, *, id: str | None = None) -> Callable[[Callable[[...], Any]], FunctionExecutor] | FunctionExecutor
パラメーター
| 名前 | 説明 |
|---|---|
|
func
|
装飾する関数 (かっこなしで使用する場合) 規定値: None
|
|
id
必須
|
Executor のオプションのカスタム ID。 None の場合は、関数名を使用します。 |
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
id
|
規定値: None
|
戻り値
| 型 | 説明 |
|---|---|
|
ワークフローにワイヤードできる FunctionExecutor インスタンス。 |
例外
| 型 | 説明 |
|---|---|
|
staticmethodまたはclassmethodと共に使用する場合 (サポートされていないパターン) |
function_middleware
関数を関数ミドルウェアとしてマークするデコレーター。
このデコレーターは、FunctionInvocationContext オブジェクトを処理する関数ミドルウェアとして関数を明示的に識別します。
function_middleware(func: Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]
パラメーター
| 名前 | 説明 |
|---|---|
|
func
必須
|
Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]
関数ミドルウェアとしてマークするミドルウェア関数。 |
戻り値
| 型 | 説明 |
|---|---|
|
関数ミドルウェア マーカーと同じ関数。 |
例
from agent_framework import function_middleware, FunctionInvocationContext, ChatAgent
@function_middleware
async def logging_middleware(context: FunctionInvocationContext, next):
print(f"Calling: {context.function.name}")
await next(context)
print(f"Result: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
get_checkpoint_summary
get_checkpoint_summary(checkpoint: WorkflowCheckpoint) -> WorkflowCheckpointSummary
パラメーター
| 名前 | 説明 |
|---|---|
|
checkpoint
必須
|
|
戻り値
| 型 | 説明 |
|---|---|
get_logger
handler
Executor のハンドラーを登録するデコレーター。
handler(func: Callable[[ExecutorT, Any, ContextT], Awaitable[Any]]) -> Callable[[ExecutorT, Any, ContextT], Awaitable[Any]]
パラメーター
| 名前 | 説明 |
|---|---|
|
func
必須
|
Callable[[<xref:agent_framework._workflows._executor.ExecutorT>, Any, <xref:agent_framework._workflows._executor.ContextT>], Awaitable[Any]]
飾る機能。 パラメーターなしで使用する場合は None を指定できます。 |
戻り値
| 型 | 説明 |
|---|---|
|
ハンドラー メタデータを含む修飾関数。 |
例
@handler async def handle_string(self, message: str, ctx: WorkflowContext[str]) -> None:
...
@handler async def handle_data(self, message: dict, ctx: WorkflowContext[str | int]) -> None:
...
prepare_function_call_results
関数呼び出し結果の値を準備します。
prepare_function_call_results(content: TextContent | DataContent | TextReasoningContent | UriContent | FunctionCallContent | FunctionResultContent | ErrorContent | UsageContent | HostedFileContent | HostedVectorStoreContent | FunctionApprovalRequestContent | FunctionApprovalResponseContent | Any | list[TextContent | DataContent | TextReasoningContent | UriContent | FunctionCallContent | FunctionResultContent | ErrorContent | UsageContent | HostedFileContent | HostedVectorStoreContent | FunctionApprovalRequestContent | FunctionApprovalResponseContent | Any]) -> str
パラメーター
戻り値
| 型 | 説明 |
|---|---|
prepend_agent_framework_to_user_agent
ヘッダー内の User-Agent の前に "agent-framework" を追加します。
AGENT_FRAMEWORK_USER_AGENT_DISABLED環境変数を使用してユーザー エージェント テレメトリが無効になっている場合、User-Agent ヘッダーにはエージェント フレームワーク情報は含まれません。
None が渡されると、そのまままたは空のディクテーションとして返されます。
prepend_agent_framework_to_user_agent(headers: dict[str, Any] | None = None) -> dict[str, Any]
パラメーター
| 名前 | 説明 |
|---|---|
|
headers
|
既存のヘッダー ディクショナリ。 規定値: None
|
戻り値
| 型 | 説明 |
|---|---|
|
ヘッダーが None の場合、"User-Agent" が "agent-framework-python/{version}" に設定された新しい dict。 ユーザー エージェントの前に "agent-framework-python/{version}" が付加された変更されたヘッダー ディクショナリ。 |
例
from agent_framework import prepend_agent_framework_to_user_agent
# Add agent-framework to new headers
headers = prepend_agent_framework_to_user_agent()
print(headers["User-Agent"]) # "agent-framework-python/0.1.0"
# Prepend to existing headers
existing = {"User-Agent": "my-app/1.0"}
headers = prepend_agent_framework_to_user_agent(existing)
print(headers["User-Agent"]) # "agent-framework-python/0.1.0 my-app/1.0"
response_handler
要求の応答を処理するハンドラーを登録するデコレーター。
response_handler(func: Callable[[ExecutorT, Any, Any, ContextT], Awaitable[None]]) -> Callable[[ExecutorT, Any, Any, ContextT], Awaitable[None]]
パラメーター
| 名前 | 説明 |
|---|---|
|
func
必須
|
Callable[[<xref:agent_framework._workflows._request_info_mixin.ExecutorT>, Any, Any, <xref:agent_framework._workflows._request_info_mixin.ContextT>], Awaitable[None]]
飾る機能。 |
戻り値
| 型 | 説明 |
|---|---|
|
ハンドラー メタデータを含む修飾関数。 |
例
@handler
async def run(self, message: int, context: WorkflowContext[str]) -> None:
# Example of a handler that sends a request
...
# Send a request with a `CustomRequest` payload and expect a `str` response.
await context.request_info(CustomRequest(...), str)
@response_handler
async def handle_response(
self,
original_request: CustomRequest,
response: str,
context: WorkflowContext[str],
) -> None:
# Example of a response handler for the above request
...
@response_handler
async def handle_response(
self,
original_request: CustomRequest,
response: dict,
context: WorkflowContext[int],
) -> None:
# Example of a response handler for a request expecting a dict response
...
setup_logging
use_agent_middleware
エージェント クラスにミドルウェアのサポートを追加するクラス デコレーター。
このデコレーターは、任意のエージェント クラスにミドルウェア機能を追加します。
ミドルウェアの実行を提供するために、 run() メソッドと run_stream() メソッドをラップします。
ミドルウェアの実行は、 context.terminate プロパティを True に設定することで、任意の時点で終了できます。 設定すると、制御がパイプラインに戻るとすぐに、パイプラインはミドルウェアの実行を停止します。
注
このデコレーターは、組み込みのエージェント クラスに既に適用されています。 使用する必要があるのは
カスタム エージェントの実装を作成する場合は〘。
use_agent_middleware(agent_class: type[TAgent]) -> type[TAgent]
パラメーター
| 名前 | 説明 |
|---|---|
|
agent_class
必須
|
type[<xref:TAgent>]
ミドルウェアのサポートを追加するエージェント クラス。 |
戻り値
| 型 | 説明 |
|---|---|
|
type[~<xref:TAgent>]
|
ミドルウェアをサポートする変更されたエージェント クラス。 |
例
from agent_framework import use_agent_middleware
@use_agent_middleware
class CustomAgent:
async def run(self, messages, **kwargs):
# Agent implementation
pass
async def run_stream(self, messages, **kwargs):
# Streaming implementation
pass
use_chat_middleware
チャット クライアント クラスにミドルウェアのサポートを追加するクラス デコレーター。
このデコレーターは、任意のチャット クライアント クラスにミドルウェア機能を追加します。
ミドルウェアの実行を提供するために、 get_response() メソッドと get_streaming_response() メソッドをラップします。
注
このデコレーターは、組み込みのチャット クライアント クラスに既に適用されています。 使用する必要があるのは
カスタム チャット クライアントの実装を作成する場合は〘。
use_chat_middleware(chat_client_class: type[TChatClient]) -> type[TChatClient]
パラメーター
| 名前 | 説明 |
|---|---|
|
chat_client_class
必須
|
type[<xref:TChatClient>]
ミドルウェアのサポートを追加するチャット クライアント クラス。 |
戻り値
| 型 | 説明 |
|---|---|
|
type[~<xref:TChatClient>]
|
ミドルウェアをサポートする変更されたチャット クライアント クラス。 |
例
from agent_framework import use_chat_middleware
@use_chat_middleware
class CustomChatClient:
async def get_response(self, messages, **kwargs):
# Chat client implementation
pass
async def get_streaming_response(self, messages, **kwargs):
# Streaming implementation
pass
use_function_invocation
チャット クライアントのツール呼び出しを可能にするクラス デコレーター。
このデコレーターは、 get_response メソッドと get_streaming_response メソッドをラップして、モデルからの関数呼び出しを自動的に処理し、それらを実行し、さらに処理するために結果をモデルに返します。
use_function_invocation(chat_client: type[TChatClient]) -> type[TChatClient]
パラメーター
| 名前 | 説明 |
|---|---|
|
chat_client
必須
|
type[<xref:TChatClient>]
装飾するチャット クライアント クラス。 |
戻り値
| 型 | 説明 |
|---|---|
|
type[~<xref:TChatClient>]
|
関数呼び出しが有効になっている装飾済みチャット クライアント クラス。 |
例外
| 型 | 説明 |
|---|---|
|
チャット クライアントに必要なメソッドがない場合。 |
例
from agent_framework import use_function_invocation, BaseChatClient
@use_function_invocation
class MyCustomClient(BaseChatClient):
async def get_response(self, messages, **kwargs):
# Implementation here
pass
async def get_streaming_response(self, messages, **kwargs):
# Implementation here
pass
# The client now automatically handles function calls
client = MyCustomClient()
validate_workflow_graph
ワークフロー グラフを検証するための便利な関数。
validate_workflow_graph(edge_groups: Sequence[EdgeGroup], executors: dict[str, Executor], start_executor: Executor) -> None
パラメーター
| 名前 | 説明 |
|---|---|
|
edge_groups
必須
|
Sequence[<xref:agent_framework._workflows._edge.EdgeGroup>]
ワークフロー内のエッジ グループの一覧 |
|
executors
必須
|
Executor ID を Executor インスタンスにマップする |
|
start_executor
必須
|
開始 Executor (インスタンスまたは ID を指定できます) |
戻り値
| 型 | 説明 |
|---|---|
例外
| 型 | 説明 |
|---|---|
|
検証に失敗した場合 |