Overview
カスタムストリーム出力を構成して、プレーンテキストに加えて、ストリーミング呼び出し用に構造化されたマシンが判読可能な出力を発行するようにエージェントに指示できます。 Atlas Agent Engine は、この出力をカスタム イベントとしてクライアントに送信します。
このガイドでは、次のタスクを実行する方法について説明しています。
カスタム ストリーム出力を有効にする:
features.use_custom_parser: trueagent.yamlファイルの フラグを設定します。カスタム イベントを発行:エージェントコードからカスタム イベントを発行します。
前提条件
開始する前に、agent.yaml ファイルを使用して登録されたエージェントがあることを確認してください。詳細については、「 Atlas Agent Engine の使用 」を参照してください。
カスタム ストリーム出力の有効化
エージェントのカスタム ストリーム出力を有効にするには、次のコードを agent.yamlファイルに追加します。
features: use_custom_parser: true
features.use_custom_parserフラグをtrue に設定しているが出力パーサーを登録していない場合、呼び出しが開始されたときにエージェントは失敗し、RuntimeError が返されます。
出力パーサーの登録
@app.output_parser 修飾子を使用してアプリに OutputParser サブクラスを登録します。 Atlas Agent Engine はコレクション時にクラスを検証するため、モジュールのインポート時に OutputParser サブクラスではないクラスを渡すと失敗します。
LgGraph エージェントの場合は、 LangGraphOutputParserクラスをサブクラス化します。カスタム イベントに変換する LingGraph ストリーム モードに stream_modesクラス属性を設定します。次に、parse() メソッドと on_stream_error() メソッドを実装します。
次の例では、LingGraphエージェントの出力パーサーを登録します。
from agent_engine_sdk_langgraph.output_parser import LangGraphOutputParser class BriefParser(LangGraphOutputParser): stream_modes = ("messages", "values") async def parse(self, item, ctx): ... yield {"event": "brief", "data": new_brief} async def on_stream_error(self, ctx, error): ... return {"event": "error"}
次の表では、LangGraphOutputParser メンバーを説明しています。
ノード | 説明 |
|---|---|
| LgGraph ストリームモード名のシーケンス( |
| 1 つのストリーム アイテムに対して発行するカスタム イベントを決定します。 JSONシリアル化可能なオブジェクトを生成する非同期メソッドとして |
| プラットフォームがストリーム エラーを表示する前に発行する任意のJSONシリアル化可能なカスタムイベントを返します。 |
parse() または on_stream_error() メソッドでエラーが発生した場合、出力が自動的に削除されるのではなく、ストリームは失敗します。
カスタム イベントの発行
ストリーミング呼び出し中に、emit_custom_event() 関数を使用して、LingGraph ノード、ツール、または実行内で実行されるその他のコードからカスタム イベントを直接出力できます。次の例に示すように、string キーを含むJSONオブジェクトを emit_custom_event() に渡します。
from runner_shared import emit_custom_event await emit_custom_event({"event": "todo", "items": ["a", "b"]})
Atlas Agent Engine はJSONオブジェクトを変更せずに転送し、スキーマを適用しないため、クライアントが期待するものに合わせてペイロードの構造を定義できます。
emit_custom_event() 関数を呼び出すと、次のルールが適用されます。
ストリーミング呼び出しからのみメソッドを呼び出します。同期
invokeパスから呼び出すとエラーが発生します。agent.yamlファイルでfeatures.use_custom_parserフラグを有効にします。フラグが無効になっている場合、プラットフォームはエラーを発生させます。非同期コードからの メソッドを待機します。同期コードから、代わりに
emit_custom_event_sync()を使用してください。
次のステップ
ストリーム出力をクライアントがどのように受信するかについては、 エージェントの呼び出しガイドの「 エージェントの出力のストリーム 」を参照してください。