ブロックを接続する際、異なるブロック出力のデータ構造を理解することが重要です。なぜなら、ソースブロックからの出力データ構造によって、宛先ブロックで利用可能な値が決まるからです。各ブロックタイプは、下流のブロックで参照できる特定の出力構造を生成します。
これらのデータ構造を理解することは、接続タグを効果的に使用し、ワークフローで正しいデータにアクセスするために不可欠です。
ブロック出力構造
ブロックタイプによって、異なる出力構造が生成されます。各ブロックタイプから期待できる出力は次のとおりです:
{
"content": "The generated text response",
"model": "gpt-4o",
"tokens": {
"prompt": 120,
"completion": 85,
"total": 205
},
"toolCalls": [...],
"cost": [...],
"usage": [...]
}エージェントブロックの出力フィールド
- content: エージェントによって生成されたメインテキスト応答
- model: 使用されたAIモデル(例:「gpt-4o」、「claude-3-opus」)
- tokens: トークン使用統計
- prompt: プロンプトのトークン数
- completion: 完了のトークン数
- total: 使用された合計トークン数
- toolCalls: エージェントによって行われたツールコールの配列(存在する場合)
- cost: 各ツールコールのコストオブジェクトの配列(存在する場合)
- usage: 応答全体のトークン使用統計
カスタム出力構造
一部のブロックでは、その設定に基づいてカスタム出力構造を生成することがあります:
-
レスポンスフォーマットを持つエージェントブロック: エージェントブロックでレスポンスフォーマットを使用する場合、出力構造は標準構造ではなく、定義されたスキーマに一致します。
-
関数ブロック:
resultフィールドには、関数コードから返される任意のデータ構造が含まれます。 -
APIブロック:
dataフィールドには、APIが返す任意の有効なJSON構造が含まれます。
開発中は常にブロックの実際の出力構造を確認し、接続で正しいフィールドを参照していることを確認してください。
ネストされたデータ構造
多くのブロック出力にはネストされたデータ構造が含まれています。これらにはドット表記を使用して接続タグでアクセスできます:
<blockName.path.to.nested.data>例えば:
<agent1.tokens.total>- エージェントブロックから合計トークン数にアクセス<api1.data.results[0].id>- APIレスポンスの最初の結果のIDにアクセス<function1.result.calculations.total>- 関数ブロックの結果内のネストされたフィールドにアクセス