ChunkType
ChunkType 類型定義 Agent 串流回應期間可發出的串流分塊 Mastra 格式。
基本屬性基本屬性 的直接連結
所有分塊都包含以下基本屬性:
type:
runId:
from:
AGENT:
USER:
SYSTEM:
WORKFLOW:
文字分塊文字分塊 的直接連結
text-starttext-start 的直接連結
表示文字生成開始。
type:
payload:
id:
providerMetadata?:
text-deltatext-delta 的直接連結
生成期間逐步產生的文字內容。
type:
payload:
id:
text:
providerMetadata?:
text-endtext-end 的直接連結
表示文字生成結束。
type:
payload:
id:
providerMetadata?:
推理分塊推理分塊 的直接連結
reasoning-startreasoning-start 的直接連結
表示推理生成開始(適用於支援推理的模型)。
type:
payload:
id:
signature?:
providerMetadata?:
reasoning-deltareasoning-delta 的直接連結
生成期間逐步產生的推理文字。
type:
payload:
id:
text:
providerMetadata?:
reasoning-endreasoning-end 的直接連結
表示推理生成結束。
type:
payload:
id:
signature?:
providerMetadata?:
reasoning-signaturereasoning-signature 的直接連結
包含支援進階推理的模型(例如 OpenAI o1 系列)所產生的推理簽署。簽署代表模型內部推理過程的中繼資料,例如投入程度或推理方式,但不包含實際推理內容。
type:
payload:
id:
signature:
providerMetadata?:
Tool 分塊Tool 分塊 的直接連結
tool-calltool-call 的直接連結
正在呼叫 Tool。
type:
payload:
toolCallId:
toolName:
args?:
providerExecuted?:
output?:
providerMetadata?:
tool-resulttool-result 的直接連結
Tool 執行結果。
type:
payload:
toolCallId:
toolName:
result:
isError?:
providerExecuted?:
args?:
providerMetadata?:
tool-call-input-streaming-starttool-call-input-streaming-start 的直接連結
表示開始以串流方式傳送 Tool 呼叫引數。
type:
payload:
toolCallId:
toolName:
providerExecuted?:
dynamic?:
providerMetadata?:
tool-call-deltatool-call-delta 的直接連結
串流期間逐步產生的 Tool 呼叫引數。
type:
payload:
argsTextDelta:
toolCallId:
toolName?:
providerMetadata?:
tool-call-input-streaming-endtool-call-input-streaming-end 的直接連結
表示結束以串流方式傳送 Tool 呼叫引數。
type:
payload:
toolCallId:
providerMetadata?:
tool-errortool-error 的直接連結
執行 Tool 時發生錯誤。
type:
payload:
id?:
toolCallId:
toolName:
args?:
error:
providerExecuted?:
providerMetadata?:
來源及檔案分塊來源及檔案分塊 的直接連結
sourcesource 的直接連結
包含內容的來源資料。
type:
payload:
id:
sourceType:
title:
mimeType?:
filename?:
url?:
providerMetadata?:
filefile 的直接連結
包含檔案資料。
type:
payload:
data:
base64?:
mimeType:
providerMetadata?:
控制分塊控制分塊 的直接連結
startstart 的直接連結
表示串流開始。
type:
payload:
[key: string]:
step-startstep-start 的直接連結
表示處理步驟開始。
type:
payload:
messageId?:
request:
warnings?:
step-finishstep-finish 的直接連結
表示處理步驟完成。
type:
payload:
id?:
messageId?:
stepResult:
output:
metadata:
totalUsage?:
response?:
providerMetadata?:
rawraw 的直接連結
包含 Provider 的原始資料。
type:
payload:
[key: string]:
finishfinish 的直接連結
串流已成功完成。
type:
payload:
stepResult:
output:
metadata:
messages:
response:
errorerror 的直接連結
串流期間發生錯誤。
type:
payload:
error:
abortabort 的直接連結
串流已中止。
type:
payload:
[key: string]:
物件及輸出分塊物件及輸出分塊 的直接連結
objectobject 的直接連結
使用已定義結構描述生成輸出時發出。包含符合指定 Zod 或 JSON 結構描述的部分或完整結構化資料。在部分執行情境中通常會略過此分塊;此分塊用於以串流方式生成結構化物件。
type:
object:
tool-outputtool-output 的直接連結
包含 Agent 或 Workflow 執行輸出,尤其用於追蹤用量統計資料及完成事件。它通常會包裝其他分塊類型(例如 finish 分塊),以提供巢狀執行情境。
type:
payload:
output:
step-outputstep-output 的直接連結
包含 Workflow 步驟執行輸出,主要用於追蹤用量及步驟完成事件。它與 tool-output 相似,但專門用於個別 Workflow 步驟。
type:
payload:
output:
背景任務分塊背景任務分塊 的直接連結
當 Tool 呼叫以背景任務方式派送,並使用 streamUntilIdle() 時發出。
background-task-startedbackground-task-started 的直接連結
當 Tool 呼叫排入背景任務佇列並獲指派 taskId 時發出。
type:
payload:
taskId:
toolName:
toolCallId:
background-task-runningbackground-task-running 的直接連結
當工作程序接手任務並開始執行時發出。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
startedAt:
args:
background-task-progressbackground-task-progress 的直接連結
定期提供 Agent 中目前執行之背景任務數目的快照。
type:
payload:
taskIds:
runningCount:
elapsedMs:
background-task-outputbackground-task-output 的直接連結
由任務的 execute 函數發出的串流輸出分塊,當中包裝了一個內部 tool-output 分塊。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
payload:
background-task-completedbackground-task-completed 的直接連結
任務成功完成時發出。由 Agent.streamUntilIdle() 取用時會觸發延續回合。
type:
payload:
taskId:
toolName:
toolCallId:
agentId:
runId:
result:
completedAt:
isError?:
background-task-failedbackground-task-failed 的直接連結
任務擲回例外或逾時時發出。由 Agent.streamUntilIdle() 取用時會觸發延續回合。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
error:
completedAt:
background-task-suspendedbackground-task-suspended 的直接連結
當 Tool 在背景執行期間呼叫 suspend() 時發出。它會暫停任務的 Workflow 執行並保留快照。請使用 mastra.backgroundTaskManager.resume(taskId, resumeData) 恢復。
由 Agent.streamUntilIdle() 取用時,此分塊會將任務從迴圈的等待集合移除,而不會排入延續操作。Agent 回應隨即結束;恢復後的任務最終完成時,結果會加入下一個使用者回合的訊息清單。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
suspendData?:
suspend(data) 的任何資料background-task-resumedbackground-task-resumed 的直接連結
透過 mastra.backgroundTaskManager.resume(taskId, resumeData) 恢復已暫停的任務時發出。任務會轉回 running,並以已填入的 resumeData 重新啟動 Tool 的 execute。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
startedAt:
args:
background-task-cancelledbackground-task-cancelled 的直接連結
任務在完成前遭取消時發出。由 Agent.streamUntilIdle() 取用時會觸發延續回合。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
completedAt:
中繼資料及特殊分塊中繼資料及特殊分塊 的直接連結
response-metadataresponse-metadata 的直接連結
包含 LLM Provider 回應的中繼資料。部分 Provider 會在文字生成後發出此分塊,以提供模型 ID、時間戳記及回應標頭等額外情境。此分塊在內部用於追蹤狀態,不會影響訊息組合。
type:
payload:
signature?:
[key: string]:
watchwatch 的直接連結
包含 Agent 執行的監察及可觀測性資料。視乎使用 stream() 的情境,可包括 Workflow 狀態資料、執行進度或其他執行階段詳情。
type:
payload:
workflowState?:
eventTimestamp?:
[key: string]:
goalgoal 的直接連結
每次評估 Agent goal 時發出。取用者會用它在執行期間呈現評審進度及結果。未設定評審模型的目標不會產生 goal 分塊。
type:
payload:
objective:
iteration:
maxRuns:
passed:
status:
results:
reason?:
duration:
timedOut:
maxRunsReached:
suppressFeedback:
tripwiretripwire 的直接連結
當處理器封鎖內容而強制終止串流時發出。這是一項安全機制,可避免串流傳送有害或不當內容。酬載包含內容遭封鎖的原因,以及是否已要求重試。
type:
payload:
reason:
retry?:
metadata?:
processorId?:
使用範例使用範例 的直接連結
const stream = await agent.stream('Hello')
for await (const chunk of stream.fullStream) {
switch (chunk.type) {
case 'text-delta':
console.log('Text:', chunk.payload.text)
break
case 'tool-call':
console.log('Calling tool:', chunk.payload.toolName)
break
case 'tool-result':
console.log('Tool result:', chunk.payload.result)
break
case 'reasoning-delta':
console.log('Reasoning:', chunk.payload.text)
break
case 'finish':
console.log('Finished:', chunk.payload.stepResult.reason)
console.log('Usage:', chunk.payload.output.usage)
break
case 'error':
console.error('Error:', chunk.payload.error)
break
}
}
相關類型相關類型 的直接連結
- .stream():傳回會發出這些分塊之串流的方法
- MastraModelOutput:發出這些分塊的串流物件
- workflow.stream():傳回會為 Workflow 發出這些分塊之串流的方法