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 シリーズなど)からの reasoning signature(推論シグネチャ)を含みます。これは、努力度合いや推論アプローチなど、モデルの内部推論プロセスに関するメタデータを表しますが、実際の推論内容そのものは含みません。
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?:
制御チャンク
start
ストリーミングの開始を示します。
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 - これらのチャンクを出力するストリームオブジェクト
- Agent.streamVNext() - これらのチャンクを出力するストリームを返すメソッド