ChunkType(実験的)
実験的なAPI:この型は実験的な .streamVNext()
メソッドの一部です。フィードバックに基づいて機能を洗練していくに伴い、APIは変更される可能性があります。
ChunkType
型は、エージェントのストリーミング応答中に出力されるチャンクの mastra 形式を定義します。
基本プロパティ
すべてのチャンクには次の基本プロパティが含まれます:
type:
runId:
from:
AGENT:
USER:
SYSTEM:
WORKFLOW:
テキストチャンク
text-start
テキスト生成の開始を通知します。
type:
payload:
id:
providerMetadata?:
text-delta
生成中に出力される増分テキスト。
type:
payload:
id:
text:
providerMetadata?:
text-end
テキスト生成の終了を示します。
type:
payload:
id:
providerMetadata?:
推論のチャンク
reasoning-start
推論生成の開始を示します(推論対応モデル向け)。
type:
payload:
id:
signature?:
providerMetadata?:
reasoning-delta
生成中に逐次出力される推論テキスト。
type:
payload:
id:
text:
providerMetadata?:
reasoning-end
推論生成の終了を通知します。
type:
payload:
id:
signature?:
providerMetadata?:
reasoning-signature
高度な推論をサポートするモデル(OpenAI の o1 シリーズなど)からの推論シグネチャを含みます。シグネチャは、モデルの内部推論プロセスに関するメタデータ(労力レベルや推論アプローチなど)を表しますが、実際の推論内容自体は含みません。
type:
payload:
id:
signature:
providerMetadata?:
ツールチャンク
tool-call
ツールが呼び出されています。
type:
payload:
toolCallId:
toolName:
args?:
providerExecuted?:
output?:
providerMetadata?:
tool-result
ツール実行の結果。
type:
payload:
toolCallId:
toolName:
result:
isError?:
providerExecuted?:
args?:
providerMetadata?:
tool-call-input-streaming-start
ツール呼び出し引数のストリーミング開始を通知します。
type:
payload:
toolCallId:
toolName:
providerExecuted?:
dynamic?:
providerMetadata?:
tool-call-delta
ストリーミング中に段階的に出力されるツール呼び出し引数。
type:
payload:
argsTextDelta:
toolCallId:
toolName?:
providerMetadata?:
tool-call-input-streaming-end
ツール呼び出しの引数ストリーミングの終了を示します。
type:
payload:
toolCallId:
providerMetadata?:
tool-error
ツールの実行中にエラーが発生しました。
type:
payload:
id?:
toolCallId:
toolName:
args?:
error:
providerExecuted?:
providerMetadata?:
ソースとファイルのチャンク
source
コンテンツに関するソース情報が含まれます。
type:
payload:
id:
sourceType:
title:
mimeType?:
filename?:
url?:
providerMetadata?:
file
ファイルデータを含みます。
type:
payload:
data:
base64?:
mimeType:
providerMetadata?:
制御チャンク
開始
ストリーミングの開始を示します。
type:
payload:
[key: string]:
step-start
処理ステップの開始を示します。
type:
payload:
messageId?:
request:
warnings?:
step-finish
処理ステップが完了したことを示します。
type:
payload:
id?:
messageId?:
stepResult:
output:
metadata:
totalUsage?:
response?:
providerMetadata?:
raw
プロバイダー提供の未加工データを含みます。
type:
payload:
[key: string]:
finish
ストリームは正常に完了しました。
type:
payload:
stepResult:
output:
metadata:
messages:
error
ストリーミング中にエラーが発生しました。
type:
payload:
error:
abort
ストリームが中断されました。
type:
payload:
[key: string]:
オブジェクトと出力チャンク
object
定義済みスキーマでの出力生成時に発行されます。指定の Zod または JSON スキーマに適合する、部分的または完全な構造化データを含みます。このチャンクは、実行コンテキストによってはスキップされることがあり、構造化オブジェクト生成のストリーミングに用いられます。
type:
object:
tool-output
エージェントまたはワークフローの実行結果を含み、特に使用状況の統計や完了イベントの追跡に用いられます。入れ子の実行コンテキストを提供するために、他のチャンクタイプ(finish チャンクなど)をラップすることがよくあります。
type:
payload:
output:
step-output
ワークフローステップの実行出力を含み、主に利用状況の追跡やステップ完了イベントに使用されます。tool-output に似ていますが、個々のワークフローステップに特化しています。
type:
payload:
output:
メタデータと特殊チャンク
response-metadata
LLMプロバイダーのレスポンスに関するメタデータを含みます。テキスト生成後に、一部のプロバイダーがモデルID、タイムスタンプ、レスポンスヘッダーなどの追加情報を提供するために出力します。このチャンクは内部の状態追跡に使用され、メッセージの組み立てには影響しません。
type:
payload:
signature?:
[key: string]:
watch
エージェント実行に関する監視・可観測性データを含みます。streamVNext()
の使用コンテキストに応じて、ワークフローの状態情報、実行進行状況、その他のランタイム詳細が含まれる場合があります。
type:
payload:
workflowState?:
eventTimestamp?:
[key: string]:
tripwire
出力プロセッサによりコンテンツがブロックされた結果、ストリームが強制終了された際に発行されます。これは、有害または不適切なコンテンツのストリーミングを防ぐためのセーフティ機構として機能します。
type:
payload:
tripwireReason:
使用例
const stream = await agent.streamVNext("Hello");
for await (const chunk of stream.fullStream) {
switch (chunk.type) {
case 'text-delta':
console.log('テキスト:', chunk.payload.text);
break;
case 'tool-call':
console.log('ツール呼び出し:', chunk.payload.toolName);
break;
case 'tool-result':
console.log('ツール結果:', chunk.payload.result);
break;
case 'reasoning-delta':
console.log('推論:', chunk.payload.text);
break;
case 'finish':
console.log('完了:', chunk.payload.stepResult.reason);
console.log('使用量:', chunk.payload.output.usage);
break;
case 'error':
console.error('エラー:', chunk.payload.error);
break;
}
}
関連する型
- MastraModelOutput - これらのチャンクを生成して流すストリームオブジェクト
- .streamVNext() - これらのチャンクを流すストリームを返すメソッド